Merge tag 'android-13.0.0_r61' into staging/lineage-20.0_merge-android-13.0.0_r61
Android 13.0.0 release 61
# -----BEGIN PGP SIGNATURE-----
#
# iF0EABECAB0WIQRDQNE1cO+UXoOBCWTorT+BmrEOeAUCZKXIzgAKCRDorT+BmrEO
# eJ9sAJ9wprPCtUnY06JdjwW0rZOGwGRhyQCfVDIAyUWGSOeCLESUyjBFQLrkIww=
# =CFU6
# -----END PGP SIGNATURE-----
# gpg: Signature made Wed Jul 5 22:47:26 2023 EEST
# gpg: using DSA key 4340D13570EF945E83810964E8AD3F819AB10E78
# gpg: Good signature from "The Android Open Source Project <initial-contribution@android.com>" [marginal]
# gpg: initial-contribution@android.com: Verified 1768 signatures in the past
# 20 months. Encrypted 4 messages in the past 18 months.
# gpg: WARNING: This key is not certified with sufficiently trusted signatures!
# gpg: It is not certain that the signature belongs to the owner.
# Primary key fingerprint: 4340 D135 70EF 945E 8381 0964 E8AD 3F81 9AB1 0E78
# By Lin Yuan
# Via Android Build Coastguard Worker
* tag 'android-13.0.0_r61':
Fix: Bluetooth and Wifi scanning location MainSwitch page policy transparency.
Change-Id: I286f799bb82144646e224344e4b8c4b7f528dc82
diff --git a/Android.bp b/Android.bp
index f56ca95..0307ccb 100644
--- a/Android.bp
+++ b/Android.bp
@@ -89,6 +89,10 @@
"SettingsLibActivityEmbedding",
"Settings-change-ids",
"SystemUIUnfoldLib",
+ "org.lineageos.platform.internal",
+ "LineagePreferenceLib",
+ "vendor.lineage.fastcharge-V1.0-java",
+ "SystemUISharedLib",
],
libs: [
diff --git a/AndroidManifest.xml b/AndroidManifest.xml
index a4d899d..86e7308 100644
--- a/AndroidManifest.xml
+++ b/AndroidManifest.xml
@@ -427,6 +427,18 @@
</activity>
<activity
+ android:name=".network.NetworkSetupActivity"
+ android:theme="@style/GlifV3Theme.Light"
+ android:exported="true">
+ <intent-filter android:priority="1">
+ <action android:name="android.settings.NETWORK_PROVIDER_SETUP" />
+ <category android:name="android.intent.category.DEFAULT" />
+ </intent-filter>
+ <meta-data android:name="com.android.settings.PRIMARY_PROFILE_CONTROLLED"
+ android:value="true" />
+ </activity>
+
+ <activity
android:name=".wifi.WifiPickerActivity"
android:permission="android.permission.CHANGE_WIFI_STATE"
android:exported="true">
@@ -2431,6 +2443,10 @@
android:label="@string/lockpassword_choose_lock_generic_header"
android:excludeFromRecents="true" />
+ <activity android:name=".password.ChooseLockPatternSize"
+ android:exported="false"
+ android:theme="@style/GlifTheme.Light" />
+
<activity android:name=".password.SetupChooseLockPattern"
android:exported="false"
android:theme="@style/GlifTheme.Light" />
@@ -4545,6 +4561,18 @@
</intent-filter>
</activity>
+ <activity android:name=".backup.transport.TransportActivity"
+ android:label="@string/backup_transport_title"
+ android:icon="@drawable/ic_settings_backup"
+ android:exported="false">
+ <intent-filter>
+ <action android:name="android.intent.action.VIEW" />
+ <category android:name="android.intent.category.DEFAULT" />
+ <data android:scheme="settings"
+ android:host="com.android.settings.backup.transport" />
+ </intent-filter>
+ </activity>
+
<!-- This is the longest AndroidManifest.xml ever. -->
</application>
</manifest>
diff --git a/res/color/audio_icon.xml b/res/color/audio_icon.xml
new file mode 100644
index 0000000..ca93eca
--- /dev/null
+++ b/res/color/audio_icon.xml
@@ -0,0 +1,20 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<selector xmlns:android="http://schemas.android.com/apk/res/android">
+ <item android:state_enabled="false" android:color="#24000000" />
+ <item android:color="#8a000000" />
+</selector>
diff --git a/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png b/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png
new file mode 100644
index 0000000..f1e5bde
--- /dev/null
+++ b/res/drawable-nodpi/fingerprint_sensor_location_front_overlay.png
Binary files differ
diff --git a/res/drawable/ic_launcher_background.xml b/res/drawable/ic_launcher_background.xml
new file mode 100644
index 0000000..8c65155
--- /dev/null
+++ b/res/drawable/ic_launcher_background.xml
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2022 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path
+ android:pathData="M0,0h108v108h-108z"
+ android:fillColor="#ffffff"/>
+ <path
+ android:pathData="M58.148,28C59.193,28 60.062,28.805 60.142,29.847L60.254,31.303C60.431,33.606 62.018,35.527 64.017,36.685C66.016,37.844 68.441,38.236 70.525,37.237L71.846,36.604C72.789,36.153 73.92,36.503 74.443,37.408L78.59,44.592C79.113,45.497 78.851,46.652 77.988,47.243L76.782,48.068C74.876,49.374 74,51.689 74,54C74,56.311 74.876,58.626 76.782,59.932L77.988,60.757C78.851,61.348 79.113,62.503 78.59,63.408L74.443,70.592C73.92,71.497 72.789,71.847 71.846,71.396L70.525,70.763C68.441,69.764 66.016,70.156 64.017,71.315C62.018,72.473 60.431,74.394 60.254,76.697L60.142,78.153C60.062,79.195 59.193,80 58.148,80H49.852C48.807,80 47.938,79.195 47.858,78.153L47.746,76.697C47.569,74.394 45.981,72.473 43.983,71.315C41.984,70.156 39.558,69.764 37.475,70.763L36.153,71.396C35.211,71.847 34.08,71.497 33.557,70.592L29.409,63.408C28.887,62.503 29.149,61.348 30.011,60.757L31.218,59.931C33.124,58.626 34,56.311 34,54C34,51.689 33.124,49.374 31.218,48.068L30.011,47.242C29.149,46.652 28.887,45.497 29.409,44.592L33.557,37.408C34.08,36.503 35.211,36.153 36.153,36.604L37.475,37.237C39.558,38.236 41.984,37.844 43.983,36.685C45.982,35.527 47.569,33.606 47.746,31.303L47.858,29.847C47.938,28.805 48.807,28 49.852,28H58.148ZM54,66C60.627,66 66,60.627 66,54C66,47.373 60.627,42 54,42C47.373,42 42,47.373 42,54C42,60.627 47.373,66 54,66Z"
+ android:fillColor="#167C80"
+ android:fillType="evenOdd"/>
+</vector>
diff --git a/res/drawable/ic_launcher_foreground.xml b/res/drawable/ic_launcher_foreground.xml
new file mode 100644
index 0000000..4d28d39
--- /dev/null
+++ b/res/drawable/ic_launcher_foreground.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2022 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:aapt="http://schemas.android.com/aapt"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <group>
+ <clip-path
+ android:pathData="M0,0h108v108h-108z"/>
+ <path
+ android:pathData="M54,54m-18,0a18,18 0,1 1,36 0a18,18 0,1 1,-36 0"
+ android:fillColor="#CAE1E2"/>
+ <path
+ android:pathData="M51.058,56.942L46.634,54.976C45.789,54.6 45.789,53.4 46.634,53.024L51.058,51.058L53.024,46.634C53.4,45.789 54.6,45.789 54.976,46.634L56.942,51.058L61.366,53.024C62.211,53.4 62.211,54.6 61.366,54.976L56.942,56.942L54.976,61.366C54.6,62.211 53.4,62.211 53.024,61.366L51.058,56.942Z"
+ android:fillColor="#2A3232"/>
+ <path
+ android:pathData="M28.54,28.54m-72,0a72,72 0,1 1,144 0a72,72 0,1 1,-144 0"
+ android:fillAlpha="0.6">
+ <aapt:attr name="android:fillColor">
+ <gradient
+ android:gradientRadius="72"
+ android:centerX="28.54"
+ android:centerY="28.54"
+ android:type="radial">
+ <item android:offset="0" android:color="#19FFFFFF"/>
+ <item android:offset="1" android:color="#00FFFFFF"/>
+ </gradient>
+ </aapt:attr>
+ </path>
+ </group>
+</vector>
diff --git a/res/drawable/ic_launcher_monochrome.xml b/res/drawable/ic_launcher_monochrome.xml
new file mode 100644
index 0000000..087d83f
--- /dev/null
+++ b/res/drawable/ic_launcher_monochrome.xml
@@ -0,0 +1,15 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2022 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="108dp"
+ android:height="108dp"
+ android:viewportWidth="108"
+ android:viewportHeight="108">
+ <path
+ android:pathData="M59.23,33.567C59.162,32.683 58.424,32 57.538,32H50.527C49.64,32 48.903,32.683 48.835,33.567L48.74,34.795C48.59,36.744 47.247,38.369 45.556,39.349C43.865,40.33 41.812,40.661 40.049,39.816L38.936,39.283C38.136,38.899 37.175,39.196 36.732,39.965L33.228,46.034C32.784,46.803 33.007,47.784 33.739,48.286L34.755,48.981C36.368,50.086 37.109,52.045 37.109,54C37.109,55.955 36.368,57.914 34.755,59.019L33.739,59.714C33.007,60.216 32.784,61.197 33.228,61.966L36.732,68.035C37.175,68.803 38.136,69.101 38.936,68.717L40.049,68.184C41.812,67.339 43.865,67.67 45.556,68.651C47.247,69.631 48.59,71.257 48.74,73.205L48.835,74.433C48.903,75.317 49.64,76 50.527,76H57.538C58.424,76 59.162,75.317 59.23,74.433L59.324,73.205C59.474,71.257 60.817,69.631 62.508,68.651C64.199,67.67 66.252,67.339 68.015,68.184L69.128,68.717C69.928,69.101 70.889,68.803 71.332,68.035L74.837,61.966C75.28,61.197 75.058,60.216 74.325,59.714L73.31,59.019C71.696,57.915 70.955,55.955 70.955,54C70.955,52.045 71.696,50.085 73.31,48.981L74.325,48.285C75.058,47.784 75.28,46.803 74.837,46.034L71.332,39.965C70.889,39.196 69.928,38.899 69.128,39.283L68.015,39.816C66.252,40.661 64.199,40.33 62.508,39.349C60.817,38.369 59.474,36.744 59.324,34.795L59.23,33.567ZM68,54C68,61.732 61.732,68 54,68C46.268,68 40,61.732 40,54C40,46.268 46.268,40 54,40C61.732,40 68,46.268 68,54ZM47.799,54.826L51.543,56.489L53.207,60.233C53.525,60.948 54.54,60.948 54.858,60.233L56.522,56.489L60.265,54.826C60.98,54.508 60.98,53.492 60.265,53.174L56.522,51.511L54.858,47.767C54.54,47.052 53.525,47.052 53.207,47.767L51.543,51.511L47.799,53.174C47.084,53.492 47.084,54.508 47.799,54.826Z"
+ android:fillColor="#ffffffff"
+ android:fillType="evenOdd"/>
+</vector>
diff --git a/res/drawable/ic_launcher_settings.xml b/res/drawable/ic_launcher_settings.xml
index 9ede59d..b58c81f 100644
--- a/res/drawable/ic_launcher_settings.xml
+++ b/res/drawable/ic_launcher_settings.xml
@@ -1,5 +1,10 @@
<?xml version="1.0" encoding="utf-8"?>
+<!--
+ SPDX-FileCopyrightText: 2022 The LineageOS Project
+ SPDX-License-Identifier: Apache-2.0
+-->
<adaptive-icon xmlns:android="http://schemas.android.com/apk/res/android">
- <background android:drawable="@color/icon_launcher_setting_color"/>
- <foreground android:drawable="@mipmap/ic_launcher_settings"/>
+ <background android:drawable="@drawable/ic_launcher_background"/>
+ <foreground android:drawable="@drawable/ic_launcher_foreground"/>
+ <monochrome android:drawable="@drawable/ic_launcher_monochrome"/>
</adaptive-icon>
diff --git a/res/drawable/ic_network_setup.xml b/res/drawable/ic_network_setup.xml
new file mode 100644
index 0000000..4944cbc
--- /dev/null
+++ b/res/drawable/ic_network_setup.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2021 The LineageOS 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="?android:attr/colorPrimary"
+ android:pathData="M12,2A8,8 0 0,0 4,10C4,14.03 7,17.42 11,17.93V19H10A1,1 0 0,0 9,20H2V22H9A1,1 0 0,0 10,23H14A1,1 0 0,0 15,22H22V20H15A1,1 0 0,0 14,19H13V17.93C17,17.43 20,14.03 20,10A8,8 0 0,0 12,2M12,4C12,4 12.74,5.28 13.26,7H10.74C11.26,5.28 12,4 12,4M9.77,4.43C9.5,4.93 9.09,5.84 8.74,7H6.81C7.5,5.84 8.5,4.93 9.77,4.43M14.23,4.44C15.5,4.94 16.5,5.84 17.19,7H15.26C14.91,5.84 14.5,4.93 14.23,4.44M6.09,9H8.32C8.28,9.33 8.25,9.66 8.25,10C8.25,10.34 8.28,10.67 8.32,11H6.09C6.03,10.67 6,10.34 6,10C6,9.66 6.03,9.33 6.09,9M10.32,9H13.68C13.72,9.33 13.75,9.66 13.75,10C13.75,10.34 13.72,10.67 13.68,11H10.32C10.28,10.67 10.25,10.34 10.25,10C10.25,9.66 10.28,9.33 10.32,9M15.68,9H17.91C17.97,9.33 18,9.66 18,10C18,10.34 17.97,10.67 17.91,11H15.68C15.72,10.67 15.75,10.34 15.75,10C15.75,9.66 15.72,9.33 15.68,9M6.81,13H8.74C9.09,14.16 9.5,15.07 9.77,15.56C8.5,15.06 7.5,14.16 6.81,13M10.74,13H13.26C12.74,14.72 12,16 12,16C12,16 11.26,14.72 10.74,13M15.26,13H17.19C16.5,14.16 15.5,15.07 14.23,15.57C14.5,15.07 14.91,14.16 15.26,13Z" />
+</vector>
diff --git a/res/drawable/ic_security_pattern_3x3.xml b/res/drawable/ic_security_pattern_3x3.xml
new file mode 100644
index 0000000..b8e4df4
--- /dev/null
+++ b/res/drawable/ic_security_pattern_3x3.xml
@@ -0,0 +1,26 @@
+<!--
+ Copyright (C) 2016 The CyanogenMod 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,11L21,9.5C21,8.67 20.33,8 19.5,8C20.33,8 21,7.33 21,6.5L21,5C21,3.89 20.1,3 19,3L15,3L15,5L19,5L19,7L17,7L17,9L19,9L19,11L15,11L15,13L19,13C20.1,13 21,12.11 21,11ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+ android:strokeColor="#00000000"
+ android:fillColor="#777777"
+ android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_4x4.xml b/res/drawable/ic_security_pattern_4x4.xml
new file mode 100644
index 0000000..92c580f
--- /dev/null
+++ b/res/drawable/ic_security_pattern_4x4.xml
@@ -0,0 +1,26 @@
+<!--
+ Copyright (C) 2016 The CyanogenMod 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,13L21,3L19,3L19,7L17,7L17,3L15,3L15,9L19,9L19,13L21,13ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+ android:strokeColor="#00000000"
+ android:fillColor="#777777"
+ android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_5x5.xml b/res/drawable/ic_security_pattern_5x5.xml
new file mode 100644
index 0000000..7b4daba
--- /dev/null
+++ b/res/drawable/ic_security_pattern_5x5.xml
@@ -0,0 +1,26 @@
+<!--
+ Copyright (C) 2016 The CyanogenMod 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM21,11L21,9C21,7.89 20.1,7 19,7L17,7L17,5L21,5L21,3L15,3L15,9L19,9L19,11L15,11L15,13L19,13C20.1,13 21,12.11 21,11ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+ android:strokeColor="#00000000"
+ android:fillColor="#777777"
+ android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/ic_security_pattern_6x6.xml b/res/drawable/ic_security_pattern_6x6.xml
new file mode 100644
index 0000000..1861284
--- /dev/null
+++ b/res/drawable/ic_security_pattern_6x6.xml
@@ -0,0 +1,26 @@
+<!--
+ Copyright (C) 2016 The CyanogenMod 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.
+-->
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:viewportWidth="24.0"
+ android:viewportHeight="24.0">
+ <path
+ android:pathData="M17,13L19,13C20.1,13 21,12.11 21,11L21,9C21,7.89 20.1,7 19,7L17,7L17,5L21,5L21,3L17,3C15.9,3 15,3.89 15,5L15,11C15,12.11 15.9,13 17,13L17,13ZM4,17.268C3.402,17.613 3,18.26 3,19C3,20.105 3.895,21 5,21C5.74,21 6.387,20.598 6.732,20L9.268,20C9.613,20.598 10.26,21 11,21C12.105,21 13,20.105 13,19C13,17.895 12.105,17 11,17C10.26,17 9.613,17.402 9.268,18L6.732,18C6.557,17.696 6.304,17.443 6,17.268L6,14.732C6.598,14.387 7,13.74 7,13C7,11.895 6.105,11 5,11C3.895,11 3,11.895 3,13C3,13.74 3.402,14.387 4,14.732L4,17.268ZM17,9L19,9L19,11L17,11L17,9ZM5,9C6.105,9 7,8.105 7,7C7,5.895 6.105,5 5,5C3.895,5 3,5.895 3,7C3,8.105 3.895,9 5,9ZM11,9C12.105,9 13,8.105 13,7C13,5.895 12.105,5 11,5C9.895,5 9,5.895 9,7C9,8.105 9.895,9 11,9ZM11,15C12.105,15 13,14.105 13,13C13,11.895 12.105,11 11,11C9.895,11 9,11.895 9,13C9,14.105 9.895,15 11,15ZM17,21C18.105,21 19,20.105 19,19C19,17.895 18.105,17 17,17C15.895,17 15,17.895 15,19C15,20.105 15.895,21 17,21Z"
+ android:strokeColor="#00000000"
+ android:fillColor="#777777"
+ android:strokeWidth="1"/>
+</vector>
diff --git a/res/drawable/quickly_open_camera.xml b/res/drawable/quickly_open_camera.xml
deleted file mode 100644
index dcbf9f4..0000000
--- a/res/drawable/quickly_open_camera.xml
+++ /dev/null
@@ -1,3 +0,0 @@
-<?xml version="1.0" encoding="utf-8"?>
-<shape>
-</shape>
diff --git a/res/drawable/ring_notif_increasing.xml b/res/drawable/ring_notif_increasing.xml
new file mode 100644
index 0000000..c534e30
--- /dev/null
+++ b/res/drawable/ring_notif_increasing.xml
@@ -0,0 +1,29 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The CyanogenMod Project
+ Copyright (C) 2018 The LineageOS 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.
+-->
+
+<vector xmlns:android="http://schemas.android.com/apk/res/android"
+ android:width="24dp"
+ android:height="24dp"
+ android:tint="?android:attr/colorControlNormal"
+ android:viewportWidth="24"
+ android:viewportHeight="24">
+
+ <path
+ android:fillColor="#FFFFFFFF"
+ android:pathData="M12,22c1.105,0,2-0.898,2-2h-4C10,21.102,10.896,22,12,22Z M18.5,16v-5.5c0-3.075-2.135-5.643-5-6.321V3.5 C13.5,2.67,12.828,2,12,2s-1.5,0.67-1.5,1.5v0.679c-2.865,0.678-5,3.246-5,6.321V16l-2,2v1h17v-1L18.5,16z M16.504,14.558H7.561 V13.25l8.943-3.808V14.558z" />
+</vector>
+
diff --git a/res/layout/battery_usage_graph.xml b/res/layout/battery_usage_graph.xml
index e79c7b9..310d5c7 100644
--- a/res/layout/battery_usage_graph.xml
+++ b/res/layout/battery_usage_graph.xml
@@ -19,7 +19,7 @@
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="16dp"
- android:paddingStart="@dimen/preference_no_icon_padding_start"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
android:orientation="vertical">
diff --git a/res/layout/crypt_keeper_pattern_sizes.xml b/res/layout/crypt_keeper_pattern_sizes.xml
new file mode 100644
index 0000000..020b688
--- /dev/null
+++ b/res/layout/crypt_keeper_pattern_sizes.xml
@@ -0,0 +1,69 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2015 The CyanogenMod 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.
+-->
+<merge xmlns:android="http://schemas.android.com/apk/res/android">
+
+ <Button
+ android:id="@+id/lock_pattern_size_3"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:textSize="14sp"
+ android:fontFamily="sans-serif"
+ android:text="@string/lock_pattern_size_3"
+ android:textColor="@android:color/white"
+ android:layout_weight="1"
+ style="?android:attr/borderlessButtonStyle"/>
+
+ <Button
+ android:id="@+id/lock_pattern_size_4"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:textSize="14sp"
+ android:fontFamily="sans-serif"
+ android:text="@string/lock_pattern_size_4"
+ android:textColor="@android:color/white"
+ android:layout_weight="1"
+ style="?android:attr/borderlessButtonStyle"/>
+
+ <Button
+ android:id="@+id/lock_pattern_size_5"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:textSize="14sp"
+ android:fontFamily="sans-serif"
+ android:text="@string/lock_pattern_size_5"
+ android:textColor="@android:color/white"
+ android:layout_weight="1"
+ style="?android:attr/borderlessButtonStyle"/>
+
+ <Button
+ android:id="@+id/lock_pattern_size_6"
+ android:layout_width="0dp"
+ android:layout_height="wrap_content"
+ android:layout_gravity="center_horizontal"
+ android:textSize="14sp"
+ android:fontFamily="sans-serif"
+ android:text="@string/lock_pattern_size_6"
+ android:textColor="@android:color/white"
+ android:layout_weight="1"
+ style="?android:attr/borderlessButtonStyle"/>
+
+
+</merge >
+
diff --git a/res/layout/fingerprint_enroll_find_sensor_base.xml b/res/layout/fingerprint_enroll_find_sensor_base.xml
index 62203f7..6c3f5d6 100644
--- a/res/layout/fingerprint_enroll_find_sensor_base.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_base.xml
@@ -29,11 +29,6 @@
android:clipToPadding="false"
android:clipChildren="false">
- <Space
- android:layout_width="wrap_content"
- android:layout_height="0dp"
- android:layout_weight="1" />
-
<include
layout="@layout/fingerprint_enroll_find_sensor_graphic"
android:layout_width="match_parent"
diff --git a/res/layout/fingerprint_enroll_find_sensor_graphic.xml b/res/layout/fingerprint_enroll_find_sensor_graphic.xml
index 0690457..cd9b0a5 100644
--- a/res/layout/fingerprint_enroll_find_sensor_graphic.xml
+++ b/res/layout/fingerprint_enroll_find_sensor_graphic.xml
@@ -17,17 +17,27 @@
<FrameLayout
xmlns:android="http://schemas.android.com/apk/res/android"
- android:layout_width="@dimen/fingerprint_find_sensor_graphic_size"
- android:layout_height="@dimen/fingerprint_find_sensor_graphic_size">
+ android:layout_width="fill_parent"
+ android:layout_height="wrap_content"
+ android:paddingTop="@dimen/fingerprint_find_sensor_padding_top">
<ImageView
android:id="@+id/fingerprint_sensor_location"
android:layout_width="match_parent"
- android:layout_height="match_parent"
+ android:layout_height="wrap_content"
android:contentDescription="@string/security_settings_fingerprint_enroll_find_sensor_content_description"
android:src="@drawable/fingerprint_sensor_location"
android:scaleType="centerInside"/>
+ <ImageView
+ android:id="@+id/fingerprint_sensor_location_front_overlay"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:contentDescription="@string/security_settings_fingerprint_enroll_find_sensor_content_description"
+ android:src="@drawable/fingerprint_sensor_location_front_overlay"
+ android:scaleType="centerInside"
+ android:visibility="gone"/>
+
<com.android.settings.biometrics.fingerprint.FingerprintLocationAnimationView
android:id="@+id/fingerprint_sensor_location_animation"
android:layout_width="match_parent"
diff --git a/res/layout/fingerprint_enroll_introduction.xml b/res/layout/fingerprint_enroll_introduction.xml
index 57be78e..ea3cda3 100644
--- a/res/layout/fingerprint_enroll_introduction.xml
+++ b/res/layout/fingerprint_enroll_introduction.xml
@@ -164,6 +164,7 @@
</LinearLayout>
<LinearLayout
+ android:id="@+id/layout_footer_learn_more"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:orientation="horizontal">
diff --git a/res/layout/preference_increasing_ring.xml b/res/layout/preference_increasing_ring.xml
new file mode 100644
index 0000000..11795a2
--- /dev/null
+++ b/res/layout/preference_increasing_ring.xml
@@ -0,0 +1,120 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2014 The CyanogenMod Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<LinearLayout
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:minHeight="?android:attr/listPreferredItemHeightSmall"
+ android:gravity="center_vertical"
+ android:paddingStart="?android:attr/listPreferredItemPaddingStart"
+ android:paddingEnd="?android:attr/listPreferredItemPaddingEnd"
+ android:background="?android:attr/selectableItemBackground"
+ android:clipToPadding="false">
+
+ <LinearLayout
+ android:id="@+id/icon_container"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:minWidth="44dp"
+ android:gravity="start|center_vertical"
+ android:orientation="horizontal"
+ android:paddingEnd="12dp"
+ android:paddingTop="4dp"
+ android:paddingBottom="4dp">
+ <com.android.internal.widget.PreferenceImageView
+ android:id="@android:id/icon"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:maxWidth="48dp"
+ android:maxHeight="48dp"/>
+ </LinearLayout>
+
+ <RelativeLayout
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_weight="1"
+ android:paddingTop="12dp"
+ android:paddingBottom="12dp">
+
+ <TextView android:id="@android:id/title"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:singleLine="true"
+ android:textAppearance="?android:attr/textAppearanceMedium"
+ android:ellipsize="marquee"
+ android:fadingEdge="horizontal" />
+
+ <TextView android:id="@+id/start_volume_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@android:id/title"
+ android:layout_alignStart="@android:id/title"
+ android:paddingStart="18dp"
+ android:text="@string/increasing_ring_min_volume_title"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ android:singleLine="true" />
+
+ <SeekBar android:id="@+id/start_volume"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/start_volume_label"
+ android:layout_alignParentEnd="true"
+ android:max="1000" />
+
+ <TextView android:id="@+id/ramp_up_time_label"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/start_volume"
+ android:layout_alignStart="@android:id/title"
+ android:paddingStart="18dp"
+ android:text="@string/increasing_ring_ramp_up_time_title"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ android:singleLine="true" />
+
+ <TextView android:id="@+id/ramp_up_time_value"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/start_volume"
+ android:layout_toEndOf="@id/ramp_up_time_label"
+ android:layout_alignBaseline="@id/ramp_up_time_label"
+ android:layout_alignParentEnd="true"
+ android:gravity="end"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ android:singleLine="true" />
+
+ <SeekBar android:id="@+id/ramp_up_time"
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ramp_up_time_label"
+ android:layout_alignParentEnd="true"
+ android:max="11" />
+
+ <TextView android:id="@android:id/summary"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content"
+ android:layout_below="@id/ramp_up_time"
+ android:layout_alignStart="@android:id/title"
+ android:textAppearance="?android:attr/textAppearanceSmall"
+ android:textColor="?android:attr/textColorSecondary"
+ android:maxLines="4" />
+
+ </RelativeLayout>
+
+</LinearLayout>
diff --git a/res/layout/private_dns_mode_dialog.xml b/res/layout/private_dns_mode_dialog.xml
index 12e29e6..7c765d5 100644
--- a/res/layout/private_dns_mode_dialog.xml
+++ b/res/layout/private_dns_mode_dialog.xml
@@ -36,6 +36,10 @@
layout="@layout/preference_widget_dialog_radiobutton"/>
<include
+ android:id="@+id/private_dns_mode_cloudflare"
+ layout="@layout/preference_widget_dialog_radiobutton"/>
+
+ <include
android:id="@+id/private_dns_mode_opportunistic"
layout="@layout/preference_widget_dialog_radiobutton"/>
diff --git a/res/layout/settings_main_prefs.xml b/res/layout/settings_main_prefs.xml
index 48352e2..ceb52ee 100644
--- a/res/layout/settings_main_prefs.xml
+++ b/res/layout/settings_main_prefs.xml
@@ -38,35 +38,37 @@
android:layout_height="wrap_content"
android:layout_width="match_parent"
android:layout_weight="0"
- android:visibility="gone">
+ android:visibility="gone"
+ style="@style/SudGlifButtonBar">
<Button android:id="@+id/back_button"
- android:layout_width="150dip"
- android:layout_height="wrap_content"
- android:layout_margin="5dip"
- android:layout_alignParentStart="true"
- android:text="@*android:string/back_button_label"/>
-
- <LinearLayout
- android:orientation="horizontal"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_alignParentEnd="true">
+ android:layout_alignParentStart="true"
+ android:text="@*android:string/back_button_label"
+ style="@style/SudGlifButton.Secondary"/>
+
+ <RelativeLayout
+ android:orientation="horizontal"
+ android:layout_width="wrap_content"
+ android:layout_height="wrap_content">
<Button android:id="@+id/skip_button"
- android:layout_width="150dip"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_margin="5dip"
+ android:layout_alignParentStart="true"
android:text="@*android:string/skip_button_label"
- android:visibility="gone"/>
+ android:visibility="gone"
+ style="@style/SudGlifButton.Secondary"/>
<Button android:id="@+id/next_button"
- android:layout_width="150dip"
+ android:layout_width="wrap_content"
android:layout_height="wrap_content"
- android:layout_margin="5dip"
- android:text="@*android:string/next_button_label"/>
+ android:layout_alignParentEnd="true"
+ android:text="@*android:string/next_button_label"
+ style="@style/SudGlifButton.Primary"/>
- </LinearLayout>
+ </RelativeLayout>
</RelativeLayout>
diff --git a/res/layout/storage_wizard_init_internal.xml b/res/layout/storage_wizard_init_internal.xml
index 0a18070..9a48283 100644
--- a/res/layout/storage_wizard_init_internal.xml
+++ b/res/layout/storage_wizard_init_internal.xml
@@ -26,6 +26,13 @@
android:textColor="?android:attr/textColorSecondary"
android:textSize="18sp"
android:text="@string/storage_wizard_init_v2_internal_summary" />
+ <TextView
+ android:layout_width="match_parent"
+ android:layout_height="wrap_content"
+ android:layout_marginBottom="32dp"
+ android:textColor="?android:attr/colorError"
+ android:textSize="18sp"
+ android:text="@string/storage_warning_internal" />
<ImageView
android:layout_width="match_parent"
android:layout_height="wrap_content"
diff --git a/res/mipmap-hdpi/ic_launcher_settings.png b/res/mipmap-hdpi/ic_launcher_settings.png
deleted file mode 100644
index ddce98e..0000000
--- a/res/mipmap-hdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-mdpi/ic_launcher_settings.png b/res/mipmap-mdpi/ic_launcher_settings.png
deleted file mode 100644
index 86f3be8..0000000
--- a/res/mipmap-mdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xhdpi/ic_launcher_settings.png b/res/mipmap-xhdpi/ic_launcher_settings.png
deleted file mode 100644
index 360aa69..0000000
--- a/res/mipmap-xhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxhdpi/ic_launcher_settings.png b/res/mipmap-xxhdpi/ic_launcher_settings.png
deleted file mode 100644
index 7cb67a9..0000000
--- a/res/mipmap-xxhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/mipmap-xxxhdpi/ic_launcher_settings.png b/res/mipmap-xxxhdpi/ic_launcher_settings.png
deleted file mode 100644
index 3fec9c4..0000000
--- a/res/mipmap-xxxhdpi/ic_launcher_settings.png
+++ /dev/null
Binary files differ
diff --git a/res/raw/lottie_quickly_open_camera.json b/res/raw/lottie_quickly_open_camera.json
new file mode 100644
index 0000000..e69de29
--- /dev/null
+++ b/res/raw/lottie_quickly_open_camera.json
diff --git a/res/values-af/cm_strings.xml b/res/values-af/cm_strings.xml
new file mode 100644
index 0000000..83f92a2
--- /dev/null
+++ b/res/values-af/cm_strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS Regs</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Jy is nou <xliff:g id="step_count">%1$d</xliff:g> stap weg van bemagtigende ontwikkelaar opsies.</item>
+ <item quantity="other">Jy is nou <xliff:g id="step_count">%1$d</xliff:g> stappe weg van bemagtigende ontwikkelaar opsies.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Jy het die ontwikkeling opsies geaktiveer!</string>
+ <string name="show_dev_already_cm">Nie nodig, het jy reeds die ontwikkeling opsies geaktiveer.</string>
+ <string name="peak_refresh_rate_summary_custom">Verhoog die herlaaikoers vir sommige inhoud outomaties van 60 na %1$d Hz. Verhoog batterygebruik.</string>
+ <string name="heads_up_notifications_enabled_title">Swewende kennisgewings</string>
+ <string name="heads_up_notifications_enabled_summary">Wys prioriteit kennisgewings in \'n klein swewende venster</string>
+ <string name="high_touch_sensitivity_title">Hoë raak sensitiwiteit</string>
+ <string name="high_touch_sensitivity_summary">Verhoog skerm sensitiwiteit, sodat dit kan gebruik word met die dra van handskoene</string>
+ <string name="increasing_ring_volume_option_title">Toenemende luitoon volume</string>
+ <string name="increasing_ring_min_volume_title">Begin volume</string>
+ <string name="increasing_ring_ramp_up_time_title">Tydsduur</string>
+ <string name="lockscreen_media_art_title">Wys media kuns</string>
+ <string name="lock_settings_picker_pattern_size_message">Kies \'n patroongrootte</string>
+ <string name="lockpattern_settings_enable_error_path_title">Wys patroon fout</string>
+ <string name="lockpattern_settings_enable_dots_title">Wys patroon kolle</string>
+ <string name="app_notification_sound_timeout_title">Minimum tyd tussen kennisgewingklanke</string>
+ <string name="app_notification_sound_timeout_summary_template">Laat geluide of vibrasie nie meer as een keer elke <xliff:g id="duration">%1$s </xliff:g> toe</string>
+ <string name="app_notification_sound_timeout_value_none">Geen beperkings</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekondes</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekondes</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minuut</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minute</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minute</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minute</string>
+ <string name="unlock_scramble_pin_layout_title">Skommel uitleg</string>
+ <string name="unlock_scramble_pin_layout_summary">Skommel PIN uitleg wanneer die toestel ontsluit word</string>
+ <string name="proximity_wake_title">Voorkom toevallige wakker word</string>
+ <string name="touchscreen_hovering_title">Raakskerm swewing</string>
+ <string name="touchscreen_hovering_summary">Laat toe om bo die skerm te sweef soos \'n muis in web blaaiers, \"remote desktops\", ens</string>
+ <string name="wake_when_plugged_or_unplugged_title">Word wakker op in/uit prop</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Skakel die skerm aan met die koppeling of ontkoppeling van \'n kragbron</string>
+</resources>
diff --git a/res/values-am/cm_strings.xml b/res/values-am/cm_strings.xml
new file mode 100644
index 0000000..3a79691
--- /dev/null
+++ b/res/values-am/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">ለአንዳንድ ይዘት የማደሻ ፍጥነቱን በራስ-ሰር ከ60 ወደ %1$d ኸርዝ ያሳድገዋል። የባትሪ ፍጆታን ይጨምራል።</string>
+</resources>
diff --git a/res/values-ar/cm_strings.xml b/res/values-ar/cm_strings.xml
new file mode 100644
index 0000000..9044d5f
--- /dev/null
+++ b/res/values-ar/cm_strings.xml
@@ -0,0 +1,87 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">قانون LineageOS</string>
+ <string name="device_info_protected_single_press">انقر لعرض المعلومات</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="zero">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+ <item quantity="one">أنت الآن على بُعد خطوة واحدة من تمكين خيارات المطور.</item>
+ <item quantity="two">أنت الآن على بُعد خطوتين من تمكين خيارات المطور.</item>
+ <item quantity="few">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوات من تمكين خيارات المطور.</item>
+ <item quantity="many">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+ <item quantity="other">أنت الآن على بُعد <xliff:g id="step_count">%1$d</xliff:g> خطوة من تمكين خيارات المطور.</item>
+ </plurals>
+ <string name="show_dev_on_cm">مكّنتَ خيارات المطور!</string>
+ <string name="show_dev_already_cm">لا داعي، فخيارات المطور مفعّلة.</string>
+ <string name="peak_refresh_rate_summary_custom">تعمل هذه الميزة على رفع معدل إعادة التحميل تلقائيًا من 60 إلى %1$d هرتز لبعض أنواع المحتوى، ما يؤدي إلى زيادة استخدام البطارية.</string>
+ <string name="status_bar_double_tap_to_sleep_title">اضغط للنوم</string>
+ <string name="status_bar_double_tap_to_sleep_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">السماح للعملاء باستخدام الـ VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">السماح لعملاء نقطة الاتصال باستخدام اتصالات الـVPN لهذا الجهاز\u2019</string>
+ <string name="increasing_ring_volume_option_title">حجم الصوت متزايد</string>
+ <string name="increasing_ring_min_volume_title">حجم الصوت البدئيّ</string>
+ <string name="increasing_ring_ramp_up_time_title">زمن التدرج</string>
+ <string name="lockscreen_media_art_title">عرض الغلاف الفني للوسائط</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="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">10 ثوان</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 ثانية</string>
+ <string name="app_notification_sound_timeout_value_1_minute">دقيقة واحدة</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 دقائق</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 دقائق</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 دقيقة</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">بيانات الـ VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">تمكين استخدام بيانات الـ VPN</string>
+ <string name="data_usage_app_restrict_wifi">بيانات WiFi</string>
+ <string name="data_usage_app_restrict_wifi_summary">تمكين استخدام بيانات WiFi</string>
+ <string name="unlock_scramble_pin_layout_title">تخطيط الترميز</string>
+ <string name="unlock_scramble_pin_layout_summary">تخطيط رقم PIN المرمز عند إلغاء تأمين الجهاز</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>
+</resources>
diff --git a/res/values-as/cm_strings.xml b/res/values-as/cm_strings.xml
new file mode 100644
index 0000000..fb1ad73
--- /dev/null
+++ b/res/values-as/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS আইনী</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">আপুনি এতিয়া ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰাৰ পৰা <xliff:g id="step_count">%1$d</xliff:g>টা পদক্ষেপ দূৰত আছে।</item>
+ <item quantity="other">আপুনি এতিয়া ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰাৰ পৰা <xliff:g id="step_count">%1$d</xliff:g>টা পদক্ষেপ দূৰত আছে।</item>
+ </plurals>
+ <string name="show_dev_on_cm">আপুনি ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰিলে!</string>
+ <string name="show_dev_already_cm">আৱশ্যক নাই, আপুনি ইতিমধ্যে ডেভেলপমেণ্ট ছেটিংচ সক্ষম কৰিলে।</string>
+ <string name="peak_refresh_rate_summary_custom">কিছুমান সমলৰ বাবে ৰিফ্ৰেশ্বৰ হাৰ স্বয়ংক্ৰিয়ভাৱে ৬০ৰ পৰা ৯০হাৰ্টজলৈ বঢ়ায়। বেটাৰীৰ ব্যৱহাৰ বৃদ্ধি কৰে।</string>
+ <string name="high_touch_sensitivity_title">উচ্চ স্পৰ্শ সংবেদনশীলতা</string>
+ <string name="high_touch_sensitivity_summary">টাচ্চস্ক্ৰীণৰ সংবেদনশীলতা বৃদ্ধি কৰক যাতে হাতমোজা পিন্ধি থাকিলেও ইয়াক ব্যৱহাৰ কৰিব পাৰি</string>
+ <string name="increasing_ring_volume_option_title">ৰিং ভলিউম বৃদ্ধি কৰক</string>
+ <string name="increasing_ring_min_volume_title">ৰিং ভলিউম</string>
+ <string name="increasing_ring_ramp_up_time_title">ৰেম্প-আপ সময়</string>
+ <string name="lockpattern_settings_enable_error_path_title">পেটাৰ্ণৰ ত্ৰুটি প্ৰদৰ্শন কৰক</string>
+ <string name="lockpattern_settings_enable_dots_title">পেটাৰ্ণৰ ডটবোৰ প্ৰদৰ্শন কৰক</string>
+ <string name="unlock_scramble_pin_layout_title">স্ক্ৰেম্বল লেআউট</string>
+ <string name="unlock_scramble_pin_layout_summary">ডিভাইচ আনলকিং কৰোতে PIN লেআউট স্ক্ৰেম্বল কৰক</string>
+ <string name="proximity_wake_title">দুৰ্ঘটনাক্ৰমে ৱেক-আপ হোৱাটো প্ৰতিৰোধ কৰক</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>
+</resources>
diff --git a/res/values-ast-rES/cm_strings.xml b/res/values-ast-rES/cm_strings.xml
new file mode 100644
index 0000000..11e79c2
--- /dev/null
+++ b/res/values-ast-rES/cm_strings.xml
@@ -0,0 +1,101 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Configuración adicional</string>
+ <string name="advanced_keyboard_settings_title">Configuración avanzada</string>
+ <string name="adb_enable_root">Depuración como root</string>
+ <string name="adb_enable_summary_root">Permite la execución de la depuración d\'Android como root</string>
+ <string name="berry_black_theme_title">Prietu puro</string>
+ <string name="berry_black_theme_summary">Un fondu en prieto puro pal estilu «Escuridá»</string>
+ <string name="lineagelicense_title">Información llegal de LineageOS</string>
+ <string name="device_info_protected_single_press">Toca equí p\'amosar la información</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Quédate <xliff:g id="step_count">%1$d</xliff:g> toque p\'activar la configuración de desendolcu.</item>
+ <item quantity="other">Quédente <xliff:g id="step_count">%1$d</xliff:g> toques p\'activar la configuración de desendolcu.</item>
+ </plurals>
+ <string name="show_dev_on_cm">¡Activesti les opciones de desendolcu!</string>
+ <string name="show_dev_already_cm">Nun fai falta, la configuración de desendolcu yá tán activaos.</string>
+ <string name="peak_refresh_rate_summary_custom">Incrementa automáticamente la frecuencia d\'anovamientu de 60 a %1$d Hz en dalgún tipu de conteníu. Esta opción aumenta l\'usu de la batería.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tocar pa dormir</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Toca dos vegaes na barra d\'estáu o na pantalla de bloquéu p\'apagar la pantalla</string>
+ <string name="high_touch_polling_rate_title">Tasa de rexistru alta de los toques</string>
+ <string name="high_touch_polling_rate_summary">Aumenta la tasa de rexistru de la pantalla táctil</string>
+ <string name="heads_up_notifications_enabled_title">Avisos emerxentes</string>
+ <string name="high_touch_sensitivity_title">Sensibilidá alta al tactu</string>
+ <string name="high_touch_sensitivity_summary">Aumenta la sensibilidá de la pantalla táctil pa que puedas usala mentanto lleves guantes</string>
+ <string name="tethering_allow_vpn_upstreams_title">Permitir que los veceros usen les VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permite que los veceros del puntu Wi-Fi usen les conexones VPN d\u2019esti preséu pa la conectividá</string>
+ <string name="increasing_ring_volume_option_title">Volume creciente del timbre</string>
+ <string name="increasing_ring_min_volume_title">Volume inicial</string>
+ <string name="lockscreen_media_art_title">Amosar les portaes de los álbumes</string>
+ <string name="lockpattern_settings_enable_error_path_title">Amosar los patrones incorreutos</string>
+ <string name="lockpattern_settings_enable_dots_title">Amosar los puntos del patrón</string>
+ <string name="max_refresh_rate_title">Tasa d\'anovamientu máxima</string>
+ <string name="min_refresh_rate_title">Tasa d\'anovamientu mínima</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Atopa\'l sensor de buelgues na parte d\'alantre de la tableta.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Atopa\'l sensor de buelgues na parte d\'alantre del preséu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Atopa\'l sensor de buelgues na parte d\'alantre del teléfonu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Atopa\'l sensor de buelgues na parte d\'atrás de la tableta.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Atopa\'l sensor de buelgues na parte d\'atrás del preséu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Atopa\'l sensor de buelgues na parte d\'atrás del teléfonu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Atopa\'l sensor de buelgues na parte llateral de la tableta.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Atopa\'l sensor de buelgues na parte llateral del preséu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Atopa\'l sensor de buelgues na parte llateral del teléfonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toca\'l sensor de la parte d\'alantre de la tableta.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toca\'l sensor de la parte d\'alantre del preséu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toca\'l sensor de la parte d\'alantre del teléfonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toca\'l sensor de la parte d\'atrás de la tableta.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toca\'l sensor de la parte d\'atrás del preséu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toca\'l sensor de la parte d\'atrás del teléfonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toca\'l sensor de la parte llateral de la tableta.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toca\'l sensor de la parte llateral del preséu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toca\'l sensor de la parte llateral del teléfonu.</string>
+ <string name="show_navbar_hint_title">Indicador de navegación</string>
+ <string name="show_navbar_hint_summary">Amuesa una barra indicadora de navegación no baxero de la pantalla</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>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minutu</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+ <string name="auto_brightness_one_shot_title">Brillu automáticu namás una vegada</string>
+ <string name="auto_brightness_one_shot_summary">L\'axuste del brillu namás se produz nel momentu que la pantalla se prenda</string>
+ <string name="data_usage_app_restrict_all">Permitir l\'accesu a la rede</string>
+ <string name="data_usage_app_restrict_all_summary">Activa l\'usu de la rede</string>
+ <string name="data_usage_app_restrict_mobile">Datos móviles</string>
+ <string name="data_usage_app_restrict_mobile_summary">Activa l\'usu de los datos móviles</string>
+ <string name="data_usage_app_restrict_vpn">Datos per VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Activa l\'usu de los datos per VPN</string>
+ <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Activa l\'usu de los datos Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Distribución al debalu</string>
+ <string name="unlock_scramble_pin_layout_summary">Alteria la distribución del tecláu del PIN al desbloquiar el preséu</string>
+ <string name="proximity_wake_title">Evitar l\'esconsueñu accidental</string>
+ <string name="proximity_wake_summary">Revisa\'l sensor de proximidá enantes de prender la pantalla</string>
+ <string name="touchscreen_gesture_settings_title">Xestos de la pantalla táctil</string>
+ <string name="touchscreen_gesture_settings_summary">Permítete facer dellos xestos na pantalla táctil pa executar aiciones rápides</string>
+ <string name="wake_when_plugged_or_unplugged_title">Esconsoñar al espatar</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Priende la pantalla al des/espatar el preséu d\'una fonte llétrica</string>
+ <string name="fast_charging_title">Carga rápida</string>
+ <string name="fast_charging_summary">Desactiva esta opción p\'amenorgar la calor producida pol preséu mentanto carga y aumentar la vida útil de la batería</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Ten primíu\'l sensor de buelgues pa desbloquiar el teléfonu</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Ten primíu\'l sensor de buelgues pa desbloquiar la tableta</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Ten primíu\'l sensor de buelgues pa desbloquiar el preséu</string>
+ <string name="ambient_display_screen_off_udfps_summary">Pa esconsoñar la pantalla y desbloquiar el preséu, ten primío sobre\'l sensor de buelgues que ta so la pantalla.</string>
+ <string name="storage_warning_internal">Alvertencia: ¡ye posible qu\'esta opción nun funcione afayadizamente o provoque la perda de datos, y polo tanto, nun s\'aconseya!</string>
+ <string name="assisted_gps_summary">Baxa los datos d\'asistencia satelitales d\'internet que puen ameyorar muncho\'l rindimientu inicial del GPS. Pa les llamaes d\'emerxencia, el GPS asistíu permítese siempres.</string>
+</resources>
diff --git a/res/values-az/cm_strings.xml b/res/values-az/cm_strings.xml
new file mode 100644
index 0000000..54d14cb
--- /dev/null
+++ b/res/values-az/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Əlavələr</string>
+ <string name="advanced_keyboard_settings_title">Qabaqcıl tənzimləmələr</string>
+ <string name="adb_enable_root">Rootlu sazlama</string>
+ <string name="adb_enable_summary_root">Android sazlamanın rootlu olaraq işləməsinə icazə ver</string>
+ <string name="backup_transport_setting_label">Nüsxələmə provayderini dəyişdir</string>
+ <string name="backup_transport_title">Nüsxələmə provayderini seç</string>
+ <string name="berry_black_theme_title">Təmiz qara</string>
+ <string name="berry_black_theme_summary">Tünd tema üçün təmiz qara arxaplan</string>
+ <string name="lineagelicense_title">LineageOS qanuni</string>
+ <string name="device_info_protected_single_press">Məlumatı göstərmək üçün toxunun</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Tərtibatçı tənzimləmələrinin fəallaşdırılmasına <xliff:g id="step_count">%1$d</xliff:g> addım qaldı.</item>
+ <item quantity="other">Tərtibatçı tənzimləmələrinin fəallaşdırılmasına <xliff:g id="step_count">%1$d</xliff:g> addım qaldı.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Tərtibatçı tənzimləmələrini fəallaşdırdınız!</string>
+ <string name="show_dev_already_cm">Artıq tərtibatçı tənzimləmələrini fəallaşdırmısınız.</string>
+ <string name="peak_refresh_rate_summary_custom">Bəzi məzmun üçün yeniləmə dərəcəsini 60 Hs-dən %1$d Hs-ə avtomatik yüksəldir. Batareya istifadəsini artırır.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Yuxlatmaq üçün toxun</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Ekranı söndürmək üçün vəziyyət sətrinə və ya kilid ekranına cüt toxunun</string>
+ <string name="high_touch_polling_rate_title">Yüksək toxunuş yoxlama dərəcəsi</string>
+ <string name="high_touch_polling_rate_summary">Toxunaqlı ekran yoxlama dərəcəsini artırın</string>
+ <string name="heads_up_notifications_enabled_title">Açılan başlıqlar</string>
+ <string name="heads_up_notifications_enabled_summary">Kiçik bir üzən pəncərədə əhəmiyyətli bildirişləri görüntülə</string>
+ <string name="high_touch_sensitivity_title">Yüksək toxunuş həssaslığı</string>
+ <string name="high_touch_sensitivity_summary">Toxunuş həssaslığını artıraraq əlcəklə istifadəni mümkün edər</string>
+ <string name="tethering_allow_vpn_upstreams_title">Müştərilərin VPN istifadəsinə icazə ver</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Hotspot istifadəçilərinin bağlantıları arasında bu cihazın VPN bağlantısını istifadə etməsinə icazə ver</string>
+ <string name="increasing_ring_volume_option_title">Artan zəng səsi</string>
+ <string name="increasing_ring_min_volume_title">Başlanğıc səsi</string>
+ <string name="increasing_ring_ramp_up_time_title">Artma vaxtı</string>
+ <string name="lockscreen_media_art_title">Medianın qapaq üzünü göstər</string>
+ <string name="lock_settings_picker_pattern_size_message">Forma ölçüsünü seçin</string>
+ <string name="lockpattern_settings_enable_error_path_title">Forma xətalarını göstər</string>
+ <string name="lockpattern_settings_enable_dots_title">Forma nöqtələrini göstər</string>
+ <string name="max_refresh_rate_title">Ən yüksək təzələnmə sürəti</string>
+ <string name="min_refresh_rate_title">Minimum təzələmə əmsalı</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Planşetinizin ön tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Cihazınızın ön tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonunuzun ön tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Planşetinizin arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Cihazınızın arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonunuzun arxa tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Planşetinizin yan tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Cihazınızın yan tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonunuzun yan tərəfindəki barmaq izi sensorunu tapın.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Planşetinizin ön tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cihazınızın ön tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Telefonunuzun ön tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Planşetinizin arxa tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cihazınızın arxa tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Telefonunuzun arxa tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Planşetinizin yan tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cihazınızın yan tərəfindəki sensora toxunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Telefonunuzun yan tərəfindəki sensora toxunun.</string>
+ <string name="show_navbar_hint_title">Hərəkət məsləhəti</string>
+ <string name="show_navbar_hint_summary">Ekranın altında hərəkət məsləhət sətrini göstər</string>
+ <string name="app_notification_sound_timeout_title">Bildiriş səsləri arası ən az vaxt</string>
+ <string name="app_notification_sound_timeout_summary_template">Bir dəfədən çox olmayaraq hər <xliff:g id="duration">%1$s</xliff:g> də bir titrəmə və ya səsə icazə ver</string>
+ <string name="app_notification_sound_timeout_value_none">Məhdudiyyət yoxdur</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 saniyə</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 saniyə</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 dəqiqə</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 dəqiqə</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 dəqiqə</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 dəqiqə</string>
+ <string name="auto_brightness_one_shot_title">Tək çəkilişdə avto-parlaqlıq</string>
+ <string name="auto_brightness_one_shot_summary">Parlaqlıq nizamı yalnız ekran açılanda icra edilir</string>
+ <string name="data_usage_app_restrict_all">Şəbəkə müraciətinə icazə ver</string>
+ <string name="data_usage_app_restrict_all_summary">Şəbəkə istifadəsini fəallaşdır</string>
+ <string name="data_usage_app_restrict_mobile">Mobil internet</string>
+ <string name="data_usage_app_restrict_mobile_summary">Mobil internet istifadəsini fəallaşdır</string>
+ <string name="data_usage_app_restrict_vpn">VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">VPN istifadəsini fəallaşdır</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi istifadəsini fəallaşdır</string>
+ <string name="unlock_scramble_pin_layout_title">Düzümü qarışdır</string>
+ <string name="unlock_scramble_pin_layout_summary">Cihaz kilidini açarkən PIN düzümünü qarışdır</string>
+ <string name="proximity_wake_title">Təsadüfi oyanmaların qarşısını al</string>
+ <string name="proximity_wake_summary">Ekranı oyandırmamışdan qabaq yaxınlıq sensorunu yoxlayın</string>
+ <string name="touchscreen_gesture_settings_title">Ekran toxunuş jestləri</string>
+ <string name="touchscreen_gesture_settings_summary">Cəld hərəkətlər üçün cürbəcür toxunaqlı ekran jestlərini həyata keçirin</string>
+ <string name="touchscreen_hovering_title">Toxunuşlu ekranda toxunmadan hərəkət</string>
+ <string name="touchscreen_hovering_summary">Ekrana toxunmadan barmağınızı yaxınlaşdıraraq siçan (maus) kimi veb səyyahlarda, uzaq masaüstlərində və s. hərəkətinizi təmin edər</string>
+ <string name="wake_when_plugged_or_unplugged_title">Taxıb çıxaranda oyan</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Cərəyan mənbəyinə taxarkən və ya çıxararkən bir səs oynat</string>
+ <string name="fast_charging_title">Sürətli enerji yığma</string>
+ <string name="fast_charging_summary">Cihazın enerji yığarkən istehsal etdiyi istiliyi azaltmaq və ya batereyanın ömrünü uzatmaq üçün sıradan çıxardın</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Telefonun kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Planşetin kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Cihazın kilidini açmaq üçün barmaq izi sensoruna uzun basın</string>
+ <string name="ambient_display_screen_off_udfps_summary">Ekranı oyandırmaq və kilidi açmaq üçün, ekran altındakı barmaq izi sensoruna uzun basın.</string>
+ <string name="storage_warning_internal">Xəbərdarlıq: Bu seçim, düzgün işləməyə və ya məlumat itkisinə səbəb ola bilər, buna görə də tövsiyə edilmir!</string>
+ <string name="assisted_gps_summary">GPS-in başlatma performansını əhəmiyyətli dərəcədə artıra bilən peyk köməkçi datalarını internetdən endirin. Fövqəladə hal zəngləri üçün köməkçi GPS-ə həmişə icazə verilir.</string>
+</resources>
diff --git a/res/values-b+sr+Latn/cm_strings.xml b/res/values-b+sr+Latn/cm_strings.xml
new file mode 100644
index 0000000..703ea87
--- /dev/null
+++ b/res/values-b+sr+Latn/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Automatski podiže učestalost osvežavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+</resources>
diff --git a/res/values-be/cm_strings.xml b/res/values-be/cm_strings.xml
new file mode 100644
index 0000000..52a7ed3
--- /dev/null
+++ b/res/values-be/cm_strings.xml
@@ -0,0 +1,54 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Дадаткі</string>
+ <string name="backup_transport_setting_label">Змяніць пастаўшчыка рэзервовага капіявання</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Застаўся <xliff:g id="step_count">%1$d</xliff:g> крок, каб уключыць налады для распрацоўшчыка.</item>
+ <item quantity="few">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокі, каб уключыць налады для распрацоўшчыка.</item>
+ <item quantity="many">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокаў, каб уключыць налады для распрацоўшчыка.</item>
+ <item quantity="other">Засталося <xliff:g id="step_count">%1$d</xliff:g> крокаў, каб уключыць налады для распрацоўшчыка.</item>
+ </plurals>
+ <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_summary">Паказваць прыярытэтныя апавяшчэнні з дапамогай невялікіх усплывальных вокнаў</string>
+ <string name="high_touch_sensitivity_title">Высокая адчувальнасць дотыку</string>
+ <string name="high_touch_sensitivity_summary">Павялічыць адчувальнасць экрана для магчымасці працы ў пальчатках</string>
+ <string name="tethering_allow_vpn_upstreams_title">Дазволіць кліентам выкарыстоўваць VPN</string>
+ <string name="increasing_ring_min_volume_title">Пачатковая гучнасць</string>
+ <string name="increasing_ring_ramp_up_time_title">Час павелічэння</string>
+ <string name="lockscreen_media_art_title">Паказваць вокладку мультымедыя</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="show_navbar_hint_title">Падказкі навігацыі</string>
+ <string name="app_notification_sound_timeout_value_none">Без абмежаванняў</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 секунд</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 хвіліна</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 хвілін</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 хвілін</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 хвілін</string>
+ <string name="unlock_scramble_pin_layout_title">Змешваць кнопкі</string>
+ <string name="unlock_scramble_pin_layout_summary">Перастаўляць кнопкі ўводу PIN-кода ў выпадковым парадку</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_summary">Уключаць экран пры падключэнні або адключэнні крыніцы сілкавання</string>
+ <string name="fast_charging_summary">Адключыць, каб паменшыць нагрэў прылады падчас зарадкі або падоўжыць тэрмін службы акумулятара</string>
+</resources>
diff --git a/res/values-bg/cm_strings.xml b/res/values-bg/cm_strings.xml
new file mode 100644
index 0000000..7cc2d29
--- /dev/null
+++ b/res/values-bg/cm_strings.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">Отстраняване на грешки с достъп на съперползвател (root)</string>
+ <string name="adb_enable_summary_root">Разрешете отстраняване на грешки в Android с права на суперпотребител</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">LineageOS правна информация</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Вече сте на <xliff:g id="step_count">%1$d </xliff:g> крачка от включването на \"Опции на програмиста\".</item>
+ <item quantity="other">Вече сте на <xliff:g id="step_count">%1$d </xliff:g> крачки от включването на \"Опции на програмиста\".</item>
+ </plurals>
+ <string name="show_dev_on_cm">Включихте менюто \"Опции на програмиста\"!</string>
+ <string name="show_dev_already_cm">Няма нужда, вече сте включили менюто Опции на програмиста.</string>
+ <string name="peak_refresh_rate_summary_custom">Автоматично увеличава честотата на опресняване от 60 на %1$d Hz за част от съдържанието. По-интензивно използване на батерията.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Натиснете, за заспиване</string>
+ <string name="status_bar_double_tap_to_sleep_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">Разрешете на клиентите да използват VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Разрешете на клиентите на точка за достъп да използват VPN връзките на това устройство, за да се свържат с мрежата</string>
+ <string name="increasing_ring_volume_option_title">Увеличаване силата на звука при звънене</string>
+ <string name="increasing_ring_min_volume_title">Начална сила на звука</string>
+ <string name="increasing_ring_ramp_up_time_title">Време на увеличение</string>
+ <string name="lockscreen_media_art_title">Показване на артистична обложка</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="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">10 секунди</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 секунди</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 минута</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 минути</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 минути</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 минути</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">VPN данни</string>
+ <string name="data_usage_app_restrict_vpn_summary">Активиране използването на VPN данни</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi данни</string>
+ <string name="data_usage_app_restrict_wifi_summary">Разреши използването на Wi\u2011Fi данни</string>
+ <string name="unlock_scramble_pin_layout_title">Разбъркано оформление</string>
+ <string name="unlock_scramble_pin_layout_summary">Разбъркано PIN оформление при отключване на устройството</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>
+</resources>
diff --git a/res/values-bn/cm_strings.xml b/res/values-bn/cm_strings.xml
new file mode 100644
index 0000000..3d20c47
--- /dev/null
+++ b/res/values-bn/cm_strings.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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="lineagelicense_title">সায়ানোজেনমড বৈধতা</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">আপনি ডেভেলপার সেটিংস সক্রিয় করার থেকে এখন <xliff:g id="step_count">%1$d</xliff:g> ধাপ দূরে।</item>
+ <item quantity="other">আপনি ডেভেলপার সেটিংস সক্রিয় করার থেকে এখন <xliff:g id="step_count">%1$d</xliff:g> ধাপ দূরে।</item>
+ </plurals>
+ <string name="show_dev_on_cm">আপনি ডেভেলপার সেটিংস সক্রিয় করেছেন!</string>
+ <string name="show_dev_already_cm">প্রয়োজন নেই, আপনি ইতিমধ্যে ডেভেলপার সেটিংস সক্রিয় করেছেন।</string>
+ <string name="peak_refresh_rate_summary_custom">কিছু কন্টেন্টের রিফ্রেশ রেট অটোমেটিক ৬০ থেকে ৯০ Hz পর্যন্ত বেড়ে যায়। ব্যাটারির ব্যবহার বেড়ে যায়।</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</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="lock_settings_picker_pattern_size_message">প্যাটার্নের আকার নির্ধারন করুন</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="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="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="unlock_scramble_pin_layout_title">একত্র বিন্যাস</string>
+ <string name="unlock_scramble_pin_layout_summary">একত্র পিন বিন্যাস যখন ডিভাইস অবমুক্ত করার সময়</string>
+ <string name="proximity_wake_title">আকস্মিক জেগে ওঠা প্রতিহত করুন</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>
+</resources>
diff --git a/res/values-bs/cm_strings.xml b/res/values-bs/cm_strings.xml
new file mode 100644
index 0000000..945ac38
--- /dev/null
+++ b/res/values-bs/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Automatski povećava interval osvježavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+</resources>
diff --git a/res/values-ca/cm_strings.xml b/res/values-ca/cm_strings.xml
new file mode 100644
index 0000000..c7f275b
--- /dev/null
+++ b/res/values-ca/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extres</string>
+ <string name="advanced_keyboard_settings_title">Configuració avançada</string>
+ <string name="adb_enable_root">Depuració arrelada</string>
+ <string name="adb_enable_summary_root">Permet executar la depuració d\'Android com a root</string>
+ <string name="backup_transport_setting_label">Canvia el proveïdor de còpia de seguretat</string>
+ <string name="backup_transport_title">Trieu un proveïdor de còpia de seguretat</string>
+ <string name="berry_black_theme_title">Negre pur</string>
+ <string name="berry_black_theme_summary">Fons negre pur per al tema fosc</string>
+ <string name="lineagelicense_title">Llicència LineageOS</string>
+ <string name="device_info_protected_single_press">Toqueu per mostrar la informació</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Ara ets a <xliff:g id="step_count">%1$d</xliff:g> pas d\'habilitar les configuracions de desenvolupament.</item>
+ <item quantity="other">Ara ets a <xliff:g id="step_count">%1$d</xliff:g> passos d\'habilitar les configuracions de desenvolupament.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Has habilitat les configuracions de desenvolupament!</string>
+ <string name="show_dev_already_cm">No fa falta, ja has habilitat les configuracions de desenvolupament.</string>
+ <string name="peak_refresh_rate_summary_custom">Augmenta automàticament la freqüència d\'actualització de 60 a %1$d Hz en alguns continguts. Augmenta l\'ús de la bateria.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Pica per posar en repòs</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Pica dues vegades a la barra d\'estat o a la pantalla de bloqueig per apagar la pantalla</string>
+ <string name="high_touch_polling_rate_title">Taxa de petició tàctil elevada</string>
+ <string name="high_touch_polling_rate_summary">Augmenta la taxa de sondeig de la pantalla tàctil</string>
+ <string name="heads_up_notifications_enabled_title">Notificacions emergents</string>
+ <string name="heads_up_notifications_enabled_summary">Mostra les notificacions prioritàries en una petita finestra flotant</string>
+ <string name="high_touch_sensitivity_title">Sensibilitat al tacte alta</string>
+ <string name="high_touch_sensitivity_summary">Incrementa la sensibilitat de la pantalla tàctil de manera que pugui utilitzar-se si es porten guants</string>
+ <string name="tethering_allow_vpn_upstreams_title">Permet als clients utilitzar les VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permet que els clients de punts d\'accés utilitzin les connexions VPN d\'aquest dispositiu per a la connectivitat ascendent</string>
+ <string name="increasing_ring_volume_option_title">Volum del to de trucada creixent</string>
+ <string name="increasing_ring_min_volume_title">Volum inicial</string>
+ <string name="increasing_ring_ramp_up_time_title">Durada del crescendo</string>
+ <string name="lockscreen_media_art_title">Mostra la coberta de l\'àlbum</string>
+ <string name="lock_settings_picker_pattern_size_message">Tria una mida de patró</string>
+ <string name="lockpattern_settings_enable_error_path_title">Mostra el patró erroni</string>
+ <string name="lockpattern_settings_enable_dots_title">Mostra els punts del patró</string>
+ <string name="max_refresh_rate_title">Freqüència de refresc màxima</string>
+ <string name="min_refresh_rate_title">Freqüència de refresc mínima</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localitza el sensor d\'empremtes digitals a la part davantera de la tauleta.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localitza el sensor d\'empremtes digitals a la part davantera del teu dispositiu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localitza el sensor d\'empremtes digitals a la part davantera del teu mòbil.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localitza el sensor d\'empremtes digitals a la part trasera de la tauleta.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localitza el sensor d\'empremtes digitals a la part trasera del teu dispositiu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localitza el sensor d\'empremtes digitals a la part trasera del teu mòbil.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localitza el sensor d\'empremtes digitals al costat de la teua tauleta.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localitza el sensor d\'empremtes digitals al costat del teu dispositiu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localitza el sensor d\'empremtes digitals al costat del teu mòbil.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toca el sensor a la part davantera de la tauleta.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toca el sensor a la part davantera del dispositiu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toca el sensor a la part davantera del mòbil.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toca el sensor a la part trasera de la tauleta.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toca el sensor a la part trasera del teu dispositiu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toca el sensor a la part trasera del mòbil.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Toca el sensor al costat de la tauleta.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Toca el sensor al costat del dispositiu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Toca el sensor al costat del mòbil.</string>
+ <string name="show_navbar_hint_title">Suggerència de navegació</string>
+ <string name="show_navbar_hint_summary">Mostra la barra de suggeriments de navegació a la part inferior de la pantalla</string>
+ <string name="app_notification_sound_timeout_title">Temps mínim entre els sons de notificació</string>
+ <string name="app_notification_sound_timeout_summary_template">Permet sons o vibració no més d\'una vegada cada <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Sense restricció</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 segons</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 segons</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuts</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuts</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuts</string>
+ <string name="auto_brightness_one_shot_title">Ajusta la lluentor una sola vegada</string>
+ <string name="auto_brightness_one_shot_summary">L\'ajust de la lluentor només es produirà en el moment que la pantalla estigui encesa</string>
+ <string name="data_usage_app_restrict_all">Permet l\'accés a la xarxa</string>
+ <string name="data_usage_app_restrict_all_summary">Activa l\'ús de la xarxa</string>
+ <string name="data_usage_app_restrict_mobile">Dades mòbils</string>
+ <string name="data_usage_app_restrict_mobile_summary">Activa l\'ús de dades mòbils</string>
+ <string name="data_usage_app_restrict_vpn">Dades VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Habilita l\'ús de dades via VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dades Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Activa l\'ús de dades Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Disposició aleatòria</string>
+ <string name="unlock_scramble_pin_layout_summary">Disposa aleatòriament les tecles del PIN quan es desbloquegi el dispositiu</string>
+ <string name="proximity_wake_title">Evita l\'encesa accidental</string>
+ <string name="proximity_wake_summary">Comprova el sensor de proximitat abans d\'encendre la pantalla</string>
+ <string name="touchscreen_gesture_settings_title">Gestos a la pantalla tàctil</string>
+ <string name="touchscreen_gesture_settings_summary">Fes diversos gestos a la pantalla tàctil per fer accions ràpides</string>
+ <string name="touchscreen_hovering_title">Sura per sobre la pantalla tàctil</string>
+ <string name="touchscreen_hovering_summary">Et permet surar per sobre la pantalla com un ratolí en els navegadors web, escriptoris remots, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Encén en endollar</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Encén la pantalla en connectar o desconnectar d\'una font d\'energia</string>
+ <string name="fast_charging_title">Càrrega ràpida</string>
+ <string name="fast_charging_summary">Desactiveu-lo per reduir la calor produïda pel dispositiu mentre es carrega o per ampliar la vida útil de la bateria</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar el telèfon</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar la tauleta</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Mantingueu premut el sensor d\'empremtes digitals per desbloquejar el dispositiu</string>
+ <string name="ambient_display_screen_off_udfps_summary">Per activar la pantalla i desbloquejar-la, mantingueu premut el sensor d\'empremtes dactilars de sota la pantalla.</string>
+ <string name="storage_warning_internal">Avís: aquesta opció pot no funcionar correctament o provocar la pèrdua de dades i, per tant, no es recomana!</string>
+ <string name="assisted_gps_summary">Baixa dades dassistència satelital d\'Internet que poden millorar en gran mesura el rendiment inicial del GPS. Per a trucades d\'emergència, sempre es permet el GPS assistit.</string>
+</resources>
diff --git a/res/values-cs/cm_strings.xml b/res/values-cs/cm_strings.xml
new file mode 100644
index 0000000..221fed2
--- /dev/null
+++ b/res/values-cs/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Doplňky</string>
+ <string name="advanced_keyboard_settings_title">Pokročilá nastavení</string>
+ <string name="adb_enable_root">Ladění s\u00a0právy root</string>
+ <string name="adb_enable_summary_root">Povolit spuštění ladění Androidu s\u00a0právy root</string>
+ <string name="backup_transport_setting_label">Změnit poskytovatele zálohování</string>
+ <string name="backup_transport_title">Vyberte poskytovatele zálohování</string>
+ <string name="berry_black_theme_title">Čistě černý</string>
+ <string name="berry_black_theme_summary">Čistě černé pozadí při tmavém motivu</string>
+ <string name="lineagelicense_title">Právní ujednání LineageOS</string>
+ <string name="device_info_protected_single_press">Klepnutím zobrazit informace</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> krok od povolení vývojářských nastavení.</item>
+ <item quantity="few">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroky od povolení vývojářských nastavení.</item>
+ <item quantity="many">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroků od povolení vývojářských nastavení.</item>
+ <item quantity="other">Už jste jen <xliff:g id="step_count">%1$d</xliff:g> kroků od povolení vývojářských nastavení.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Vývojářské nastavení je povoleno!</string>
+ <string name="show_dev_already_cm">Vývojářské nastavení je již povoleno.</string>
+ <string name="peak_refresh_rate_summary_custom">U některého obsahu automaticky zvýší obnovovací frekvenci z 60 na %1$d Hz. Zvyšuje využití baterie.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Klepnutím uspat</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dvojitým poklepáním na stavovou lištu nebo zamykací obrazovku vypnout obrazovku</string>
+ <string name="high_touch_polling_rate_title">Vysoká vzorkovací frekvence pro dotyk</string>
+ <string name="high_touch_polling_rate_summary">Zvýšení vzorkovací frekvence dotykové obrazovky</string>
+ <string name="heads_up_notifications_enabled_title">Plovoucí upozornění</string>
+ <string name="heads_up_notifications_enabled_summary">Zobrazit prioritní oznámení v malém plovoucím okně</string>
+ <string name="high_touch_sensitivity_title">Vysoká citlivost dotyku</string>
+ <string name="high_touch_sensitivity_summary">Zvýšení citlivosti dotykové vrstvy, což umožňuje použít rukavice</string>
+ <string name="tethering_allow_vpn_upstreams_title">Umožnit klientům používat VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Povolit klientům hotspotu používat připojení VPN tohoto zařízení pro upstream konektivitu</string>
+ <string name="increasing_ring_volume_option_title">Zvyšující se hlasitost vyzvánění</string>
+ <string name="increasing_ring_min_volume_title">Počáteční hlasitost</string>
+ <string name="increasing_ring_ramp_up_time_title">Doba zesilování</string>
+ <string name="lockscreen_media_art_title">Zobrazit obal médií</string>
+ <string name="lock_settings_picker_pattern_size_message">Zvolit velikost vzoru</string>
+ <string name="lockpattern_settings_enable_error_path_title">Zobrazit cestu chybného gesta</string>
+ <string name="lockpattern_settings_enable_dots_title">Zobrazit body gesta</string>
+ <string name="max_refresh_rate_title">Maximální obnovovací frekvence</string>
+ <string name="min_refresh_rate_title">Minimální obnovovací frekvence</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Vyhledejte snímač otisků prstů na přední straně tabletu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Vyhledejte snímač otisků prstů na přední straně zařízení.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Vyhledejte snímač otisků prstů na přední straně telefonu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Vyhledejte snímač otisků prstů na zadní straně tabletu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Vyhledejte snímač otisků prstů na zadní straně zařízení.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Vyhledejte snímač otisků prstů na zadní straně telefonu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Vyhledejte snímač otisků prstů na straně tabletu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Vyhledejte snímač otisků prstů na straně zařízení.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Vyhledejte snímač otisků prstů na straně telefonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotkněte se senzoru na přední straně tabletu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotkněte se senzoru na přední straně zařízení.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotkněte se senzoru na přední straně telefonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotkněte se senzoru na zadní straně tabletu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotkněte se senzoru na zadní straně zařízení.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotkněte se senzoru na zadní straně telefonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotkněte se senzoru na straně tabletu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotkněte se senzoru na straně zařízení.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotkněte se senzoru na boční straně telefonu.</string>
+ <string name="show_navbar_hint_title">Navigační nápověda</string>
+ <string name="show_navbar_hint_summary">Zobrazit navigační nápovědu ve spodní části obrazovky (tenký proužek)</string>
+ <string name="app_notification_sound_timeout_title">Minimální doba mezi zvuky oznámení</string>
+ <string name="app_notification_sound_timeout_summary_template">Povolit zvuky nebo vibrace ne více než jednou každých <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Bez omezení</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekund</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekund</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minuta</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minut</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minut</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minut</string>
+ <string name="auto_brightness_one_shot_title">Rychlé nastavení automatického jasu</string>
+ <string name="auto_brightness_one_shot_summary">K úpravě jasu dojde pouze v okamžiku zapnutí obrazovky</string>
+ <string name="data_usage_app_restrict_all">Povolit přístup k síti</string>
+ <string name="data_usage_app_restrict_all_summary">Povolit využití sítě</string>
+ <string name="data_usage_app_restrict_mobile">Mobilní data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Povolit používání mobilních dat</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Povolit používání VPN dat</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Povolit používání Wi\u2011Fi dat</string>
+ <string name="unlock_scramble_pin_layout_title">Přeházet rozložení</string>
+ <string name="unlock_scramble_pin_layout_summary">Přeházet rozložení pro zadání PIN při odemykání zařízení</string>
+ <string name="proximity_wake_title">Zabránit nechtěnému probuzení</string>
+ <string name="proximity_wake_summary">Kontrolovat senzor přiblížení pro zabránění nechtěného probuzení</string>
+ <string name="touchscreen_gesture_settings_title">Gesta na obrazovce</string>
+ <string name="touchscreen_gesture_settings_summary">Možnost spustit rychlou akci pomocí různých gest na obrazovce</string>
+ <string name="touchscreen_hovering_title">Detekce nad obrazovkou</string>
+ <string name="touchscreen_hovering_summary">Umožňuje pohybovat se jakoby nad obsahem obrazovky podobně, jako když myší najedete na nějaký ovládací prvek</string>
+ <string name="wake_when_plugged_or_unplugged_title">Probudit při nabíjení</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Zapnout obrazovku při připojení nebo odpojení nabíječky</string>
+ <string name="fast_charging_title">Rychlé nabíjení</string>
+ <string name="fast_charging_summary">Vypnutím snížíte teplo produkované zařízením během nabíjení nebo prodloužíte životnost baterie</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Dlouhým stisknutím snímače otisků prstů odemknout telefon</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Dlouhým stisknutím snímače otisků prstů odemknout tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Dlouhým stisknutím snímače otisků prstů odemknout zařízení</string>
+ <string name="ambient_display_screen_off_udfps_summary">Chcete-li obrazovku probudit a odemknout, dlouze stiskněte snímač otisků prstů v displeji.</string>
+ <string name="storage_warning_internal">Varování: Tato možnost nemusí fungovat správně nebo může vést ke ztrátě dat, proto se nedoporučuje!</string>
+</resources>
diff --git a/res/values-cy/cm_strings.xml b/res/values-cy/cm_strings.xml
new file mode 100644
index 0000000..eb894de
--- /dev/null
+++ b/res/values-cy/cm_strings.xml
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Ychwanegion</string>
+ <string name="advanced_keyboard_settings_title">Gosodiadau uwch</string>
+ <string name="adb_enable_root">Dadfygio wedi gwreiddio</string>
+ <string name="adb_enable_summary_root">Caniatáu rhedeg dadfygio Android fel gwraidd</string>
+ <string name="backup_transport_setting_label">Newid darparwr wrth gefn</string>
+ <string name="backup_transport_title">Dewis darparwr wrth gefn</string>
+ <string name="berry_black_theme_title">Du pur</string>
+ <string name="berry_black_theme_summary">Cefndir du pur i\'r thema dywyll</string>
+ <string name="lineagelicense_title">Cyfreithiol LineageOS</string>
+ <string name="device_info_protected_single_press">Tapio i ddangos gwybodaeth</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="zero">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> camau i ffwrdd o alluogi gosodiadau datblygu.</item>
+ <item quantity="one">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+ <item quantity="two">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> gam i ffwrdd o alluogi gosodiadau datblygu.</item>
+ <item quantity="few">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+ <item quantity="many">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cham i ffwrdd o alluogi gosodiadau datblygu.</item>
+ <item quantity="other">Rwyt nawr <xliff:g id="step_count">%1$d</xliff:g> cam i ffwrdd o alluogi gosodiadau datblygu.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Rwyt wedi galluogi gosodiadau datblygu!</string>
+ <string name="show_dev_already_cm">Dim angen; rwyt eisoes wedi galluogi gosodiadau datblygu.</string>
+ <string name="peak_refresh_rate_summary_custom">Mae\'n codi\'r gyfradd adnewyddu yn awtomatig o 60 i %1$d Hz ar gyfer rhai cynnwys. Mae\'n defnyddio mwy o fatri.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tapio i gysgu</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Tapio dwywaith ar y bar statws neu\'r sgrin cloi i droi\'r sgrin i ffwrdd</string>
+ <string name="high_touch_polling_rate_title">Cyfradd polio cyffyrddiad uchel</string>
+ <string name="high_touch_polling_rate_summary">Cynyddu cyfradd polio\'r sgrin gyffwrdd</string>
+ <string name="heads_up_notifications_enabled_title">Rhagrybudd</string>
+ <string name="heads_up_notifications_enabled_summary">Dangos hysbysiadau blaenoriaeth mewn ffenestr fach sy\'n arnofio</string>
+ <string name="high_touch_sensitivity_title">Sensitifrwydd cyffwrdd uchel</string>
+ <string name="high_touch_sensitivity_summary">Cynyddu sensitifrwydd y sgrin gyffwrdd fel y gellir ei defnyddio wrth wisgo menig</string>
+ <string name="tethering_allow_vpn_upstreams_title">Caniatáu cleientiaid i ddefnyddio VPNau</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Caniatáu cleientiaid llecynnau Wi-Fi i ddefnyddio cysylltiadau VPN y ddyfais hon</string>
+ <string name="increasing_ring_volume_option_title">Uchder sain yn cynyddu</string>
+ <string name="increasing_ring_min_volume_title">Uchder sain i ddechrau</string>
+ <string name="increasing_ring_ramp_up_time_title">Amser i gynyddu</string>
+ <string name="lockscreen_media_art_title">Dangos llun clawr cyfryngau</string>
+ <string name="lock_settings_picker_pattern_size_message">Dewisa faint patrwm</string>
+ <string name="lockpattern_settings_enable_error_path_title">Dangos gwall patrwm</string>
+ <string name="lockpattern_settings_enable_dots_title">Dangos dotiau patrwm</string>
+ <string name="max_refresh_rate_title">Cyfradd adnewyddu uchaf</string>
+ <string name="min_refresh_rate_title">Cyfradd adnewyddu leiaf</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar flaen dy lechen.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Ffeindia\'r synhwyrydd ôl bys ar flaen dy ddyfais.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Ffeindia\'r synhwyrydd ôl bys ar flaen dy ffôn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar gefn dy lechen.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Ffeindia\'r synhwyrydd ôl bys ar gefn dy ddyfais.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Ffeindia\'r synhwyrydd ôl bys ar gefn dy ffôn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Ffeindia\'r synhwyrydd ôl bys ar ochr dy lechen.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Ffeindia\'r synhwyrydd ôl bys ar ochr dy ddyfais.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Ffeindia\'r synhwyrydd ôl bys ar ochr dy ffôn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Cyffyrdda\'r synhwyrydd ar flaen dy lechen.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cyffyrdda\'r synhwyrydd ar flaen dy ddyfais.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Cyffyrdda\'r synhwyrydd ar flaen dy ffôn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Cyffyrdda\'r synhwyrydd ar gefn dy lechen.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cyffyrdda\'r synhwyrydd ar gefn dy ddyfais.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Cyffyrdda\'r synhwyrydd ar gefn dy ffôn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Cyffyrdda\'r synhwyrydd ar ochr dy lechen.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cyffyrdda\'r synhwyrydd ar ochr dy ddyfais.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Cyffyrdda\'r synhwyrydd ar ochr dy ffôn.</string>
+ <string name="show_navbar_hint_title">Awgrymiad llywio</string>
+ <string name="show_navbar_hint_summary">Dangos bar awgrymiadau llywio ar waelod y sgrin</string>
+ <string name="app_notification_sound_timeout_title">Y cyfnod lleiaf o amser rhwng seiniau hysbysiadau</string>
+ <string name="app_notification_sound_timeout_summary_template">Peidio â chaniatáu synau na dirgrynu yn amlach nag unwaith pob <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Dim cyfyngiad</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 eiliad</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 eiliad</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 munud</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 munud</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 munud</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 munud</string>
+ <string name="auto_brightness_one_shot_title">Awto-disgleirdeb un tro</string>
+ <string name="auto_brightness_one_shot_summary">Caiff y disgleirdeb ei addasu dim ond ar y foment mae\'r sgrin yn troi ymlaen.</string>
+ <string name="data_usage_app_restrict_all">Caniatáu mynediad i rwydwaith</string>
+ <string name="data_usage_app_restrict_all_summary">Caniatáu defnydd o rwydwaith</string>
+ <string name="data_usage_app_restrict_mobile">Data symudol</string>
+ <string name="data_usage_app_restrict_mobile_summary">Galluogi\'r defnydd o ddata symudol</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Galluogi defnyddio VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Data Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Galluogi defnydd data Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Cymysgu\'r cynllun</string>
+ <string name="unlock_scramble_pin_layout_summary">Cymysgu cynllun y PIN wrth ddatgloi\'r ddyfais</string>
+ <string name="proximity_wake_title">Rhwystro deffro ar gam</string>
+ <string name="proximity_wake_summary">Gwirio\'r synhwyrydd agosrwydd cyn deffro\'r sgrin</string>
+ <string name="touchscreen_gesture_settings_title">Ystumiau sgrin gyffwrdd</string>
+ <string name="touchscreen_gesture_settings_summary">Perfformio ystumiau amrywiol ar y sgrin gyffwrdd am weithredoedd cyflym</string>
+ <string name="touchscreen_hovering_title">Hofran sgrin gyffwrdd</string>
+ <string name="touchscreen_hovering_summary">Mae\'n dy ganiatáu i hofran ar y sgrin fel defnyddio llygoden mewn porwyr, byrddau gwaith pell, ayyb</string>
+ <string name="wake_when_plugged_or_unplugged_title">Deffro wrth gysylltu â phŵer</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Troi\'r sgrin ymlaen wrth gysylltu neu ddatgysylltu â phŵer</string>
+ <string name="fast_charging_title">Gwefru cyflym</string>
+ <string name="fast_charging_summary">Analluoga i leihau\'r gwres sy\'n cael ei gynhyrchu gan y ddyfais wrth wefru neu i ymestyn oes y batri</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r ffôn</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r llechen</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Dal yn hir ar y synhwyrydd ôl bys i ddatgloi\'r ddyfais</string>
+ <string name="ambient_display_screen_off_udfps_summary">I ddeffro a datgloi dy sgrin, dalia yn hir dros y synhwyrydd ôl bys sydd o dan y sgrin.</string>
+ <string name="storage_warning_internal">Rhybudd: Mae\'n bosib na fydd yr opsiwn hwn yn gweithio\'n iawn ac yn arwain at golli data, felly ni argymhellir!</string>
+</resources>
diff --git a/res/values-da/cm_strings.xml b/res/values-da/cm_strings.xml
new file mode 100644
index 0000000..23f3139
--- /dev/null
+++ b/res/values-da/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Ekstra</string>
+ <string name="advanced_keyboard_settings_title">Avancerede indstillinger</string>
+ <string name="adb_enable_root">Fejlfinding med \'root\'</string>
+ <string name="adb_enable_summary_root">Tillad kørsel af Android fejlretning som \'root\'</string>
+ <string name="backup_transport_setting_label">Skift backup udbyder</string>
+ <string name="backup_transport_title">Vælg backup udbyder</string>
+ <string name="berry_black_theme_title">Ren sort</string>
+ <string name="berry_black_theme_summary">Ren sort baggrund til mørkt tema</string>
+ <string name="lineagelicense_title">LineageOS-juridisk</string>
+ <string name="device_info_protected_single_press">Tryk for at vise info</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Du er nu <xliff:g id="step_count">%1$d</xliff:g> skridt fra at aktivere udvikler-indstillinger.</item>
+ <item quantity="other">Du er nu <xliff:g id="step_count">%1$d</xliff:g> skridt fra at aktivere udvikler-indstillinger.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Du har aktiveret udvikler-indstillinger!</string>
+ <string name="show_dev_already_cm">Behøves ikke.; du har allerede aktiveret udvikler-indstillinger.</string>
+ <string name="peak_refresh_rate_summary_custom">Øger automatisk opdateringshastigheden fra 60 til %1$d Hz for noget indhold. Medfører højere batteriforbrug.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tryk for at slumre</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dobbelt-tryk på statusbjælken eller låseskærmen, for at slukke for skærmen</string>
+ <string name="high_touch_polling_rate_title">Høj berøringsmåling rate</string>
+ <string name="high_touch_polling_rate_summary">Forøg berøringsskærm afstemningshastigheden</string>
+ <string name="heads_up_notifications_enabled_title">Banner notifikationer</string>
+ <string name="heads_up_notifications_enabled_summary">Vis prioriterede notifikationer i et lille svævende vindue</string>
+ <string name="high_touch_sensitivity_title">Høj berøringsfølsomhed</string>
+ <string name="high_touch_sensitivity_summary">Forøg berøringsfølsom skærms følsomhed, så den kan bruges med handsker på</string>
+ <string name="tethering_allow_vpn_upstreams_title">Tillad klienter at bruge VPN\'er</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Tillad hotspot klienter at bruge denne enhed\u2019s VPN-forbindelser til upstream forbindelse</string>
+ <string name="increasing_ring_volume_option_title">Stigende ringe-lydstyrke</string>
+ <string name="increasing_ring_min_volume_title">Start-lydstyrke</string>
+ <string name="increasing_ring_ramp_up_time_title">Opvarmningstid</string>
+ <string name="lockscreen_media_art_title">Vis medie-albumbilleder</string>
+ <string name="lock_settings_picker_pattern_size_message">Vælg en mønsterstørrelse</string>
+ <string name="lockpattern_settings_enable_error_path_title">Vis mønster-fejl</string>
+ <string name="lockpattern_settings_enable_dots_title">Vis mønster-prikker</string>
+ <string name="max_refresh_rate_title">Maksimal opdateringshastighed</string>
+ <string name="min_refresh_rate_title">Minimum skærm forfriskningstid</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Find fingeraftrykssensoren på tablet\'ens forside.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Find fingeraftrykssensoren på enhedens forside.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Find fingeraftrykssensoren på forsiden af telefonen.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Find fingeraftrykssensoren på tablet\'ens bagside.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Find fingeraftrykslæseren på enhedens bagside.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Find fingeraftrykssensoren på bagsiden af telefonen.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Find fingeraftrykslæseren på tablet\'ens side.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Find fingeraftrykslæseren på enhedens side.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Find fingeraftrykssensoren på mobilens side.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tryk på fingeraftrykslæseren på tablet\'ens forside.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tryk på fingeraftrykssensoren på enhedens forside.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tryk på fingeraftrykssensoren på mobilens forside.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tryk på fingeraftrykssensoren på tablet\'ens bagside.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tryk på fingeraftrykssensoren på enhedens bagside.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tryk på fingeraftrykssensoren på mobilens bagside.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tryk på fingeraftrykssensoren på tablet\'ens side.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tryk på fingeraftrykssensoren på enhedens side.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tryk på fingeraftrykssensoren på mobilens side.</string>
+ <string name="show_navbar_hint_title">Navigations hint</string>
+ <string name="show_navbar_hint_summary">Vis navigationsbjælke nederst på skærmen</string>
+ <string name="app_notification_sound_timeout_title">Minimumstid imellem notifikationslyde</string>
+ <string name="app_notification_sound_timeout_summary_template">Tillad ikke lyde, eller vibration, mere end én gang hver <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Ingen restriktion</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutter</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutter</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutter</string>
+ <string name="auto_brightness_one_shot_title">Etskuds automatisk lysstyrke</string>
+ <string name="auto_brightness_one_shot_summary">Lysstyrkejustering vil kun forekomme i det øjeblik, skærmen tændes</string>
+ <string name="data_usage_app_restrict_all">Tillad netværksadgang</string>
+ <string name="data_usage_app_restrict_all_summary">Aktiver netværksforbrug</string>
+ <string name="data_usage_app_restrict_mobile">Mobildata</string>
+ <string name="data_usage_app_restrict_mobile_summary">Aktiver brug af mobildata</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Aktivér brug af VPN-data</string>
+ <string name="data_usage_app_restrict_wifi">Wi‑Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Aktivér brug af Wi-Fi data</string>
+ <string name="unlock_scramble_pin_layout_title">Omvælt opsætning</string>
+ <string name="unlock_scramble_pin_layout_summary">Omvælt PIN-opsætning, ved oplåsning af enhed</string>
+ <string name="proximity_wake_title">Forhindr utilsigtet vækning</string>
+ <string name="proximity_wake_summary">Check nærheds scensoren før skrærmen vækkes</string>
+ <string name="touchscreen_gesture_settings_title">Bevægelser på berøringsfølsom skærm</string>
+ <string name="touchscreen_gesture_settings_summary">Udfør forskellige bevægelser på berøringsfølsom skærm, for hurtig-handlinger</string>
+ <string name="touchscreen_hovering_title">Berøringsfølsom skærm-svævning</string>
+ <string name="touchscreen_hovering_summary">Tillader dig at holde fingeren over skærmen, som en mus i netlæsere, på fjernskriveborde, osv.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Vågn ved tilslutning</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Tænd for skærmen, ved tilslutning til, eller afbrydelse fra en strømkilde</string>
+ <string name="fast_charging_title">Hurtig opladning</string>
+ <string name="fast_charging_summary">Deaktiver for at reducere den varme, der produceres af enheden, mens du oplader og forlæng batteriets levetid</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Langt tryk på fingeraftrykssensoren for at låse telefonen op</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Langt tryk på fingeraftrykssensoren for at låse tabletten op</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Langt tryk på fingeraftrykssensoren for at låse enheden op</string>
+ <string name="ambient_display_screen_off_udfps_summary">For at vække skærmen og låse den op, skal du trykke lang tid på fingeraftrykssensoren under displayet.</string>
+ <string name="storage_warning_internal">Advarsel: Denne indstilling fungerer muligvis ikke korrekt eller fører til tab af data og anbefales derfor ikke!</string>
+ <string name="assisted_gps_summary">Download satellit-hjælpedata fra internettet, som i høj grad kan forbedre GPS opstartsfunktionen. Til nødopkald er assisteret GPS altid tilladt.</string>
+</resources>
diff --git a/res/values-de/cm_strings.xml b/res/values-de/cm_strings.xml
new file mode 100644
index 0000000..a546419
--- /dev/null
+++ b/res/values-de/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Erweiterte Einstellungen</string>
+ <string name="adb_enable_root">Root-Debugging</string>
+ <string name="adb_enable_summary_root">Android-Debugging als Root erlauben</string>
+ <string name="backup_transport_setting_label">Backup-Anbieter ändern</string>
+ <string name="backup_transport_title">Backup-Anbieter auswählen</string>
+ <string name="berry_black_theme_title">Reines Schwarz</string>
+ <string name="berry_black_theme_summary">Rein schwarzer Hintergrund für dunkles Design</string>
+ <string name="lineagelicense_title">Rechtliche Hinweise zu LineageOS</string>
+ <string name="device_info_protected_single_press">Antippen, um Information anzuzeigen</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Du bist <xliff:g id="step_count">%1$d</xliff:g> Schritt vom Aktivieren der Entwicklereinstellungen entfernt.</item>
+ <item quantity="other">Du bist <xliff:g id="step_count">%1$d</xliff:g> Schritte vom Aktivieren der Entwicklereinstellungen entfernt.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Du hast die Entwicklereinstellungen aktiviert!</string>
+ <string name="show_dev_already_cm">Nicht nötig, du hast die Entwicklereinstellungen bereits aktiviert.</string>
+ <string name="peak_refresh_rate_summary_custom">Setzt die Aktualisierungsrate für einige Inhalte automatisch von 60 auf %1$d Hz herauf. Erhöhter Akkuverbrauch.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tippen für Standby</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Doppeltippe auf Statusleiste oder Sperrbildschirm, um das Display auszuschalten</string>
+ <string name="high_touch_polling_rate_title">Hohe Touchscreen-Abtastrate</string>
+ <string name="high_touch_polling_rate_summary">Touchscreen-Abtastrate erhöhen</string>
+ <string name="heads_up_notifications_enabled_title">Pop-up</string>
+ <string name="heads_up_notifications_enabled_summary">Wichtige Benachrichtigungen in einem kleinen, schwebenden Fenster anzeigen</string>
+ <string name="high_touch_sensitivity_title">Hohe Touch-Empfindlichkeit</string>
+ <string name="high_touch_sensitivity_summary">Touch-Empfindlichkeit erhöhen, um den Touchscreen auch mit Handschuhen bedienen zu können</string>
+ <string name="tethering_allow_vpn_upstreams_title">Clients erlauben VPN zu verwenden</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Erlaubt Hotspot-Clients die VPN-Verbindungen dieses Gerätes für die Upstream-Konnektivität zu verwenden</string>
+ <string name="increasing_ring_volume_option_title">Ansteigende Klingeltonlautstärke</string>
+ <string name="increasing_ring_min_volume_title">Anfangslautstärke</string>
+ <string name="increasing_ring_ramp_up_time_title">Anstiegszeit</string>
+ <string name="lockscreen_media_art_title">Albumcover anzeigen</string>
+ <string name="lock_settings_picker_pattern_size_message">Größe des Musters auswählen</string>
+ <string name="lockpattern_settings_enable_error_path_title">Sperrmuster-Fehler anzeigen</string>
+ <string name="lockpattern_settings_enable_dots_title">Sperrmuster-Punkte anzeigen</string>
+ <string name="max_refresh_rate_title">Maximale Aktualisierungsrate</string>
+ <string name="min_refresh_rate_title">Minimale Aktualisierungsrate</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Finde den Fingerabdrucksensor auf der Vorderseite deines Tablets.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Finde den Fingerabdrucksensor auf der Vorderseite deines Geräts.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Finde den Fingerabdrucksensor auf der Vorderseite deines Telefons.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Finde den Fingerabdrucksensor auf der Rückseite deines Tablets.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Finde den Fingerabdrucksensor auf der Rückseite deines Geräts.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Finde den Fingerabdrucksensor auf der Rückseite deines Telefons.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Finde den Fingerabdrucksensor an der Seite deines Tablets.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Finde den Fingerabdrucksensor an der Seite deines Geräts.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Finde den Fingerabdrucksensor an der Seite deines Telefons.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Berühre den Sensor auf der Vorderseite deines Tablets.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Berühre den Sensor auf der Vorderseite deines Geräts.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Berühre den Sensor auf der Vorderseite deines Telefons.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Berühre den Sensor auf der Rückseite deines Tablets.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Berühre den Sensor auf der Rückseite deines Geräts.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Berühre den Sensor auf der Rückseite deines Telefons.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Berühre den Sensor an der Seite deines Tablets.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Berühre den Sensor an der Seite deines Geräts.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Berühre den Sensor an der Seite deines Telefons.</string>
+ <string name="show_navbar_hint_title">Angedeutete Navigationsleiste</string>
+ <string name="show_navbar_hint_summary">Deutet Navigationsleiste am unteren Bildschirmrand an</string>
+ <string name="app_notification_sound_timeout_title">Minimale Zeit zwischen Benachrichtigungstönen</string>
+ <string name="app_notification_sound_timeout_summary_template">Töne und Vibrationen nur alle <xliff:g id="duration">%1$s</xliff:g> zulassen</string>
+ <string name="app_notification_sound_timeout_value_none">Keine Beschränkung</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 Sekunden</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 Sekunden</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 Minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 Minuten</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 Minuten</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 Minuten</string>
+ <string name="auto_brightness_one_shot_title">Einmalige automatische Helligkeitseinstellung</string>
+ <string name="auto_brightness_one_shot_summary">Helligkeitsanpassung erfolgt nur beim Einschalten des Bildschirms</string>
+ <string name="data_usage_app_restrict_all">Netzwerkzugriff erlauben</string>
+ <string name="data_usage_app_restrict_all_summary">Netzwerknutzung aktivieren</string>
+ <string name="data_usage_app_restrict_mobile">Mobile Daten</string>
+ <string name="data_usage_app_restrict_mobile_summary">Nutzung mobiler Daten erlauben</string>
+ <string name="data_usage_app_restrict_vpn">VPN-Daten</string>
+ <string name="data_usage_app_restrict_vpn_summary">VPN-Datennutzung erlauben</string>
+ <string name="data_usage_app_restrict_wifi">WLAN-Daten</string>
+ <string name="data_usage_app_restrict_wifi_summary">WLAN-Datenzugriff erlauben</string>
+ <string name="unlock_scramble_pin_layout_title">Zufällige Anordnung</string>
+ <string name="unlock_scramble_pin_layout_summary">Bei jedem Entsperrversuch die Ziffernanordnung zufällig neu wählen</string>
+ <string name="proximity_wake_title">Unbeabsichtigtes Aufwecken verhindern</string>
+ <string name="proximity_wake_summary">Vor dem Aufwecken des Gerätes Näherungssensor überprüfen</string>
+ <string name="touchscreen_gesture_settings_title">Bildschirmgesten</string>
+ <string name="touchscreen_gesture_settings_summary">Führe durch verschiedene Bildschirmgesten einige schnelle Aktionen aus</string>
+ <string name="touchscreen_hovering_title">Touchscreen als Maus verwenden</string>
+ <string name="touchscreen_hovering_summary">Erlaubt es, den über dem Touchscreen schwebenden Finger im Browser, Remote Desktop usw. als Mauszeiger zu verwenden.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Beim Einstecken aufwecken</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Beim Anschließen oder Trennen einer Stromquelle den Bildschirm einschalten</string>
+ <string name="fast_charging_title">Schnelles Laden</string>
+ <string name="fast_charging_summary">Deaktivieren, um die vom Gerät beim Laden erzeugte Wärme zu reduzieren oder die Lebensdauer des Akkus zu verlängern</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Fingerabdrucksensor lange drücken, um das Telefon zu entsperren</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Fingerabdrucksensor lange drücken, um das Tablet zu entsperren</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Fingerabdrucksensor lange drücken, um das Gerät zu entsperren</string>
+ <string name="ambient_display_screen_off_udfps_summary">Zum Anschalten und Entsperren des Geräts den Fingerabdrucksensor im Display gedrückt halten.</string>
+ <string name="storage_warning_internal">Warnung: Diese Option funktioniert möglicherweise nicht richtig oder führt zu Datenverlust und wird daher nicht empfohlen!</string>
+ <string name="assisted_gps_summary">Satellitenhilfsdaten aus dem Internet herunterladen, die den Startvorgang von GPS erheblich verbessern können. Für Notrufe ist das unterstützte GPS immer erlaubt.</string>
+</resources>
diff --git a/res/values-de/config.xml b/res/values-de/config.xml
index 6b1e0fb..e0ba348 100644
--- a/res/values-de/config.xml
+++ b/res/values-de/config.xml
@@ -17,4 +17,5 @@
<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="1623475653989899715"></string>
+ <bool name="language_capitalizes_nouns">true</bool>
</resources>
diff --git a/res/values-el/cm_strings.xml b/res/values-el/cm_strings.xml
new file mode 100644
index 0000000..d0b288f
--- /dev/null
+++ b/res/values-el/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">Εντοπισμός σφαλμάτων root</string>
+ <string name="adb_enable_summary_root">Επιτρέψτε την εκτέλεση του εντοπισμού σφαλμάτων Android ως 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">Νομικές πληροφορίες LineageOS</string>
+ <string name="device_info_protected_single_press">Πατήστε για εμφάνιση πληροφοριών</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Απομένει <xliff:g id="step_count">%1$d</xliff:g> βήμα για να ενεργοποιήσετε τις ρυθμίσεις για προγραμματιστές.</item>
+ <item quantity="other">Απομένουν <xliff:g id="step_count">%1$d</xliff:g> βήματα για να ενεργοποιήσετε τις ρυθμίσεις για προγραμματιστές.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Ενεργοποιήσατε τις ρυθμίσεις για προγραμματιστές!</string>
+ <string name="show_dev_already_cm">Δεν χρειάζεται, έχετε ήδη ενεργοποιήσει τις ρυθμίσεις για προγραμματιστές.</string>
+ <string name="peak_refresh_rate_summary_custom">Αυξάνει αυτόματα τον ρυθμό ανανέωσης από τα 60 στα %1$d Hz για ορισμένο περιεχόμενο. Αυξάνει τη χρήση της μπαταρίας.</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">Επιτρέψτε στους πελάτες να χρησιμοποιούν VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Επιτρέψτε στους πελάτες σημείου πρόσβασης να χρησιμοποιούν τις συνδέσεις VPN αυτής της συσκευής για σύνδεση upstream</string>
+ <string name="increasing_ring_volume_option_title">Αυξανόμενη ένταση κουδουνίσματος</string>
+ <string name="increasing_ring_min_volume_title">Αρχική ένταση</string>
+ <string name="increasing_ring_ramp_up_time_title">Χρονικό διάστημα αύξησης</string>
+ <string name="lockscreen_media_art_title">Προβολή εξώφυλλου άλμπουμ</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">Αγγίξτε τον αισθητήρα στο εμπρόσθιο μέρος του 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">Αγγίξτε τον αισθητήρα στο πίσω μέρος του 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">Αγγίξτε τον αισθητήρα στο πλάι του 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="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">10 δευτερόλεπτα</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 δευτερόλεπτα</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 λεπτό</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 λεπτά</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 λεπτά</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 λεπτά</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">Δεδομένα VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Ενεργοποίηση χρήσης δεδομένων VPN</string>
+ <string name="data_usage_app_restrict_wifi">Δεδομένα Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Ενεργοποίηση χρήσης δεδομένων Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Ανακάτεμα διάταξης</string>
+ <string name="unlock_scramble_pin_layout_summary">Ανακάτεμα της διάταξης PIN κατά το ξεκλείδωμα της συσκευής</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">Σας επιτρέπει να αιωρείτε πάνω από την οθόνη όπως ένα ποντίκι σε προγράμματα περιήγησης στο web, απομακρυσμένες επιφάνειες εργασίας, κλπ</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">Πατήστε παρατεταμένα τον αισθητήρα δακτυλικών αποτυπωμάτων για να ξεκλειδώσετε το 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_summary">Κατεβάστε δεδομένα δορυφορικής βοήθειας από το διαδίκτυο, τα οποία μπορούν να βελτιώσουν σημαντικά την απόδοση της εκκίνησης του GPS. Για κλήσεις έκτακτης ανάγκης, επιτρέπεται πάντα η υποβοήθηση GPS.</string>
+</resources>
diff --git a/res/values-en-rAU/cm_strings.xml b/res/values-en-rAU/cm_strings.xml
new file mode 100644
index 0000000..f1ca5b2
--- /dev/null
+++ b/res/values-en-rAU/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Advanced settings</string>
+ <string name="adb_enable_root">Rooted debugging</string>
+ <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+ <string name="backup_transport_setting_label">Change backup provider</string>
+ <string name="backup_transport_title">Select backup provider</string>
+ <string name="berry_black_theme_title">Pure black</string>
+ <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+ <string name="lineagelicense_title">LineageOS legal</string>
+ <string name="device_info_protected_single_press">Tap to show info</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+ <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+ </plurals>
+ <string name="show_dev_on_cm">You have enabled development settings!</string>
+ <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+ <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+ <string name="high_touch_polling_rate_title">High touch polling rate</string>
+ <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+ <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+ <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+ <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+ <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+ <string name="increasing_ring_min_volume_title">Start volume</string>
+ <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+ <string name="lockscreen_media_art_title">Display media cover art</string>
+ <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+ <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+ <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+ <string name="max_refresh_rate_title">Peak refresh rate</string>
+ <string name="min_refresh_rate_title">Minimum refresh rate</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+ <string name="show_navbar_hint_title">Navigation hint</string>
+ <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+ <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+ <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">No restriction</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+ <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+ <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+ <string name="data_usage_app_restrict_all">Allow network access</string>
+ <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+ <string name="data_usage_app_restrict_mobile">Mobile data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+ <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+ <string name="proximity_wake_title">Prevent accidental wake-up</string>
+ <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+ <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+ <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+ <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+ <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+ <string name="fast_charging_title">Fast charging</string>
+ <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+ <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+ <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+ <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-en-rCA/cm_strings.xml b/res/values-en-rCA/cm_strings.xml
new file mode 100644
index 0000000..f1ca5b2
--- /dev/null
+++ b/res/values-en-rCA/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Advanced settings</string>
+ <string name="adb_enable_root">Rooted debugging</string>
+ <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+ <string name="backup_transport_setting_label">Change backup provider</string>
+ <string name="backup_transport_title">Select backup provider</string>
+ <string name="berry_black_theme_title">Pure black</string>
+ <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+ <string name="lineagelicense_title">LineageOS legal</string>
+ <string name="device_info_protected_single_press">Tap to show info</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+ <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+ </plurals>
+ <string name="show_dev_on_cm">You have enabled development settings!</string>
+ <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+ <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+ <string name="high_touch_polling_rate_title">High touch polling rate</string>
+ <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+ <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+ <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+ <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+ <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+ <string name="increasing_ring_min_volume_title">Start volume</string>
+ <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+ <string name="lockscreen_media_art_title">Display media cover art</string>
+ <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+ <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+ <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+ <string name="max_refresh_rate_title">Peak refresh rate</string>
+ <string name="min_refresh_rate_title">Minimum refresh rate</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+ <string name="show_navbar_hint_title">Navigation hint</string>
+ <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+ <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+ <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">No restriction</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+ <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+ <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+ <string name="data_usage_app_restrict_all">Allow network access</string>
+ <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+ <string name="data_usage_app_restrict_mobile">Mobile data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+ <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+ <string name="proximity_wake_title">Prevent accidental wake-up</string>
+ <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+ <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+ <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+ <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+ <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+ <string name="fast_charging_title">Fast charging</string>
+ <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+ <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+ <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+ <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-en-rGB/cm_strings.xml b/res/values-en-rGB/cm_strings.xml
new file mode 100644
index 0000000..8173154
--- /dev/null
+++ b/res/values-en-rGB/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Advanced settings</string>
+ <string name="adb_enable_root">Rooted debugging</string>
+ <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+ <string name="backup_transport_setting_label">Change backup provider</string>
+ <string name="backup_transport_title">Select backup provider</string>
+ <string name="berry_black_theme_title">Pure black</string>
+ <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+ <string name="lineagelicense_title">LineageOS legal</string>
+ <string name="device_info_protected_single_press">Tap to show info</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+ <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+ </plurals>
+ <string name="show_dev_on_cm">You have enabled development settings!</string>
+ <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+ <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+ <string name="high_touch_polling_rate_title">High touch polling rate</string>
+ <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+ <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+ <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+ <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+ <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+ <string name="increasing_ring_min_volume_title">Start volume</string>
+ <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+ <string name="lockscreen_media_art_title">Display media cover art</string>
+ <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+ <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+ <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+ <string name="max_refresh_rate_title">Peak refresh rate</string>
+ <string name="min_refresh_rate_title">Minimum refresh rate</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+ <string name="show_navbar_hint_title">Navigation hint</string>
+ <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+ <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+ <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">No restriction</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+ <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+ <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+ <string name="data_usage_app_restrict_all">Allow network access</string>
+ <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+ <string name="data_usage_app_restrict_mobile">Mobile data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+ <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+ <string name="proximity_wake_title">Prevent accidental wake-up</string>
+ <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+ <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+ <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+ <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+ <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+ <string name="fast_charging_title">Fast charging</string>
+ <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+ <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+ <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+ <string name="assisted_gps_summary">Download satellite assistance data from the Internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-en-rIN/cm_strings.xml b/res/values-en-rIN/cm_strings.xml
new file mode 100644
index 0000000..f1ca5b2
--- /dev/null
+++ b/res/values-en-rIN/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Advanced settings</string>
+ <string name="adb_enable_root">Rooted debugging</string>
+ <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+ <string name="backup_transport_setting_label">Change backup provider</string>
+ <string name="backup_transport_title">Select backup provider</string>
+ <string name="berry_black_theme_title">Pure black</string>
+ <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+ <string name="lineagelicense_title">LineageOS legal</string>
+ <string name="device_info_protected_single_press">Tap to show info</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+ <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+ </plurals>
+ <string name="show_dev_on_cm">You have enabled development settings!</string>
+ <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+ <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+ <string name="high_touch_polling_rate_title">High touch polling rate</string>
+ <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+ <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+ <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+ <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+ <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+ <string name="increasing_ring_min_volume_title">Start volume</string>
+ <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+ <string name="lockscreen_media_art_title">Display media cover art</string>
+ <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+ <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+ <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+ <string name="max_refresh_rate_title">Peak refresh rate</string>
+ <string name="min_refresh_rate_title">Minimum refresh rate</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+ <string name="show_navbar_hint_title">Navigation hint</string>
+ <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+ <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+ <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">No restriction</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+ <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+ <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+ <string name="data_usage_app_restrict_all">Allow network access</string>
+ <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+ <string name="data_usage_app_restrict_mobile">Mobile data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+ <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+ <string name="proximity_wake_title">Prevent accidental wake-up</string>
+ <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+ <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+ <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+ <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+ <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+ <string name="fast_charging_title">Fast charging</string>
+ <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+ <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+ <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+ <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values-es-rUS/cm_strings.xml b/res/values-es-rUS/cm_strings.xml
new file mode 100644
index 0000000..ac18174
--- /dev/null
+++ b/res/values-es-rUS/cm_strings.xml
@@ -0,0 +1,71 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="adb_enable_root">Depuración como Superusuario</string>
+ <string name="adb_enable_summary_root">Permitir ejecutar la depuración de Android como superusuario</string>
+ <string name="berry_black_theme_title">Negro puro</string>
+ <string name="lineagelicense_title">Licencia de LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Estás a <xliff:g id="step_count">%1$d</xliff:g> paso de activar los ajustes de desarrollo.</item>
+ <item quantity="other">Estás a <xliff:g id="step_count">%1$d</xliff:g> pasos de activar los ajustes de desarrollo.</item>
+ </plurals>
+ <string name="show_dev_on_cm">¡Has activado los ajustes de desarrollo!</string>
+ <string name="show_dev_already_cm">No es necesario. Los ajustes de desarrollo ya están activos.</string>
+ <string name="peak_refresh_rate_summary_custom">Aumentar automáticamente la frecuencia de actualización de 60 Hz a %1$d Hz para cierto contenido. Incrementa el uso de batería</string>
+ <string name="status_bar_double_tap_to_sleep_title">Pulsar para suspender</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Pulsa dos veces en la barra de estado o en la pantalla de bloqueo para apagar la pantalla</string>
+ <string name="heads_up_notifications_enabled_title">Notificaciones emergentes</string>
+ <string name="heads_up_notifications_enabled_summary">Mostrar 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">Aumentar la sensibilidad del panel táctil para que pueda usarse con guantes</string>
+ <string name="tethering_allow_vpn_upstreams_title">Permitir a los clientes usar VPN</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="increasing_ring_volume_option_title">Volumen de tono ascendente</string>
+ <string name="increasing_ring_min_volume_title">Volumen de inicio</string>
+ <string name="increasing_ring_ramp_up_time_title">Tiempo de incremento</string>
+ <string name="lockscreen_media_art_title">Mostrar portada del álbum</string>
+ <string name="lock_settings_picker_pattern_size_message">Elija 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>
+ <string name="show_navbar_hint_title">Sugerencia de navegación</string>
+ <string name="app_notification_sound_timeout_title">Tiempo mínimo entre los sonidos de notificación</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>
+ <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">10 minutos</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+ <string name="data_usage_app_restrict_all">Permitir acceso a la red</string>
+ <string name="data_usage_app_restrict_all_summary">Habilitar el uso de red</string>
+ <string name="data_usage_app_restrict_vpn">Datos de VPN</string>
+ <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Activar 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="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 de 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">Permite deslizarse por la pantalla como un ratón en navegadores, 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>
+ <string name="fast_charging_summary">Desactivar para reducir el calor producido por el dispositivo mientras se carga o para extender la duración de la batería</string>
+</resources>
diff --git a/res/values-es/cm_strings.xml b/res/values-es/cm_strings.xml
new file mode 100644
index 0000000..31f97a3
--- /dev/null
+++ b/res/values-es/cm_strings.xml
@@ -0,0 +1,70 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="adb_enable_root">Depuración como Superusuario</string>
+ <string name="adb_enable_summary_root">Permitir ejecutar la depuración de Android como Superusuario</string>
+ <string name="backup_transport_setting_label">Cambiar proveedor de la copia de seguridad</string>
+ <string name="backup_transport_title">Seleccionar el proveedor de la copia de seguridad</string>
+ <string name="berry_black_theme_title">Negro puro</string>
+ <string name="berry_black_theme_summary">Fondo negro puro para el tema oscuro</string>
+ <string name="lineagelicense_title">Licencia de LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Ahora estás a <xliff:g id="step_count">%1$d</xliff:g> paso de habilitar las opciones de desarrollo.</item>
+ <item quantity="other">Ahora estás a <xliff:g id="step_count">%1$d</xliff:g> pasos de habilitar las opciones de desarrollo.</item>
+ </plurals>
+ <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="peak_refresh_rate_summary_custom">Aumenta automáticamente la frecuencia de actualización de 60 a %1$d Hz en determinados tipos de contenido. Se usará más batería.</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="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="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="increasing_ring_volume_option_title">Volumen de timbre ascendente</string>
+ <string name="increasing_ring_min_volume_title">Volumen inicial</string>
+ <string name="increasing_ring_ramp_up_time_title">Tiempo de incremento</string>
+ <string name="lockscreen_media_art_title">Mostrar portada del álbum</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>
+ <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_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>
+ <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">10 minutos</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+ <string name="data_usage_app_restrict_all">Permitir acceso a la red</string>
+ <string name="data_usage_app_restrict_all_summary">Habilitar uso de red</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="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="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>
+</resources>
diff --git a/res/values-et/cm_strings.xml b/res/values-et/cm_strings.xml
new file mode 100644
index 0000000..58a9733
--- /dev/null
+++ b/res/values-et/cm_strings.xml
@@ -0,0 +1,68 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Lisad</string>
+ <string name="advanced_keyboard_settings_title">Täpsemad seaded</string>
+ <string name="adb_enable_root">Juurkasutajaga silumine</string>
+ <string name="adb_enable_summary_root">Luba Androidi silumist juurkasutajaga</string>
+ <string name="backup_transport_setting_label">Muuda varunduste pakkujat</string>
+ <string name="backup_transport_title">Vali varunduste pakkuja</string>
+ <string name="berry_black_theme_title">Täiesti must</string>
+ <string name="berry_black_theme_summary">Täiesti must taust tumeda teema jaoks</string>
+ <string name="lineagelicense_title">LineageOS juriidiline info</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Olete <xliff:g id="step_count">%1$d</xliff:g> sammu kaugusel arendussätete lubamisest.</item>
+ <item quantity="other">Olete <xliff:g id="step_count">%1$d</xliff:g> sammu kaugusel arendussätete lubamisest.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Arendussätted aktiveeritud!</string>
+ <string name="show_dev_already_cm">Ei ole vaja, arendussätted juba aktiveeritud.</string>
+ <string name="peak_refresh_rate_summary_custom">Suurendab teatud sisu puhul värskendamissagedust 60 hertsilt %1$d hertsini. Akukasutus suureneb.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Koputa unerežiimiks</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Topeltkoputa olekuriba või lukustuskuva ekraani väljalülitamiseks</string>
+ <string name="heads_up_notifications_enabled_title">Hüpikmärguanded</string>
+ <string name="high_touch_sensitivity_title">Kõrge puutetundlikus</string>
+ <string name="high_touch_sensitivity_summary">Suurenda puuteekraani tundlikust, et saaksid seda kasutada kindaid kandes</string>
+ <string name="tethering_allow_vpn_upstreams_title">Luba klientidel kasutada VPN-e</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Luba kuumkoha klientidel kasutada selle seadme VPN-ühendusi ülesvoolu ühenduvuseks</string>
+ <string name="increasing_ring_volume_option_title">Kasvav helisemistugevus</string>
+ <string name="increasing_ring_min_volume_title">Lähtevaljusus</string>
+ <string name="increasing_ring_ramp_up_time_title">Käivitamisetapi aeg</string>
+ <string name="lockscreen_media_art_title">Näita meedia kaanepilti</string>
+ <string name="lockpattern_settings_enable_dots_title">Näita mustri punkte</string>
+ <string name="min_refresh_rate_title">Minimaalne värskendussagedus</string>
+ <string name="show_navbar_hint_title">Navigeerimise vihje</string>
+ <string name="show_navbar_hint_summary">Kuva navigeerimise vihjeriba ekraani allosas</string>
+ <string name="data_usage_app_restrict_all">Luba võrgujuurdepääs</string>
+ <string name="data_usage_app_restrict_all_summary">Luba võrgukasutus</string>
+ <string name="data_usage_app_restrict_mobile">Mobiilne andmeside</string>
+ <string name="data_usage_app_restrict_mobile_summary">Luba mobiilse andmeside kasutus</string>
+ <string name="data_usage_app_restrict_vpn">VPNi andmeside</string>
+ <string name="data_usage_app_restrict_vpn_summary">Lubage VPNi andmeside kasutus</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi andmeside</string>
+ <string name="data_usage_app_restrict_wifi_summary">Luba Wi\u2011Fi andmeside kasutus</string>
+ <string name="unlock_scramble_pin_layout_title">Segatud paigutus</string>
+ <string name="unlock_scramble_pin_layout_summary">Sega PIN paigutust seadme lahtilukustamisel</string>
+ <string name="proximity_wake_title">Väldi juhuslikku ärkamist</string>
+ <string name="proximity_wake_summary">Kontrolli lähedussensorit enne ekraani äratamist</string>
+ <string name="touchscreen_gesture_settings_title">Puuteekraani žestid</string>
+ <string name="touchscreen_gesture_settings_summary">Soorita mitmeid puuteekraani žeste kiirtoimingute teostamiseks</string>
+ <string name="touchscreen_hovering_title">Puuteekraani hõljumine</string>
+ <string name="touchscreen_hovering_summary">Lubab hõljuda ekraani kohal nagu hiirega veebilehitsejas, kaugtöölaual jne</string>
+ <string name="wake_when_plugged_or_unplugged_title">Ärka laadija ühendamisel</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Lülita ekraan sisse kui ühendatakse või eemaldatakse toite allikas</string>
+ <string name="fast_charging_title">Kiirlaadimine</string>
+</resources>
diff --git a/res/values-eu/cm_strings.xml b/res/values-eu/cm_strings.xml
new file mode 100644
index 0000000..d8c7dad
--- /dev/null
+++ b/res/values-eu/cm_strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS lizentzia</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Garatzaileen aukerak gaitzeko urrats <xliff:g id="step_count">%1$d</xliff:g>era zaude.</item>
+ <item quantity="other">Garatzaileen aukerak gaitzeko <xliff:g id="step_count">%1$d</xliff:g> urratsera zaude.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Garatzaileen aukerak gaitu dituzu!</string>
+ <string name="show_dev_already_cm">Ez da behar, aurretik gaitu dituzu garatzaileek aukerak.</string>
+ <string name="peak_refresh_rate_summary_custom">Automatikoki igotzen du freskatze-abiadura 60 Hz-tik %1$d Hz-ra zenbait edukitarako. Bateria-erabilera luzatzen du.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Sakatu lokartzeko</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Sakatu birritan egoera-barra edo blokeo-pantaila pantaila itzaltzeko</string>
+ <string name="heads_up_notifications_enabled_title">Jakinarazpen flotatzaileak</string>
+ <string name="heads_up_notifications_enabled_summary">Bistaratu lehentasunezko jakinarazpenak leiho flotatzaile txiki batean</string>
+ <string name="high_touch_sensitivity_title">Ukipen sentsibilitate altua</string>
+ <string name="high_touch_sensitivity_summary">Areagotu pantailaren sentsibilitatea, eskularruekin erabilgarria izan dadin</string>
+ <string name="increasing_ring_volume_option_title">Dei doinu gorakorra</string>
+ <string name="increasing_ring_min_volume_title">Hasierako bolumena</string>
+ <string name="increasing_ring_ramp_up_time_title">Maldaren iraupena</string>
+ <string name="lockscreen_media_art_title">Bistaratu azalaren irudia</string>
+ <string name="lock_settings_picker_pattern_size_message">Aukeratu ereduaren tamaina</string>
+ <string name="lockpattern_settings_enable_error_path_title">Erakutsi eredu errorea</string>
+ <string name="lockpattern_settings_enable_dots_title">Erakutsi ereduaren puntuak</string>
+ <string name="app_notification_sound_timeout_title">Gutxieneko denbora jakinarazpen soinuen artean</string>
+ <string name="app_notification_sound_timeout_summary_template">Ez baimendu soinua edo bibrazioa aurrekotik denbora bat pasatu arte: <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Mugarik gabe</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 segundo</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 segundo</string>
+ <string name="app_notification_sound_timeout_value_1_minute">minutu bat</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutu</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutu</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutu</string>
+ <string name="data_usage_app_restrict_vpn">VPN datuak</string>
+ <string name="data_usage_app_restrict_vpn_summary">Gaitu VPN datuen erabilera</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi datuak</string>
+ <string name="data_usage_app_restrict_wifi_summary">Gaitu of Wi\u2011Fi datuen erabilera</string>
+ <string name="unlock_scramble_pin_layout_title">Zorizko diseinua</string>
+ <string name="unlock_scramble_pin_layout_summary">PIN zenbakiaren antolaketa nahastu gailua desblokeatzean</string>
+ <string name="proximity_wake_title">Eragotzi ustekabeko esnatzea</string>
+ <string name="proximity_wake_summary">Kontsultatu gertutasun sentsorea pantaila piztu baino lehen</string>
+ <string name="touchscreen_gesture_settings_title">Ukitze-pantailaren keinuak</string>
+ <string name="touchscreen_gesture_settings_summary">Egin ukimen-pantailako keinuak ekintza azkarretarako</string>
+ <string name="touchscreen_hovering_title">Pantailaren gainetik pasatu</string>
+ <string name="touchscreen_hovering_summary">Sagua bailitzan pantailaren gainetik pasatzea ahalbidetzen dizu, nabigatzaileetan, urruneko mahaigainetan, eta abar</string>
+ <string name="wake_when_plugged_or_unplugged_title">Esnatu kargadorearekin</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Piztu pantaila kargadorea konektatu edo deskonektatzean</string>
+</resources>
diff --git a/res/values-fa/cm_strings.xml b/res/values-fa/cm_strings.xml
new file mode 100644
index 0000000..233916f
--- /dev/null
+++ b/res/values-fa/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">موارد حقوقی سایانوژنمود</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">شما اکنون <xliff:g id="step_count">%1$d</xliff:g> ضربه با فعالسازی ابزارهای توسعه فاصله دارید.</item>
+ <item quantity="other">شما اکنون <xliff:g id="step_count">%1$d</xliff:g> ضربه با فعالسازی ابزارهای توسعه فاصله دارید.</item>
+ </plurals>
+ <string name="show_dev_on_cm">شما ابزارهای توسعه را فعال کردهاید!</string>
+ <string name="show_dev_already_cm">نیازی نیست، ابزارهای توسعه قبلا فعال شدهاند.</string>
+ <string name="peak_refresh_rate_summary_custom">بهطور خودکار سرعت بازخوانی را برای بعضی محتواها، از ۶۰ هرتز تا ۹۰ هرتز بالا میبرد. مصرف باتری را افزایش میدهد.</string>
+ <string name="high_touch_sensitivity_title">حساسیت بالا به لمس</string>
+ <string name="high_touch_sensitivity_summary">افزایش حساسیت صفحه به لمس تا هنگام پوشیدن دستکش نیز قابل استفاده باشد</string>
+ <string name="increasing_ring_volume_option_title">صدای صعودی زنگ</string>
+ <string name="increasing_ring_min_volume_title">میزان صدا هنگام شروع</string>
+ <string name="increasing_ring_ramp_up_time_title">زمان افزایش صدا</string>
+ <string name="lockpattern_settings_enable_error_path_title">نمایش الگوی نادرست</string>
+ <string name="lockpattern_settings_enable_dots_title">نمایش نقطههای الگو</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="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>
+</resources>
diff --git a/res/values-fi/cm_strings.xml b/res/values-fi/cm_strings.xml
new file mode 100644
index 0000000..57a44b6
--- /dev/null
+++ b/res/values-fi/cm_strings.xml
@@ -0,0 +1,81 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Ekstrat</string>
+ <string name="advanced_keyboard_settings_title">Lisäasetukset</string>
+ <string name="adb_enable_root">Vianetsintä root-tilassa</string>
+ <string name="adb_enable_summary_root">Sallii Androidin virheenkorjauksen root-tilassa</string>
+ <string name="backup_transport_setting_label">Vaihda varmuuskopiopalvelua</string>
+ <string name="backup_transport_title">Valitse varmuuskopiopalvelu</string>
+ <string name="berry_black_theme_title">Kokonaan musta</string>
+ <string name="berry_black_theme_summary">Kokonaan musta tausta tummalle teemalle</string>
+ <string name="lineagelicense_title">LineageOSin lakiasiat</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Kehittäjäasetukset otetaan käyttöön <xliff:g id="step_count">%1$d</xliff:g> vaiheen päästä.</item>
+ <item quantity="other">Kehittäjäasetukset otetaan käyttöön <xliff:g id="step_count">%1$d</xliff:g> vaiheen päästä.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Kehittäjäasetukset ovat nyt käytössä!</string>
+ <string name="show_dev_already_cm">Olet jo ottanut kehittäjäasetukset käyttöön.</string>
+ <string name="peak_refresh_rate_summary_custom">Nostaa tietyn sisällön päivitysvälin automaattisesti 60 hertsistä %1$d:een. Lisää akun käyttöä.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Sammuta näyttö napauttamalla</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Sulje laitteen näyttö tuplanapauttamalla tilapalkkia tai lukitusnäyttöä</string>
+ <string name="heads_up_notifications_enabled_title">Leijuvat ilmoitukset</string>
+ <string name="heads_up_notifications_enabled_summary">Näytä tärkeät ilmoitukset pienessä kelluvassa ikkunassa</string>
+ <string name="high_touch_sensitivity_title">Korkea kosketusherkkyys</string>
+ <string name="high_touch_sensitivity_summary">Lisää kosketusnäytön herkkyyttä käyttääksesi laitetta käsineiden kanssa</string>
+ <string name="tethering_allow_vpn_upstreams_title">Salli laitteiden käyttää VPN:ää</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Salli hotspot-yhteyksien kayttää tämän laitteen VPN-yhteyksiä yhteyden muodostamiseen</string>
+ <string name="increasing_ring_volume_option_title">Voimistuva soittoääni</string>
+ <string name="increasing_ring_min_volume_title">Aloitusvoimakkuus</string>
+ <string name="increasing_ring_ramp_up_time_title">Nousun aika</string>
+ <string name="lockscreen_media_art_title">Näytä median kansikuva</string>
+ <string name="lock_settings_picker_pattern_size_message">Valitse ruudukon koko</string>
+ <string name="lockpattern_settings_enable_error_path_title">Näytä kuvion virhe</string>
+ <string name="lockpattern_settings_enable_dots_title">Näytä kuvion pisteet</string>
+ <string name="min_refresh_rate_title">Minimi virkistystaajuus</string>
+ <string name="show_navbar_hint_title">Alapalkki</string>
+ <string name="show_navbar_hint_summary">Näytä alapalkki näytön alareunassa</string>
+ <string name="app_notification_sound_timeout_title">Vähimmäisväli ilmoitusäänissä</string>
+ <string name="app_notification_sound_timeout_summary_template">Sallii äänen tai värinän vain seuraavin välein: <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Ei rajoitusta</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekuntia</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekuntia</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minuutti</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuuttia</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuuttia</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuuttia</string>
+ <string name="data_usage_app_restrict_all">Salli verkkoyhteys</string>
+ <string name="data_usage_app_restrict_all_summary">Ota verkkoyhteys käyttöön</string>
+ <string name="data_usage_app_restrict_mobile">Mobiilitiedonsiirto</string>
+ <string name="data_usage_app_restrict_mobile_summary">Ota mobiilidata käyttöön</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Ota käyttöön VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Ota Wi\u2011Fi data käyttöön</string>
+ <string name="unlock_scramble_pin_layout_title">Sekoitettu asettelu</string>
+ <string name="unlock_scramble_pin_layout_summary">Sekoita PIN-numerot poistettaessa lukitusta</string>
+ <string name="proximity_wake_title">Estä herätys vahingossa</string>
+ <string name="proximity_wake_summary">Tarkista lähesyysanturi ennen laitteen herättämistä</string>
+ <string name="touchscreen_gesture_settings_title">Kosketusnäytön eleet</string>
+ <string name="touchscreen_gesture_settings_summary">Tee erilaisia kosketusnäytön eleitä käyttääksesi pikatoimintoja</string>
+ <string name="touchscreen_hovering_title">Kosketusnäytön leijunta</string>
+ <string name="touchscreen_hovering_summary">Sallii näytön leijuttamisen kuten hiiri selaimessa, etätyöpöytäyhteyksissä, jne.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Herää laturista</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Käynnistä näyttö kun virtalähde liitetään tai irrotetaan</string>
+ <string name="fast_charging_title">Pikalataus</string>
+ <string name="fast_charging_summary">Poista käytöstä vähentääksesi laitteen tuottamaa lämpöä latauksen aikana tai pidentääksesi akun käyttöikää</string>
+</resources>
diff --git a/res/values-fr-rCA/cm_strings.xml b/res/values-fr-rCA/cm_strings.xml
new file mode 100644
index 0000000..ab88f01
--- /dev/null
+++ b/res/values-fr-rCA/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Augmente automatiquement la fréquence d\'actualisation de 60 Hz à %1$d Hz pour certains contenus. Cette fonction sollicite davantage la pile de l\'appareil.</string>
+</resources>
diff --git a/res/values-fr/cm_strings.xml b/res/values-fr/cm_strings.xml
new file mode 100644
index 0000000..ba5b1b3
--- /dev/null
+++ b/res/values-fr/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Paramètres avancés</string>
+ <string name="adb_enable_root">Débogage rooté</string>
+ <string name="adb_enable_summary_root">Autoriser le débogage Android en tant que root</string>
+ <string name="backup_transport_setting_label">Modifier le fournisseur de sauvegarde</string>
+ <string name="backup_transport_title">Sélectionner un fournisseur de sauvegarde</string>
+ <string name="berry_black_theme_title">Noir pur</string>
+ <string name="berry_black_theme_summary">Fond noir pur pour le thème sombre</string>
+ <string name="lineagelicense_title">Infos légales LineageOS</string>
+ <string name="device_info_protected_single_press">Appuyez pour afficher les informations</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étape de l\'activation des paramètres de développement.
+Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étapes de l\'activation des paramètres de développement.</item>
+ <item quantity="other">Vous êtes maintenant à <xliff:g id="step_count">%1$d</xliff:g> étapes de l\'activation des paramètres de développement.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Vous avez activé les paramètres de développement !</string>
+ <string name="show_dev_already_cm">Inutile, vous avez déjà activé les paramètres de développement.</string>
+ <string name="peak_refresh_rate_summary_custom">Augmente automatiquement le taux de rafraîchissement de 60 à %1$d Hz pour certains contenus. Accroît l\'utilisation de la batterie.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Appuyer pour mettre en veille</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Appuyer deux fois sur la barre d\'état ou sur l\'écran de verrouillage pour éteindre l\'écran</string>
+ <string name="high_touch_polling_rate_title">Taux d\'échantillonnage tactile élevé</string>
+ <string name="high_touch_polling_rate_summary">Augmenter le taux d\'échantillonnage de l\'écran tactile</string>
+ <string name="heads_up_notifications_enabled_title">Notifications flottantes</string>
+ <string name="heads_up_notifications_enabled_summary">Afficher les notifications prioritaires dans une petite fenêtre de notification flottante</string>
+ <string name="high_touch_sensitivity_title">Haute sensibilité tactile</string>
+ <string name="high_touch_sensitivity_summary">Augmenter la sensibilité de l\'écran permettant ainsi le port de gants</string>
+ <string name="tethering_allow_vpn_upstreams_title">Autoriser les clients à utiliser des VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permettre aux clients de point d\'accès d\'utiliser les connexions VPN de cet appareil pour la connectivité en amont</string>
+ <string name="increasing_ring_volume_option_title">Sonnerie progressive</string>
+ <string name="increasing_ring_min_volume_title">Volume de démarrage</string>
+ <string name="increasing_ring_ramp_up_time_title">Durée de progression</string>
+ <string name="lockscreen_media_art_title">Afficher la couverture du média</string>
+ <string name="lock_settings_picker_pattern_size_message">Choisissez une taille de modèle</string>
+ <string name="lockpattern_settings_enable_error_path_title">Afficher l\'erreur de schéma</string>
+ <string name="lockpattern_settings_enable_dots_title">Afficher les points du schéma</string>
+ <string name="max_refresh_rate_title">Taux de rafraîchissement maximal</string>
+ <string name="min_refresh_rate_title">Taux de rafraîchissement minimum</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localisez le lecteur d\'empreintes digitales à l\'avant de votre tablette.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localisez le lecteur d\'empreintes digitales à l\'avant de votre appareil.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localisez le lecteur d\'empreintes digitales à l\'avant de votre téléphone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre tablette.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre appareil.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localisez le lecteur d\'empreintes digitales à l\'arrière de votre téléphone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localisez le lecteur d\'empreintes digitales sur le côté de votre tablette.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localisez le lecteur d\'empreintes digitales sur le côté de votre appareil.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localisez le lecteur d\'empreintes digitales sur le côté de votre téléphone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touchez le capteur à l\'avant de votre tablette.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touchez le capteur à l\'avant de votre appareil.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touchez le capteur à l\'avant de votre téléphone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touchez le capteur à l\'arrière de votre tablette.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touchez le capteur à l\'arrière de votre appareil.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touchez le capteur à l\'arrière de votre téléphone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touchez le capteur sur le côté de votre tablette.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touchez le capteur sur le côté de votre appareil.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touchez le capteur sur le côté de votre téléphone.</string>
+ <string name="show_navbar_hint_title">Indice de navigation</string>
+ <string name="show_navbar_hint_summary">Afficher l\'indice de navigation en bas de l\'écran</string>
+ <string name="app_notification_sound_timeout_title">Temps minimum entre les sons de notification</string>
+ <string name="app_notification_sound_timeout_summary_template">Ne pas permettre plus d\'un son ou une vibration toutes les <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Aucune restriction</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 secondes</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 secondes</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+ <string name="auto_brightness_one_shot_title">Luminosité automatique rapide</string>
+ <string name="auto_brightness_one_shot_summary">La luminosité ne s\'ajustera qu\'au moment où l\'écran s\'allume</string>
+ <string name="data_usage_app_restrict_all">Autoriser l\'accès au réseau</string>
+ <string name="data_usage_app_restrict_all_summary">Activer l\'utilisation du réseau</string>
+ <string name="data_usage_app_restrict_mobile">Données mobiles</string>
+ <string name="data_usage_app_restrict_mobile_summary">Activer l\'utilisation des données mobiles</string>
+ <string name="data_usage_app_restrict_vpn">Données VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Activer l\'utilisation des données VPN</string>
+ <string name="data_usage_app_restrict_wifi">Données Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Activer l\'utilisation des données Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Disposition aléatoire</string>
+ <string name="unlock_scramble_pin_layout_summary">Disposer aléatoirement les touches lors du déverrouillage</string>
+ <string name="proximity_wake_title">Empêcher un réveil accidentel</string>
+ <string name="proximity_wake_summary">Vérifier le capteur de proximité avant d\'allumer l\'écran</string>
+ <string name="touchscreen_gesture_settings_title">Gestes tactiles</string>
+ <string name="touchscreen_gesture_settings_summary">Effectuer différents gestes tactiles pour des actions rapides</string>
+ <string name="touchscreen_hovering_title">Survol de l\'écran tactile</string>
+ <string name="touchscreen_hovering_summary">Permet de survoler l\'écran comme avec une souris dans les navigateurs web, les bureaux à distance, etc.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Réveiller au branchement</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Allumer l\'écran lors du branchement ou du débranchement d\'une source d\'alimentation</string>
+ <string name="fast_charging_title">Charge rapide</string>
+ <string name="fast_charging_summary">Désactiver pour réduire la chaleur produite par l\'appareil pendant la charge ou pour prolonger la durée de vie de la batterie</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Appui long sur le capteur d\'empreintes pour déverrouiller</string>
+ <string name="ambient_display_screen_off_udfps_summary">Pour allumer votre écran et le déverrouiller, appuyez longuement sur votre lecteur d\'empreinte digitale sous l\'écran.</string>
+ <string name="storage_warning_internal">Attention : Cette option peut ne pas fonctionner correctement ou entraîner une perte de données et n\'est donc pas recommandée !</string>
+ <string name="assisted_gps_summary">Télécharger les données d\'assistance par satellite à partir d\'Internet peut grandement améliorer les performances de démarrage du GPS. Pour les appels d\'urgence, le GPS assisté est toujours autorisé.</string>
+</resources>
diff --git a/res/values-fur-rIT/cm_strings.xml b/res/values-fur-rIT/cm_strings.xml
new file mode 100644
index 0000000..8288bec
--- /dev/null
+++ b/res/values-fur-rIT/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Impostazions avanzadis</string>
+ <string name="adb_enable_root">Debug cun acès root</string>
+ <string name="adb_enable_summary_root">Permet la esecuzion dal debug di Android come root</string>
+ <string name="backup_transport_setting_label">Cambie gjestôr dai backups</string>
+ <string name="backup_transport_title">Selezione un gjestôr dai backups</string>
+ <string name="berry_black_theme_title">Neri pûr</string>
+ <string name="berry_black_theme_summary">Fonts neri pûr pal teme scûr</string>
+ <string name="lineagelicense_title">Notis legâls di LineageOS</string>
+ <string name="device_info_protected_single_press">Tocje par mostrâ informazions</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Ti mancje <xliff:g id="step_count">%1$d</xliff:g> passaç par ativâ lis impostazions di disvilup.</item>
+ <item quantity="other">Ti mancjin <xliff:g id="step_count">%1$d</xliff:g> passaçs par ativâ lis impostazions di disvilup.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Tu âs abilitât lis impostazions di disvilup!</string>
+ <string name="show_dev_already_cm">Nol covente, tu âs za abilitât lis impostazions di disvilup.</string>
+ <string name="peak_refresh_rate_summary_custom">Aumente in automatic la frecuence di inzornament di 60 a %1$d Hz par cualchi contignût. Al aumente il consum de batarie.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tocje par sospindi</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Tocje dôs volti la sbare di stât o la schermade di sbloc par distudâ il schermi</string>
+ <string name="high_touch_polling_rate_title">Campionament des tocjadis a elevde frecuence</string>
+ <string name="high_touch_polling_rate_summary">Aumente la frecuence di campionament dal schermi tatil</string>
+ <string name="heads_up_notifications_enabled_title">Notifichis a comparse</string>
+ <string name="heads_up_notifications_enabled_summary">Visualize lis notifichis prioritaris intun piçul barcon flotant</string>
+ <string name="high_touch_sensitivity_title">Tocjade a alte sensibilitât</string>
+ <string name="high_touch_sensitivity_summary">Aumente la sensibilitât dal schermi tatil par podêlu doprâ cu lis manecis</string>
+ <string name="tethering_allow_vpn_upstreams_title">Permet ai dispositîfs conetûts di doprâ lis VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permet ai dispositîfs conetûts al pont di acès di doprâ lis conessions VPN di chest dispositîf</string>
+ <string name="increasing_ring_volume_option_title">Sunarie incrementâl</string>
+ <string name="increasing_ring_min_volume_title">Volum iniziâl</string>
+ <string name="increasing_ring_ramp_up_time_title">Timp par aumentâ</string>
+ <string name="lockscreen_media_art_title">Mostre cuvierte album</string>
+ <string name="lock_settings_picker_pattern_size_message">Sielç la dimension de secuence</string>
+ <string name="lockpattern_settings_enable_error_path_title">Mostre erôr de secuence</string>
+ <string name="lockpattern_settings_enable_dots_title">Mostre ponts de secuence</string>
+ <string name="max_refresh_rate_title">Frecuence di inzornament massime</string>
+ <string name="min_refresh_rate_title">Frecuence di inzornament minime</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Individue il sensôr di impronts digjitâi de bande anteriôr dal to tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Individue il sensôr di impronts digjitâi de bande anteriôr dal to dispositîf.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Individue il sensôr di impronts digjitâi de bande anteriôr dal to telefon.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Individue il sensôr di impronts digjitâi de bande posteriôr dal to tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Individue il sensôr di impronts digjitâi de bande posteriôr dal to dispositîf.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Individue il sensôr di impronts digjitâi de bande posteriôr dal to telefon.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Individue il sensôr di impronts digjitâi de bande laterâl dal to tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Individue il sensôr di impronts digjitâi de bande laterâl dal to dispositîf.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Individue il sensôr di impronts digjitâi de bande laterâl dal to telefon.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tocje il sensôr de bande anteriôr dal to tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tocjeil sensôr de bande anteriôr dal to dispositîf.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tocjeil sensôr de bande anteriôr dal to telefon.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tocje il sensôr de bande posteriôr dal to tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tocjeil sensôr de bande posteriôr dal to dispositîf.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tocjeil sensôr de bande posteriôr dal to telefon.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tocje il sensôr de bande laterâl dal to tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tocjeil sensôr de bande laterâl dal to dispositîf.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tocjeil sensôr de bande laterâl dal to telefon.</string>
+ <string name="show_navbar_hint_title">Indicadôr navigazion</string>
+ <string name="show_navbar_hint_summary">Mostre l\'indicadôr di navigazion te part basse dal schermi</string>
+ <string name="app_notification_sound_timeout_title">Timp minim tra i suns des notifichis</string>
+ <string name="app_notification_sound_timeout_summary_template">Permet suns o vibrazions no plui di une volte ogni <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Nissune restrizion</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconts</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconts</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minût</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minûts</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minûts</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minûts</string>
+ <string name="auto_brightness_one_shot_title">Luminositât automatiche intun colp</string>
+ <string name="auto_brightness_one_shot_summary">La regolazion de luminositât e capitarà dome cuant che il schermi al ven ativât</string>
+ <string name="data_usage_app_restrict_all">Permet acès ae rêt</string>
+ <string name="data_usage_app_restrict_all_summary">Abilite l\'ûs de rêt</string>
+ <string name="data_usage_app_restrict_mobile">Dâts mobii</string>
+ <string name="data_usage_app_restrict_mobile_summary">Abilite l\'ûs dai dâts mobii</string>
+ <string name="data_usage_app_restrict_vpn">Dâts VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Abilte l\'ûs dai dâts VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dâts Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Abilite l\'ûs dai dâts Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Messede disposizion</string>
+ <string name="unlock_scramble_pin_layout_summary">Messede la disposizion de tastiere PIN pal sbloc dal dispositîf</string>
+ <string name="proximity_wake_title">Preven il disveâsi acidentâl</string>
+ <string name="proximity_wake_summary">Controle il sensôr di prossimitât prime di impiâ il schermi</string>
+ <string name="touchscreen_gesture_settings_title">Mots su schermi tatil</string>
+ <string name="touchscreen_gesture_settings_summary">Eseguìs varis mots su schermi tatic par fâ azions rapidis</string>
+ <string name="touchscreen_hovering_title">Schermi tatil a pontadôr</string>
+ <string name="touchscreen_hovering_summary">Permet di passâ parsore dal schermi come cuntun mouse intal navigadôr web, tai scritoris lontans e v.i.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Disvee al colegament</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Impie il schermi se e ven colegade o distacade une sorzint di alimentazion</string>
+ <string name="fast_charging_title">Ricjarie rapide</string>
+ <string name="fast_charging_summary">Disabilite par ridusi il calôr prodot dal dispositîf intant de ricjarie o par sprolungjâ la durade de batarie</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il telefon</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Frache a dilunc sul sensôr di impronts digjitâi par sblocâ il dispositîf</string>
+ <string name="ambient_display_screen_off_udfps_summary">Par impiâ il schermi e sblocâ il dispositîf, frache a dilunc sul sensôr di impronts digjitâi sot dal schermi.</string>
+ <string name="storage_warning_internal">Atenzion: cheste opzion e podarès no funzionâ ben o puartâ a pierditis di dâts e duncje no je conseade!</string>
+ <string name="assisted_gps_summary">Discjame di internet i dâts di assistence satelitâr, che a puedin miorâ une vore lis prestazions di inviament dal GPS. Pes clamadis di emergjence, il GPS assistût al è simpri consintût.</string>
+</resources>
diff --git a/res/values-fy-rNL/cm_strings.xml b/res/values-fy-rNL/cm_strings.xml
new file mode 100644
index 0000000..2ef2ded
--- /dev/null
+++ b/res/values-fy-rNL/cm_strings.xml
@@ -0,0 +1,65 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="adb_enable_root">Root-debugging</string>
+ <string name="adb_enable_summary_root">Android-debugging as root tastean</string>
+ <string name="lineagelicense_title">Juridyske ynformaasje fan LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Jo binne noch <xliff:g id="step_count">%1$d</xliff:g> stap fan de opsjes foar ûntwikkelers.</item>
+ <item quantity="other">Jo binne noch <xliff:g id="step_count">%1$d</xliff:g> stappen fan de opsjes foar ûntwikkelers.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Jo hawwe de opsjes foar ûntwikkelers ynskeakele!</string>
+ <string name="show_dev_already_cm">Net nedich jo hawwe de opsjes foar ûntwikkelers al ynskeakele.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Dûbeld tikke foar sliepstân</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dûbeld tikke op de steatbalke of beskoattelskerm om it skerm út te skeakeljen</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Prioriteitsmeldingen toane yn lyts swevend finster</string>
+ <string name="high_touch_sensitivity_title">Hege gefoelichheid oanreitsjen</string>
+ <string name="high_touch_sensitivity_summary">Gefoelichheid fan it skerm ferheegje, sadat it betsjinne wurde kin mei wanten</string>
+ <string name="tethering_allow_vpn_upstreams_title">Clients tastean om VPN\'s te brûken</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Hotspot-brûkers tastean om de VPN-ferbiningen fan dit apparaat te brûken om te uploaden</string>
+ <string name="increasing_ring_volume_option_title">Tanimmend belfolume</string>
+ <string name="increasing_ring_min_volume_title">Startfolume</string>
+ <string name="increasing_ring_ramp_up_time_title">Opheechtiid</string>
+ <string name="lockscreen_media_art_title">Albumhoezen toane</string>
+ <string name="lock_settings_picker_pattern_size_message">Grutte patroan kieze</string>
+ <string name="lockpattern_settings_enable_error_path_title">Patroanflater toane</string>
+ <string name="lockpattern_settings_enable_dots_title">Patroanknoppen toane</string>
+ <string name="app_notification_sound_timeout_title">Minimale tiid tusken meldingslûden</string>
+ <string name="app_notification_sound_timeout_summary_template">Lûd of trillen net mear as ien kear yn de <xliff:g id="duration">%1$s</xliff:g> tastean</string>
+ <string name="app_notification_sound_timeout_value_none">Gjin beheining</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekonden</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekonden</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minút</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuten</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuten</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuten</string>
+ <string name="data_usage_app_restrict_vpn">VPN-gegevens</string>
+ <string name="data_usage_app_restrict_vpn_summary">Tagong ta VPN-gegevens tastean</string>
+ <string name="data_usage_app_restrict_wifi">Gegevens fia wifi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Gebrûk fan gegevens fia wifi ynskeakelje</string>
+ <string name="unlock_scramble_pin_layout_title">Lay-out hutselje</string>
+ <string name="unlock_scramble_pin_layout_summary">Pin-lay-out troch inoar hutselje by apparaat ûntskoatteljen</string>
+ <string name="proximity_wake_title">Troch fersin wekker meitsje opkeare</string>
+ <string name="proximity_wake_summary">Tichtebysensor brûke foarôfgeand oan ûntweitsjen fan skerm</string>
+ <string name="touchscreen_gesture_settings_title">fingergebearen</string>
+ <string name="touchscreen_gesture_settings_summary">Skermgebearen brûke foar flugge aksjes</string>
+ <string name="touchscreen_hovering_title">Sweve boppe skerm</string>
+ <string name="touchscreen_hovering_summary">Mei jo finger boppe it skerm sweve, lykas in mûs yn browsers, buroblêd op ôfstân, ensfh.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Wekker meitsjen troch lader</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Skerm oan by it oansluten of loskeppeljen fan in lader</string>
+</resources>
diff --git a/res/values-gd/cm_strings.xml b/res/values-gd/cm_strings.xml
new file mode 100644
index 0000000..75d3493
--- /dev/null
+++ b/res/values-gd/cm_strings.xml
@@ -0,0 +1,86 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Rudan a bharrachd</string>
+ <string name="advanced_keyboard_settings_title">Roghainnean adhartach</string>
+ <string name="adb_enable_root">Dì-bhugachadh root</string>
+ <string name="adb_enable_summary_root">Ceadaich gun dèid dì-bhugachadh Android a ruith ’na root</string>
+ <string name="backup_transport_setting_label">Atharraich solaraiche nan lethbhreacan-glèidhidh</string>
+ <string name="backup_transport_title">Tagh solaraiche nan lethbhreacan-glèidhidh</string>
+ <string name="berry_black_theme_title">Dubh</string>
+ <string name="berry_black_theme_summary">Cleachd cùlaibh dubh leis an ùrlar dhorcha</string>
+ <string name="lineagelicense_title">Sgrìobhainnean laghail LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Tha thu <xliff:g id="step_count">%1$d</xliff:g> cheum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+ <item quantity="two">Tha thu <xliff:g id="step_count">%1$d</xliff:g> cheum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+ <item quantity="few">Tha thu <xliff:g id="step_count">%1$d</xliff:g> ceuman air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+ <item quantity="other">Tha thu <xliff:g id="step_count">%1$d</xliff:g> ceum air falbh o bhith a’ cur an comas roghainnean an luchd-leasachaidh.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Chuir thu roghainnean an luchd-leasachaidh an comas!</string>
+ <string name="show_dev_already_cm">Cha leig thu leas, chuir thu roghainnean an luchd-leasachaidh an comas mu thràth.</string>
+ <string name="peak_refresh_rate_summary_custom">Àrdaichidh seo reat an ath-nuadhachaidh o 60 gu %1$d Hz do chuid a shusbaint gu fèin-obrachail. Caithidh seo barrachd dhen bhataraidh.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Thoir gnogag airson cadal</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Thoir gnogag dhùbailte air bàr na staid no air an sgrìn-ghlasaidh gus an uidheam-taisbeanaidh a chur dheth</string>
+ <string name="heads_up_notifications_enabled_title">An aire</string>
+ <string name="heads_up_notifications_enabled_summary">Seall brathan le prìomhachas ann an uinneag bheag air fleòd</string>
+ <string name="high_touch_sensitivity_title">Mothalachd àrd air an t-suathadh</string>
+ <string name="high_touch_sensitivity_summary">Meudaich mothalachd na sgrìn-shuathaidh ach an gabh a cleachdadh le miotagan</string>
+ <string name="tethering_allow_vpn_upstreams_title">Leig le cliantan VPN a chleachdadh</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Thoir cead do chliantan hotspot gun cleachd iad ceanglaichean VPN an uidheim seo airson ceangal upstream a dhèanamh</string>
+ <string name="increasing_ring_volume_option_title">Cur an àirde fuaim na seirme</string>
+ <string name="increasing_ring_min_volume_title">Àirde na fuaime thòiseachail</string>
+ <string name="increasing_ring_ramp_up_time_title">Àm ramp-up</string>
+ <string name="lockscreen_media_art_title">Seall obair-ealain còmhdachaidh nam meadhanan</string>
+ <string name="lock_settings_picker_pattern_size_message">Tagh meud a’ phàtrain</string>
+ <string name="lockpattern_settings_enable_error_path_title">Seall mearachd a’ phàtrain</string>
+ <string name="lockpattern_settings_enable_dots_title">Seall dotagan a’ phàtrain</string>
+ <string name="max_refresh_rate_title">Bàrr tricead an ath-nuadhachaidh</string>
+ <string name="min_refresh_rate_title">Reat as lugha an ath-nuadhachaidh</string>
+ <string name="show_navbar_hint_title">Oidheam na seòladaireachd</string>
+ <string name="show_navbar_hint_summary">Seall bàr oidheam na seòladaireachd aig bonn na sgrìn</string>
+ <string name="app_notification_sound_timeout_title">An ùine as lugha eadar fuaimean bhrathan</string>
+ <string name="app_notification_sound_timeout_summary_template">Na ceadaich fuaim no brath nas trice na gach <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Gun chuingeachadh</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 diogan</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 diog</string>
+ <string name="app_notification_sound_timeout_value_1_minute">Mionaid</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 mionaidean</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 mionaidean</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">Leth-uair a thìde</string>
+ <string name="auto_brightness_one_shot_title">Soilleireachd fhèin-obrachail an aon losgaidh</string>
+ <string name="auto_brightness_one_shot_summary">Cha dèid gleus a chur air an t-soilleireachd ach aig an àm a thèid an sgrìn a chur air</string>
+ <string name="data_usage_app_restrict_all">Ceadaich inntrigeadh dhan lìonra</string>
+ <string name="data_usage_app_restrict_all_summary">Cuir an comas cleachdadh an lìonraidh</string>
+ <string name="data_usage_app_restrict_mobile">Dàta mobile</string>
+ <string name="data_usage_app_restrict_mobile_summary">Cuir an comas cleachdadh dàta mobile</string>
+ <string name="data_usage_app_restrict_vpn">Dàta VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Cuir an comas cleachdadh dàta VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dàta WiFi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Cuir an comas cleachdadh dàta WiFi</string>
+ <string name="unlock_scramble_pin_layout_title">Cuir a’ cho-dhealbhachd tro chèile</string>
+ <string name="unlock_scramble_pin_layout_summary">Cuir co-dhealbhachd a’ PIN tro chèile nuair a bheirear a’ ghlas far an uidheim</string>
+ <string name="proximity_wake_title">Caisg dùsgadh air mhearachd</string>
+ <string name="proximity_wake_summary">Dearbh le mothaichear na fagasachd mus dèid an sgrìn a dhùsgadh</string>
+ <string name="touchscreen_gesture_settings_title">Gluasadan na sgrìn-shuathaidh</string>
+ <string name="touchscreen_gesture_settings_summary">Cleachd gluasadan sgrìn-shuathaidh airson gnìomhan luatha</string>
+ <string name="touchscreen_hovering_title">Fantainn os cionn na sgrìn</string>
+ <string name="touchscreen_hovering_summary">Bheir seo comas dhut fantainn os cionn na sgrìn, mar luchag ann am brabhsairean-lìn, desktops cèin is msaa</string>
+ <string name="wake_when_plugged_or_unplugged_title">Dùisg nuair a cheanglar ri bun-dealain</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Cuir an sgrìn air nuair a thèid tùs cumhachd a cheangal ris no a dhì-cheangal</string>
+ <string name="fast_charging_title">Teàirrdseadh luath</string>
+ <string name="fast_charging_summary">Cuir à comas e ach nach adhbharaich an t-uidheam uiread de theas nuair a bhios e ’ga theàirrdseadh no ach am mair am bataraidh nas fhaide</string>
+</resources>
diff --git a/res/values-gl/cm_strings.xml b/res/values-gl/cm_strings.xml
new file mode 100644
index 0000000..2b46e68
--- /dev/null
+++ b/res/values-gl/cm_strings.xml
@@ -0,0 +1,84 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Configuración avanzada</string>
+ <string name="adb_enable_root">Depuración como root</string>
+ <string name="adb_enable_summary_root">Permitir executar a depuración de Android como root</string>
+ <string name="backup_transport_setting_label">Trocar provedor de copias de seguranza</string>
+ <string name="backup_transport_title">Seleccionar provedor de copias de seguranza</string>
+ <string name="berry_black_theme_title">Negro puro</string>
+ <string name="berry_black_theme_summary">Fondo negro puro para o tema escuro</string>
+ <string name="lineagelicense_title">Licenza de LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Está a <xliff:g id="step_count">%1$d</xliff:g> paso de activar a configuración de desenvolvemento.</item>
+ <item quantity="other">Está a <xliff:g id="step_count">%1$d</xliff:g> pasos de activar a configuración de desenvolvemento.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Activou a configuración de desenvolvemento!</string>
+ <string name="show_dev_already_cm">Non fai falla, a configuración de desenvolvemento xa están activa.</string>
+ <string name="peak_refresh_rate_summary_custom">Incrementa automaticamente a frecuencia de actualización de 60 a %1$d Hz en determinados tipos de contido. Aumenta o uso da batería.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tocar para suspender</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Duplo toque na barra de estado ou na pantalla de bloqueo para apagar a pantalla</string>
+ <string name="heads_up_notifications_enabled_title">Notificacións emerxentes</string>
+ <string name="heads_up_notifications_enabled_summary">Amosar notificacions de prioridad nunha pequena xanela flotante</string>
+ <string name="high_touch_sensitivity_title">Alta sensibilidade</string>
+ <string name="high_touch_sensitivity_summary">Aumentar a sensibilidade da pantalla para poder utilizalo con luvas</string>
+ <string name="tethering_allow_vpn_upstreams_title">Permitir aos clientes usar VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permite aos clientes do punto de acceso usar as conexións VPN deste dispositivo como conexión principal</string>
+ <string name="increasing_ring_volume_option_title">Aumentando o volume de chamada</string>
+ <string name="increasing_ring_min_volume_title">Volume inicial</string>
+ <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+ <string name="lockscreen_media_art_title">Amosar a portada do álbum</string>
+ <string name="lock_settings_picker_pattern_size_message">Escolle un tamaño para o patrón</string>
+ <string name="lockpattern_settings_enable_error_path_title">Mostrar erro do padrón</string>
+ <string name="lockpattern_settings_enable_dots_title">Mostrar puntos do padrón</string>
+ <string name="max_refresh_rate_title">Taxa de actualización máxima</string>
+ <string name="min_refresh_rate_title">Taxa mínima de actualización </string>
+ <string name="show_navbar_hint_title">Suxerencia de navegación</string>
+ <string name="show_navbar_hint_summary">Amosar barra de suxestións de navegación na parte inferior da pantalla</string>
+ <string name="app_notification_sound_timeout_title">Tempo mínimo entre os sons das notificacións</string>
+ <string name="app_notification_sound_timeout_summary_template">Permitir os sons ou vibración non máis dunha vez cada <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Sen restrició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>
+ <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">10 minutos</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+ <string name="auto_brightness_one_shot_title">Brillo automático ao encender a pantalla</string>
+ <string name="auto_brightness_one_shot_summary">O axuste do brillo ocorrerá só no momento en que a pantalla for encendida</string>
+ <string name="data_usage_app_restrict_all">Permitir acceso á rede</string>
+ <string name="data_usage_app_restrict_all_summary">Habilitar uso da rede</string>
+ <string name="data_usage_app_restrict_mobile">Datos móbiles</string>
+ <string name="data_usage_app_restrict_mobile_summary">Activar o uso dos datos móbiles</string>
+ <string name="data_usage_app_restrict_vpn">Datos VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Activar o uso de datos por VPN</string>
+ <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Activar o uso dos datos Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Disposición aleatoria</string>
+ <string name="unlock_scramble_pin_layout_summary">Cambiar a disposición dos números do PIN para desbloquear o dispositivo</string>
+ <string name="proximity_wake_title">Previr acender de forma accidental</string>
+ <string name="proximity_wake_summary">Comprobar o sensor de proximidade antes de acender a pantalla</string>
+ <string name="touchscreen_gesture_settings_title">Xestos na pantalla táctil</string>
+ <string name="touchscreen_gesture_settings_summary">Realizar varios xestos na pantalla para accións rápidas</string>
+ <string name="touchscreen_hovering_title">Pantalla táctil deslizante</string>
+ <string name="touchscreen_hovering_summary">Permítelle utilizar o dedo coma un rato ao deslizalo en navegadores web, escritorios remotos, etc.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Acender ao enchufar</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Acende a pantalla ao contectarse e desconectarse dunha fonte de enerxía</string>
+ <string name="fast_charging_title">Carga rápida</string>
+ <string name="fast_charging_summary">Desactivar para reducir a calor producida polo dispositivo durante a súa carga ou para aumentar a vida útil da batería</string>
+</resources>
diff --git a/res/values-gu/cm_strings.xml b/res/values-gu/cm_strings.xml
new file mode 100644
index 0000000..41d2612
--- /dev/null
+++ b/res/values-gu/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS lકાયદાકીય</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">હવે તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરવાથી <xliff:g id="step_count">%1$d</xliff:g> પગલા દૂર છો.</item>
+ <item quantity="other">હવે તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરવાથી <xliff:g id="step_count">%1$d</xliff:g> પગલાં દૂર છો.</item>
+ </plurals>
+ <string name="show_dev_on_cm">તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કર્યું!</string>
+ <string name="show_dev_already_cm">જરૂર નથી, તમે ડેવેલપમેન્ટ સેટિંગ્સ સક્ષમ કરી ચુક્યા છો.</string>
+ <string name="peak_refresh_rate_summary_custom">અમુક કન્ટેન્ટ માટે રિફ્રેશ થવાનો રેટ ઑટોમૅટિક રીતે 60થી વધારીને %1$d Hz કરે છે. બૅટરીનો વપરાશ વધારે છે.</string>
+ <string name="high_touch_sensitivity_title">ઉચ્ચ ટચ સંવેદનશીલતા</string>
+ <string name="high_touch_sensitivity_summary">ટચસ્ક્રીન સંવેદનશીલતા વધારો જેથી હાથમોજા પહેરીને તેનો ઉપયોગ થઈ શકે</string>
+ <string name="increasing_ring_volume_option_title">રિંગ વૉલ્યુમ વધારી રહ્યા છે</string>
+ <string name="increasing_ring_min_volume_title">શરૂઆતનું વૉલ્યુમ</string>
+ <string name="increasing_ring_ramp_up_time_title">રૅમ્પ-અપ સમય</string>
+ <string name="lockpattern_settings_enable_error_path_title">પૅટર્ન ખામી દર્શાવો</string>
+ <string name="lockpattern_settings_enable_dots_title">પૅટર્ન ડોટ્સ દર્શાવો</string>
+ <string name="unlock_scramble_pin_layout_title">લેઆઉટ આમતેમ કરો</string>
+ <string name="unlock_scramble_pin_layout_summary">ડિવાઇસ અનલૉક કરો ત્યારે PIN લેઆઉટ આમતેમ કરો</string>
+ <string name="proximity_wake_title">આકસ્મિક વેક અપ રોકો</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>
+</resources>
diff --git a/res/values-hi/cm_strings.xml b/res/values-hi/cm_strings.xml
new file mode 100644
index 0000000..6e1d948
--- /dev/null
+++ b/res/values-hi/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">सियानोजेनमोड क़ानूनी</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">विकास सेटिंग को सक्षम करने के लिए अब सिर्फ़ <xliff:g id="step_count">%1$d</xliff:g> चरण बाकी है।</item>
+ <item quantity="other">विकास सेटिंग को सक्षम करने के लिए अब सिर्फ़ <xliff:g id="step_count">%1$d</xliff:g> चरण बाकी हैं।</item>
+ </plurals>
+ <string name="show_dev_on_cm">आपने विकास सेटिंग को सक्षम किया है!</string>
+ <string name="show_dev_already_cm">इसकी ज़रूरत नहीं है, आपने पहले ही विकास सेटिंग को सक्षम कर दिया है।</string>
+ <string name="peak_refresh_rate_summary_custom">कुछ कॉन्टेंट के लिए, यह अपने-आप ही रीफ़्रेश दर को 60 हर्ट्ज़ से बढ़ाकर %1$d हर्ट्ज़ कर देता है. इसमें बैटरी ज़्यादा खर्च होती है.</string>
+ <string name="high_touch_sensitivity_title">उच्च स्पर्श संवेदनशीलता</string>
+ <string name="high_touch_sensitivity_summary">स्पर्श स्क्रीन संवेदनशीलता को बढ़ाएँ ताकि दस्ताने पहने हुए हाथ से उसका उपयोग किया जा सके</string>
+ <string name="increasing_ring_volume_option_title">बढ़ता हुआ रिंगटोन वोल्यूम</string>
+ <string name="increasing_ring_min_volume_title">वोल्यूम को शुरू करें</string>
+ <string name="increasing_ring_ramp_up_time_title">समय को बढ़ाएँ</string>
+ <string name="lockpattern_settings_enable_error_path_title">पैटर्न त्रुटि दिखाएँ</string>
+ <string name="lockpattern_settings_enable_dots_title">पैटर्न बिंदु दिखाएँ</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="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>
+</resources>
diff --git a/res/values-hr/cm_strings.xml b/res/values-hr/cm_strings.xml
new file mode 100644
index 0000000..a0f0d19
--- /dev/null
+++ b/res/values-hr/cm_strings.xml
@@ -0,0 +1,66 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Dodatno</string>
+ <string name="advanced_keyboard_settings_title">Napredne postavke</string>
+ <string name="lineagelicense_title">LineageOS licenca</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Sada ste <xliff:g id="step_count">%1$d</xliff:g> korak od omogućavanja razvojnih postavki.</item>
+ <item quantity="few">Sada ste <xliff:g id="step_count">%1$d</xliff:g> koraka od omogućavanja razvojnih postavki.</item>
+ <item quantity="other">Sada ste <xliff:g id="step_count">%1$d</xliff:g> koraka od omogućavanja razvojnih postavki.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Omogućili ste razvojne postavke!</string>
+ <string name="show_dev_already_cm">Nema potrebe, već ste omogućili postavke za razvoj.</string>
+ <string name="peak_refresh_rate_summary_custom">Automatski povećava učestalost osvježavanja sa 60 na %1$d Hz za određeni sadržaj. Povećava potrošnju baterije.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Dodir za spavanje</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dvaput dodirnite traku statusa na zaključanom zaslonu za isključivanje zaslona</string>
+ <string name="heads_up_notifications_enabled_title">Plutajuće obavijesti</string>
+ <string name="heads_up_notifications_enabled_summary">Prikazuje prioritetne obavijesti u malim plutajućim prozorima</string>
+ <string name="high_touch_sensitivity_title">Visoka osjetljivost na dodir</string>
+ <string name="high_touch_sensitivity_summary">Povećaj osjetljivost na dodir tako da se mogu koristiti rukavice</string>
+ <string name="increasing_ring_volume_option_title">Pojačavanje glasnoće zvona</string>
+ <string name="increasing_ring_min_volume_title">Početna jačina zvuka</string>
+ <string name="increasing_ring_ramp_up_time_title">Vrijeme podizanja</string>
+ <string name="lockscreen_media_art_title">Prikaži omot medija</string>
+ <string name="lock_settings_picker_pattern_size_message">Odaberite veličinu uzorka</string>
+ <string name="lockpattern_settings_enable_error_path_title">Pokaži grešku uzorka</string>
+ <string name="lockpattern_settings_enable_dots_title">Pokaži točke uzorka</string>
+ <string name="min_refresh_rate_title">Minimalna brzina osvježavanja</string>
+ <string name="app_notification_sound_timeout_title">Minimalno vrijeme između zvukova obavijesti</string>
+ <string name="app_notification_sound_timeout_summary_template">Dopusti zvukove ili vibraciju ne više od jednom svakih <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Bez ograničenja</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekundi</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekundi</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minuta</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuta</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuta</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuta</string>
+ <string name="data_usage_app_restrict_mobile">Mobilni podaci</string>
+ <string name="data_usage_app_restrict_mobile_summary">Omogući upotrebu mobilnih podataka</string>
+ <string name="unlock_scramble_pin_layout_title">Nasumičan raspored</string>
+ <string name="unlock_scramble_pin_layout_summary">Nasumičan PIN raspored pri otključavanju uređaja</string>
+ <string name="proximity_wake_title">Sprječavanje slučajnog buđenja</string>
+ <string name="proximity_wake_summary">Provjera senzora blizine prije buđenja zaslona</string>
+ <string name="touchscreen_gesture_settings_title">Geste zaslona</string>
+ <string name="touchscreen_gesture_settings_summary">Razne geste zaslona za brze radnje</string>
+ <string name="touchscreen_hovering_title">Lebdenje zaslonom</string>
+ <string name="touchscreen_hovering_summary">Dopušta vam da lebdite zaslonom kao miš u web pretraživaču, udaljenom desktopu, itd</string>
+ <string name="wake_when_plugged_or_unplugged_title">Buđenje pri priključivanju</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Uključite zaslon prilikom spajanja ili odspajanja izvora napajanja</string>
+ <string name="fast_charging_title">Brzo punjenje</string>
+ <string name="fast_charging_summary">Onemogućite kako biste smanjili toplinu koju uređaj proizvodi tijekom punjenja ili produljili vijek trajanja baterije</string>
+</resources>
diff --git a/res/values-hu/cm_strings.xml b/res/values-hu/cm_strings.xml
new file mode 100644
index 0000000..b8429c2
--- /dev/null
+++ b/res/values-hu/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extrák</string>
+ <string name="advanced_keyboard_settings_title">Haladó beállítások</string>
+ <string name="adb_enable_root">Rootolt hibakeresés</string>
+ <string name="adb_enable_summary_root">Rootolva engedélyezi az Android hibakeresését</string>
+ <string name="backup_transport_setting_label">Mentési-szolgáltatás megváltoztatása</string>
+ <string name="backup_transport_title">Mentési-szolgáltatás kiválasztása</string>
+ <string name="berry_black_theme_title">Valódi fekete</string>
+ <string name="berry_black_theme_summary">Egy igazán fekete háttér a fekete témákhoz</string>
+ <string name="lineagelicense_title">LineageOS jogi nyilatkozat</string>
+ <string name="device_info_protected_single_press">Érintés után láthatja az infókat</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Ön <xliff:g id="step_count">%1$d</xliff:g> lépésre van attól, hogy engedélyezze a fejlesztői beállításokat.</item>
+ <item quantity="other">Ön <xliff:g id="step_count">%1$d</xliff:g> lépésre van attól, hogy engedélyezze a fejlesztői beállításokat.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Sikeresen engedélyezte a fejlesztői beállításokat!</string>
+ <string name="show_dev_already_cm">Már korábban engedélyezte a fejlesztői beállításokat.</string>
+ <string name="peak_refresh_rate_summary_custom">Néhány tartalomnál automatikusan megemeli a frissítés gyakoriságát 60-ról %1$d Hz-re. Növeli az akkumulátorhasználatot.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Dupla érintésre alvómód</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Az állapotsor vagy a záróképernyő dupla érintésére kikapcsol a képernyő</string>
+ <string name="high_touch_polling_rate_title">Magas értékű képernyő-lekérdezés</string>
+ <string name="high_touch_polling_rate_summary">Az érintőképernyő lekérdezési értékének növelése</string>
+ <string name="heads_up_notifications_enabled_title">Lebegő értesítés</string>
+ <string name="heads_up_notifications_enabled_summary">Kiemelt értesítések megjelenítése egy kis lebegő ablakban</string>
+ <string name="high_touch_sensitivity_title">Magas érintési érzékenység</string>
+ <string name="high_touch_sensitivity_summary">Érintőképernyő érzékenységének növelése, így kesztyű viselése esetén is használható</string>
+ <string name="tethering_allow_vpn_upstreams_title">Kliensek VPN-használatának engedélyezése</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Engedélyezze a hotspot-klienseknek, hogy a készülék VPN-kapcsolatait felfelé csatlakoztathassák</string>
+ <string name="increasing_ring_volume_option_title">Emelkedő csengőhang</string>
+ <string name="increasing_ring_min_volume_title">Kezdeti hangerő</string>
+ <string name="increasing_ring_ramp_up_time_title">Felfutási idő</string>
+ <string name="lockscreen_media_art_title">Média borítójának megjelenítése</string>
+ <string name="lock_settings_picker_pattern_size_message">Válassza ki a minta méretét</string>
+ <string name="lockpattern_settings_enable_error_path_title">Hibás minta megjelenítése</string>
+ <string name="lockpattern_settings_enable_dots_title">Feloldási pontok megjelenítése</string>
+ <string name="max_refresh_rate_title">Képernyőfrissítés-emelés</string>
+ <string name="min_refresh_rate_title">Minimális képernyőfrissítés</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Táblagépe előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Készüléke előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonja előlapján találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Táblagépe hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Készüléke hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonja hátlapján találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Táblagépe oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Készüléke oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonja oldalán találhatja meg az ujjlenyomat-olvasót.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Érintse meg a szenzort készüléke előlapján.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Érintse meg a szenzort készüléke előlapján.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Érintse meg a szenzort telefonja előlapján.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Érintse meg a szenzort készüléke hátlapján.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Érintse meg a szenzort készüléke hátlapján.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Érintse meg a szenzort telefonja hátlapján.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Érintse meg a szenzort készüléke oldalán.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Érintse meg a szenzort készüléke oldalán.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Érintse meg a szenzort telefonja oldalán.</string>
+ <string name="show_navbar_hint_title">Navigációs tipp</string>
+ <string name="show_navbar_hint_summary">A navigáció ajánlásait a képernyő alján jeleníti meg</string>
+ <string name="app_notification_sound_timeout_title">Értesítési hangok közötti minimum időtartam</string>
+ <string name="app_notification_sound_timeout_summary_template">Hang vagy rezgés ismétlődésének engedélyezése: <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Nincs korlátozás</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 másodperc</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 másodperc</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 perc</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 perc</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 perc</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 perc</string>
+ <string name="auto_brightness_one_shot_title">Egylövéses automata-fényerő</string>
+ <string name="auto_brightness_one_shot_summary">A fényerőbeállítás csak a képernyő bekapcsolásának pillanatában történik</string>
+ <string name="data_usage_app_restrict_all">Hálózat-hozzáférés engedélyezése</string>
+ <string name="data_usage_app_restrict_all_summary">Lehetővé teszi a hálózathasználatot</string>
+ <string name="data_usage_app_restrict_mobile">Mobiladat</string>
+ <string name="data_usage_app_restrict_mobile_summary">Mobiladat-használat engedélyezés</string>
+ <string name="data_usage_app_restrict_vpn">VPN-adatok</string>
+ <string name="data_usage_app_restrict_vpn_summary">A VPN-adathasználat engedélyezése</string>
+ <string name="data_usage_app_restrict_wifi">Wi-Fi-kapcsolat</string>
+ <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi-adathasználat engedélyezése</string>
+ <string name="unlock_scramble_pin_layout_title">Szoros elrendezés</string>
+ <string name="unlock_scramble_pin_layout_summary">PIN szoros elrendezése az eszköz feloldásakor</string>
+ <string name="proximity_wake_title">Véletlen ébresztés megakadályozása</string>
+ <string name="proximity_wake_summary">Közelségérzékelő ellenőrzése a képernyő felébresztése előtt</string>
+ <string name="touchscreen_gesture_settings_title">Érintőképernyő-mozdulatvezérlés</string>
+ <string name="touchscreen_gesture_settings_summary">Különböző képernyő-mozdulatvezérlések végrehajtása a gyorsműveletekhez</string>
+ <string name="touchscreen_hovering_title">Lebegő érintés</string>
+ <string name="touchscreen_hovering_summary">Engedélyezi a lebegéssel való vezérlést, mint egy egérrel a böngészőknél, távoli asztaloknál, stb.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Felébredés töltő csatlakoztatásakor</string>
+ <string name="wake_when_plugged_or_unplugged_summary">A képernyő bekapcsolása a töltő csatlakoztatása/eltávolítása után</string>
+ <string name="fast_charging_title">Gyorstöltés</string>
+ <string name="fast_charging_summary">Ne engedélyezze, ha csökkentené a készülék töltés közbeni melegedését, vagy meghosszabbítaná az akkumulátor élettartamát</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Az ujjlenyomat-olvasó hosszannyomásával feloldható a telefon</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Az ujjlenyomat-olvasó hosszannyomásával feloldható a táblagép</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Az ujjlenyomat-olvasó hosszannyomásával feloldható a készülék</string>
+ <string name="ambient_display_screen_off_udfps_summary">A képernyő felébresztéséhez és feloldásához nyomja meg hosszan a képernyőbe épitett ujjlenyomat-olvasót.</string>
+ <string name="storage_warning_internal">Figyelmeztetés: Előfordulhat, hogy ez a lehetőség nem működik megfelelően, vagy adatvesztéshez vezethet, ezért nem javasolt!</string>
+</resources>
diff --git a/res/values-hy/cm_strings.xml b/res/values-hy/cm_strings.xml
new file mode 100644
index 0000000..84b3363
--- /dev/null
+++ b/res/values-hy/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Որոշակի բովանդակության համար թարմացման հաճախականությունը 60-ից կդառնա %1$d Հց։ Երկարացնում է մարտկոցի օգտագործման ժամանակը։</string>
+</resources>
diff --git a/res/values-in/cm_strings.xml b/res/values-in/cm_strings.xml
new file mode 100644
index 0000000..3593fbd
--- /dev/null
+++ b/res/values-in/cm_strings.xml
@@ -0,0 +1,100 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Tambahan</string>
+ <string name="advanced_keyboard_settings_title">Setelan lanjutan</string>
+ <string name="backup_transport_setting_label">Ubah penyedia cadangan</string>
+ <string name="backup_transport_title">Pilih penyedia cadangan</string>
+ <string name="berry_black_theme_title">Hitam</string>
+ <string name="berry_black_theme_summary">Latar belakang hitam untuk tema gelap</string>
+ <string name="lineagelicense_title">Hukum LineageOS</string>
+ <string name="device_info_protected_single_press">Ketuk untuk menampilkan info</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="other"><xliff:g id="step_count">%1$d</xliff:g> langkah lagi untuk mengaktifkan opsi pengembang.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Anda adalah seorang pengembang!</string>
+ <string name="show_dev_already_cm">Tidak perlu, Anda telah mengaktifkan opsi pengembang.</string>
+ <string name="peak_refresh_rate_summary_custom">Otomatis meningkatkan rasio pembaruan dari 60 menjadi %1$d Hz untuk beberapa konten. Meningkatkan penggunaan baterai.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Ketuk untuk tidur</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Ketukan ganda pada bilah status atau layar kunci untuk mematikan layar</string>
+ <string name="heads_up_notifications_enabled_title">Notifikasi mengambang</string>
+ <string name="heads_up_notifications_enabled_summary">Menampilkan pemberitahuan prioritas dalam jendela kecil yang mengambang</string>
+ <string name="high_touch_sensitivity_title">Kepekaan sentuh tinggi</string>
+ <string name="high_touch_sensitivity_summary">Tingkatkan kepekaan layar sentuh sehingga dapat digunakan saat mengenakan sarung tangan</string>
+ <string name="tethering_allow_vpn_upstreams_title">Izinkan klien menggunakan VPN</string>
+ <string name="increasing_ring_volume_option_title">Meningkatkan volume dering</string>
+ <string name="increasing_ring_min_volume_title">Volume awal</string>
+ <string name="increasing_ring_ramp_up_time_title">Waktu penguatan</string>
+ <string name="lockscreen_media_art_title">Tampilkan sampul media</string>
+ <string name="lock_settings_picker_pattern_size_message">Pilih ukuran pola</string>
+ <string name="lockpattern_settings_enable_error_path_title">Tunjukkan galat pola</string>
+ <string name="lockpattern_settings_enable_dots_title">Tunjukkan titik-titik pola</string>
+ <string name="min_refresh_rate_title">Kecepatan refresh minimum</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Temukan sensor sidik jari di bagian depan tablet Anda.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Temukan sensor sidik jari di bagian depan perangkat Anda</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Temukan lokasi sensor sidik jari di bagian depan telepon Anda.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Temukan sensor sidik jari di bagian belakang tablet Anda.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Temukan sensor sidik jari di bagian belakang perangkat Anda.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Temukan lokasi sensor sidik jari di bagian belakang telepon Anda.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Temukan sensor sidik jari di bagian samping tablet Anda.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Temukan sensor sidik jari di bagian samping perangkat Anda.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Temukan lokasi sensor sidik jari di bagian samping telepon Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Sentuh sensor di bagian depan tablet Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Sentuh sensor di bagian depan perangkat Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Sentuh sensor di bagian depan ponsel Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Sentuh sensor di bagian belakang tablet Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Sentuh sensor di bagian belakang perangkat Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Sentuh sensor di bagian belakang ponsel Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Sentuh sensor di bagian samping tablet Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Sentuh sensor di bagian samping perangkat Anda.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Sentuh sensor di bagian samping ponsel Anda.</string>
+ <string name="app_notification_sound_timeout_title">Waktu minimum antara suara pemberitahuan</string>
+ <string name="app_notification_sound_timeout_summary_template">Memungkinkan suara atau getaran tidak lebih dari sekali setiap <xliff:g id="duration">%1$s </xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Tidak ada pembatasan</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 detik</string>
+ <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">10 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>
+ <string name="data_usage_app_restrict_all">Izinkan akses jaringan</string>
+ <string name="data_usage_app_restrict_all_summary">Aktifkan penggunaan jaringan</string>
+ <string name="data_usage_app_restrict_mobile">Data seluler</string>
+ <string name="data_usage_app_restrict_mobile_summary">Aktifkan penggunaan data seluler</string>
+ <string name="data_usage_app_restrict_vpn">Data VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Aktifkan penggunaan data VPN</string>
+ <string name="data_usage_app_restrict_wifi">Data Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Aktifkan penggunaan data Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Tata letak acak</string>
+ <string name="unlock_scramble_pin_layout_summary">Acak tata letak PIN saat membuka perangkat</string>
+ <string name="proximity_wake_title">Mencegah bangun yang tidak disengaja</string>
+ <string name="proximity_wake_summary">Periksa sensor proximity sebelum membangunkan layar</string>
+ <string name="touchscreen_gesture_settings_title">Gerakan layar sentuh</string>
+ <string name="touchscreen_gesture_settings_summary">Melakukan berbagai gerakan layar sentuh untuk tindakan cepat</string>
+ <string name="touchscreen_hovering_title">Ambang jari di layar sentuh</string>
+ <string name="touchscreen_hovering_summary">Mengizinkan Anda mengambang jari di atas layar seperti menggunakan tetikus dalam peramban web, destop jarak jauh, dll</string>
+ <string name="wake_when_plugged_or_unplugged_title">Bangun saat pengisi daya di pasang</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Aktifkan layar ketika menghubungkan atau melepaskan sumber daya</string>
+ <string name="fast_charging_title">Pengisian daya cepat</string>
+ <string name="fast_charging_summary">Nonaktifkan untuk mengurangi panas yang dihasilkan oleh perangkat saat mengisi daya atau untuk memperpanjang masa pakai baterai</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Tekan lama pada sensor sidik jari untuk membuka kunci ponsel</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Tekan lama pada sensor sidik jari untuk membuka kunci tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Tekan lama pada sensor sidik jari untuk membuka kunci perangkat</string>
+ <string name="ambient_display_screen_off_udfps_summary">Untuk mengaktifkan layar dan membuka kunci, tekan lama sensor sidik jari di bawah layar.</string>
+</resources>
diff --git a/res/values-is/cm_strings.xml b/res/values-is/cm_strings.xml
new file mode 100644
index 0000000..5f18398
--- /dev/null
+++ b/res/values-is/cm_strings.xml
@@ -0,0 +1,108 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Auka</string>
+ <string name="advanced_keyboard_settings_title">Ítarlegar stillingar</string>
+ <string name="adb_enable_root">Aflúsun í rótarham</string>
+ <string name="adb_enable_summary_root">Leyfa að villuleit í Android sé keyrð sem kerfisstjóri/root</string>
+ <string name="backup_transport_setting_label">Breyta öryggisafritunarveitu</string>
+ <string name="backup_transport_title">Veldu öryggisafritunarveitu</string>
+ <string name="berry_black_theme_title">Hreint svart</string>
+ <string name="berry_black_theme_summary">Hreinn svartur bakgrunnur í dökku þema</string>
+ <string name="lineagelicense_title">Lagalegir fyrirvarar LineageOS</string>
+ <string name="device_info_protected_single_press">Ýttu til þess að birta upplýsingar</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Þú ert núna <xliff:g id="step_count">%1$d</xliff:g> skref frá því að virkja þróunarstillingar.</item>
+ <item quantity="other">Þú ert núna <xliff:g id="step_count">%1$d</xliff:g> skrefum frá því að virkja þróunarstillingar.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Þú hefur virkjað þróunarstillingar!</string>
+ <string name="show_dev_already_cm">Ekki nauðsynlegt, þú hefur þegar virkjað þróunarstillingar.</string>
+ <string name="peak_refresh_rate_summary_custom">Breytir endurnýjunarhraða sjálfkrafa úr 60 í %1$d Hz fyrir sumt efni. Eykur rafhlöðunotkun.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Ýttu til að svæfa</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Tvíbankaðu á stöðustikuna eða læsiskjáinn til að slökkva á skjánum</string>
+ <string name="high_touch_polling_rate_title">Mikil tíðni snertinæmni</string>
+ <string name="high_touch_polling_rate_summary">Auka tíðni á snertinæmni</string>
+ <string name="heads_up_notifications_enabled_title">Áminningar</string>
+ <string name="heads_up_notifications_enabled_summary">Birta forgangstilkynningar í litlum fljótandi glugga</string>
+ <string name="high_touch_sensitivity_title">Mikil snertinæmni</string>
+ <string name="high_touch_sensitivity_summary">Auka næmni snertiskjás svo hægt sé að nota hann íklæddur vettlingum</string>
+ <string name="tethering_allow_vpn_upstreams_title">Leyfa forritum að nota VPN-tengingar</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Leyfa tengipunktsforritum að nota VPN-tengingar tækisins til að tengjast út (upstream)</string>
+ <string name="increasing_ring_volume_option_title">Eyk hljóðstyrk hringingar</string>
+ <string name="increasing_ring_min_volume_title">Upphafshljóðstyrkur</string>
+ <string name="increasing_ring_ramp_up_time_title">Stigmögnunartími</string>
+ <string name="lockscreen_media_art_title">Sýna umslagsmyndir margmiðlunarefnis</string>
+ <string name="lock_settings_picker_pattern_size_message">Veldu stærð mynsturs</string>
+ <string name="lockpattern_settings_enable_error_path_title">Birta villu í mynstri</string>
+ <string name="lockpattern_settings_enable_dots_title">Sýna mynsturpunkta</string>
+ <string name="max_refresh_rate_title">Mesta uppfærslutíðni</string>
+ <string name="min_refresh_rate_title">Lágmarks uppfærslutíðni</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Finndu fingrafaraskannann framan á spjaldtölvunni þinni.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Finndu fingrafaraskannann framan á tækinu þínu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Finndu fingrafaraskannann framan á símanum þínum.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Finndu fingrafaraskannann aftan á spjaldtölvunni þinni.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Finndu fingrafaraskannann aftan á tækinu þínu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Finndu fingrafaraskannann aftan á símanum þínum.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Finndu fingrafaraskannann á hlið spjaldtölvunnar þinnar.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Finndu fingrafaraskannann á hlið tækisins þíns.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Finndu fingrafaraskannann á hlið símans þíns.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Snertu lesarann framan á spjaldtölvunni.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Snertu lesarann framan á tækinu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Snertu lesarann framan á símanum.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Snertu lesarann aftan á spjaldtölvunni.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Snertu lesarann aftan á tækinu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Snertu lesarann aftan á símanum.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Snertu lesarann á hlið spjaldtölvunnar.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Snertu lesarann á hlið tækisins.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Snertu lesarann á hlið símans.</string>
+ <string name="show_navbar_hint_title">Ábending við flakk</string>
+ <string name="show_navbar_hint_summary">Birta stiku með ábendingum um flakk neðst á skjánum</string>
+ <string name="app_notification_sound_timeout_title">Lágmarkstími milli tilkynningahljóða</string>
+ <string name="app_notification_sound_timeout_summary_template">Leyfa hljóð eða titring ekki oftar en einu sinni á <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Engar takmarkanir</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekúndur</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekúndur</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 mínúta</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 mínútur</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 mínútur</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 mínútur</string>
+ <string name="data_usage_app_restrict_all">Leyfa aðgang að neti</string>
+ <string name="data_usage_app_restrict_all_summary">Virkja notkun nets</string>
+ <string name="data_usage_app_restrict_mobile">Farsímagögn</string>
+ <string name="data_usage_app_restrict_mobile_summary">Virkja notkun farsímagagna</string>
+ <string name="data_usage_app_restrict_vpn">VPN-gögn</string>
+ <string name="data_usage_app_restrict_vpn_summary">Virkja notkun VPN-gagna</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi gögn</string>
+ <string name="data_usage_app_restrict_wifi_summary">Virkja notkun á Wi\u2011Fi gögnum</string>
+ <string name="unlock_scramble_pin_layout_title">Rugla framsetningu</string>
+ <string name="unlock_scramble_pin_layout_summary">Rugla PIN-framsetningu þegar tæki er aflæst</string>
+ <string name="proximity_wake_title">Koma í veg fyrir slysalega vöknun</string>
+ <string name="proximity_wake_summary">Athuga nálægðarskynjara áður en skjár er vakinn</string>
+ <string name="touchscreen_gesture_settings_title">Bendingar á snertiskjá</string>
+ <string name="touchscreen_gesture_settings_summary">Framkvæma ýmsar bendingar á snertiskjá fyrir flýtiaðgerðir</string>
+ <string name="touchscreen_hovering_title">Svif yfir snertiskjá</string>
+ <string name="touchscreen_hovering_summary">Gerir þér kleift að láta bendil svífa eins og með mús yfir skjánum í vöfrum, fjartengdum skjáborðum, o.s.frv.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Vakning við tengingu</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Kveikja á skjá þegar afltenging er sett í samband eða aftengd</string>
+ <string name="fast_charging_title">Hraðhleðsla</string>
+ <string name="fast_charging_summary">Gera þetta óvirkt til að minnka hitann sem tækið framleiðir við hleðslu eða
+ til að lengja líftíma rafhlöðunnar</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Ýttu lengi á fingrafaraskanna til að taka símann úr lás</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Ýttu lengi á fingrafaraskanna til að taka spjaldtölvuna úr lás</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Ýttu lengi á fingrafaraskanna til að taka tækið úr lás</string>
+ <string name="ambient_display_screen_off_udfps_summary">Til að vekja skjáinn og aflæsa, skaltu ýta lengi á fingrafaraskannann undir skjánum.</string>
+</resources>
diff --git a/res/values-it/cm_strings.xml b/res/values-it/cm_strings.xml
new file mode 100644
index 0000000..d3578b1
--- /dev/null
+++ b/res/values-it/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extra</string>
+ <string name="advanced_keyboard_settings_title">Impostazioni avanzate</string>
+ <string name="adb_enable_root">Debug con accesso root</string>
+ <string name="adb_enable_summary_root">Consenti l\'utilizzo di funzioni di debug con permessi root</string>
+ <string name="backup_transport_setting_label">Cambia gestore di backup</string>
+ <string name="backup_transport_title">Seleziona un gestore di backup</string>
+ <string name="berry_black_theme_title">Nero puro</string>
+ <string name="berry_black_theme_summary">Tema scuro con sfondo nero</string>
+ <string name="lineagelicense_title">Note legali LineageOS</string>
+ <string name="device_info_protected_single_press">Tocca per mostrare l\'informazione</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Ora sei ad <xliff:g id="step_count">%1$d</xliff:g> passo dall\'attivare le impostazioni di sviluppo.</item>
+ <item quantity="other">Ora sei a <xliff:g id="step_count">%1$d</xliff:g> passi dall\'attivare le impostazioni di sviluppo.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Hai attivato le impostazioni di sviluppo!</string>
+ <string name="show_dev_already_cm">Non è necessario, hai già attivato le impostazioni di sviluppo.</string>
+ <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente la frequenza di aggiornamento da 60 a %1$d Hz per alcuni contenuti. Aumenta l\'utilizzo della batteria.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tocca per spegnere lo schermo</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Tocca due volte la barra di stato o la schermata di sblocco per spegnere lo schermo</string>
+ <string name="high_touch_polling_rate_title">Campionamento del touchscreen a frequenza elevata</string>
+ <string name="high_touch_polling_rate_summary">Aumenta la frequenza di campionamento del touchscreen</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Visualizza le notifiche prioritarie in una piccola finestra fluttuante</string>
+ <string name="high_touch_sensitivity_title">Tocco ad alta sensibilità</string>
+ <string name="high_touch_sensitivity_summary">Aumenta la sensibilità del touchscreen per l\'utilizzo con i guanti</string>
+ <string name="tethering_allow_vpn_upstreams_title">Consenti ai dispositivi connessi di utilizzare le VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Consenti ai dispositivi connessi all\'hotspot di utilizzare le connessioni VPN di questo dispositivo</string>
+ <string name="increasing_ring_volume_option_title">Suoneria incrementale</string>
+ <string name="increasing_ring_min_volume_title">Volume iniziale</string>
+ <string name="increasing_ring_ramp_up_time_title">Tempo di aumento</string>
+ <string name="lockscreen_media_art_title">Mostra copertina album</string>
+ <string name="lock_settings_picker_pattern_size_message">Scegli la dimensione della sequenza</string>
+ <string name="lockpattern_settings_enable_error_path_title">Mostra sequenza errata</string>
+ <string name="lockpattern_settings_enable_dots_title">Mostra punti sequenza</string>
+ <string name="max_refresh_rate_title">Frequenza massima di aggiornamento</string>
+ <string name="min_refresh_rate_title">Frequenza di aggiornamento minima</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Individua il sensore d\'impronte digitali sulla parte anteriore del tuo telefono.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Individua il sensore d\'impronte digitali sulla parte posteriore del tuo telefono.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Individua il sensore d\'impronte digitali sulla parte laterale del tuo tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Individua il sensore d\'impronte digitali sulla parte laterale del tuo dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Individua il sensore d\'impronte digitali sulla parte laterale del tuo telefono.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tocca il sensore sulla parte anteriore del tuo tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Tocca il sensore sulla parte anteriore del tuo dispositivo.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Tocca il sensore sulla parte anteriore del tuo telefono.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tocca il sensore sulla parte posteriore del tuo tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Tocca il sensore sulla parte posteriore del tuo dispositivo.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Tocca il sensore sulla parte posteriore del tuo telefono.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tocca il sensore sulla parte laterale del tuo tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Tocca il sensore sulla parte laterale del tuo dispositivo.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Tocca il sensore sulla parte laterale del tuo telefono.</string>
+ <string name="show_navbar_hint_title">Indicatore navigazione</string>
+ <string name="show_navbar_hint_summary">Mostra l\'indicatore di navigazione in fondo allo schermo</string>
+ <string name="app_notification_sound_timeout_title">Tempo minimo tra suoni di notifica</string>
+ <string name="app_notification_sound_timeout_summary_template">Consenti suoni o vibrazioni non più di una volta ogni <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Nessuna restrizione</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 secondi</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 secondi</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minuto</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuti</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuti</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuti</string>
+ <string name="auto_brightness_one_shot_title">Luminosità automatica singola </string>
+ <string name="auto_brightness_one_shot_summary">La regolazione della luminosità avverrà solo quando lo schermo viene acceso</string>
+ <string name="data_usage_app_restrict_all">Consenti accesso alla rete</string>
+ <string name="data_usage_app_restrict_all_summary">Abilita l\'utilizzo della rete</string>
+ <string name="data_usage_app_restrict_mobile">Dati mobili</string>
+ <string name="data_usage_app_restrict_mobile_summary">Abilita l\'utilizzo dei dati mobili</string>
+ <string name="data_usage_app_restrict_vpn">Dati VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Abilita utilizzo dati VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dati Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Abilita l\'uso dei dati Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Mescola disposizione</string>
+ <string name="unlock_scramble_pin_layout_summary">Mescola la disposizione del tastierino PIN per lo sblocco del dispositivo</string>
+ <string name="proximity_wake_title">Previeni risvegli accidentali</string>
+ <string name="proximity_wake_summary">Controlla il sensore di prossimità prima di accendere lo schermo</string>
+ <string name="touchscreen_gesture_settings_title">Gesture sullo schermo</string>
+ <string name="touchscreen_gesture_settings_summary">Esegui varie gesture sullo schermo per azioni rapide</string>
+ <string name="touchscreen_hovering_title">Touch a puntamento</string>
+ <string name="touchscreen_hovering_summary">Consente di utilizzare il tocco come un mouse nei browser e nei desktop remoti</string>
+ <string name="wake_when_plugged_or_unplugged_title">Risveglia al collegamento</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Accendi lo schermo quando si collega o si scollega l\'alimentazione</string>
+ <string name="fast_charging_title">Ricarica rapida</string>
+ <string name="fast_charging_summary">Disabilita per ridurre il calore prodotto dal dispositivo durante la carica o per prolungare la durata della batteria</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Premi a lungo sul sensore d\'impronte digitali per sbloccare il telefono</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Premi a lungo sul sensore d\'impronte digitali per sbloccare il tablet</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Premi a lungo sul sensore d\'impronte digitali per sbloccare il dispositivo</string>
+ <string name="ambient_display_screen_off_udfps_summary">Per accendere lo schermo e sbloccare il dispositivo, premi a lungo sul sensore d\'impronte digitali sotto lo schermo.</string>
+ <string name="storage_warning_internal">Attenzione: questa opzione potrebbe non funzionare correttamente o causare una perdita di dati, e quindi non è raccomandata!</string>
+ <string name="assisted_gps_summary">Scarica da internet i dati di assistenza satellitare, che possono migliorare notevolmente le prestazioni di avvio del GPS. Per le chiamate di emergenza, il GPS assistito è sempre permesso.</string>
+</resources>
diff --git a/res/values-iw/cm_strings.xml b/res/values-iw/cm_strings.xml
new file mode 100644
index 0000000..62395f3b
--- /dev/null
+++ b/res/values-iw/cm_strings.xml
@@ -0,0 +1,62 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS משפטי</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">אתם נמצאים רק עוד צעד <xliff:g id="step_count">%1$d</xliff:g> מהפעלת אפשרויות מפתח.</item>
+ <item quantity="two">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+ <item quantity="many">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+ <item quantity="other">אתם נמצאים רק עוד <xliff:g id="step_count">%1$d</xliff:g> צעדים מהפעלת אפשרויות מפתח.</item>
+ </plurals>
+ <string name="show_dev_on_cm">אפשרויות מפתח פעילות!</string>
+ <string name="show_dev_already_cm">אין צורך. כבר הפעלת את אפשרויות המפתח.</string>
+ <string name="peak_refresh_rate_summary_custom">קצב הרענון עולה באופן אוטומטי מ-60 ל-Hz%1$d לחלק מהתוכן. פעולה זו מגבירה את השימוש בסוללה.</string>
+ <string name="status_bar_double_tap_to_sleep_title">הקש בכדי לכבות מסך</string>
+ <string name="status_bar_double_tap_to_sleep_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="increasing_ring_volume_option_title">עוצמת צלצול מתגברת</string>
+ <string name="increasing_ring_min_volume_title">עוצמה התחלתית</string>
+ <string name="increasing_ring_ramp_up_time_title">אורך זמן ההגברה</string>
+ <string name="lockscreen_media_art_title">הצג תמונת אלבום/מדיה</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="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">10 שניות</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 שניות</string>
+ <string name="app_notification_sound_timeout_value_1_minute">דקה 1</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 דקות</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 דקות</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 דקות</string>
+ <string name="data_usage_app_restrict_wifi">נתוני Wi‑Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">אפשר שימוש בנתוני Wi‑Fi</string>
+ <string name="unlock_scramble_pin_layout_title">ערבב פריסה</string>
+ <string name="unlock_scramble_pin_layout_summary">ערבב פריסת PIN בעת פתיחת המכשיר</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>
+</resources>
diff --git a/res/values-ja/cm_strings.xml b/res/values-ja/cm_strings.xml
new file mode 100644
index 0000000..e4a357b
--- /dev/null
+++ b/res/values-ja/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">ルート状態でも Android デバッグを許可する</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">LineageOS 利用規約</string>
+ <string name="device_info_protected_single_press">タップして情報を表示</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="other">開発者向けオプションが有効になるまであと<xliff:g id="step_count">%1$d</xliff:g>ステップです。</item>
+ </plurals>
+ <string name="show_dev_on_cm">開発者向けオプションが有効になりました。</string>
+ <string name="show_dev_already_cm">必要ありません、開発者向けオプションは既に有効になっています。</string>
+ <string name="peak_refresh_rate_summary_custom">コンテンツに応じて、リフレッシュ レートを自動的に 60 Hz から %1$d Hz に変更します。電池使用量が増えます。</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">クライアントの VPN 使用を許可</string>
+ <string name="tethering_allow_vpn_upstreams_summary">この端末の VPN 接続をホットスポットのクライアントが送信接続に使うことを許可する</string>
+ <string name="increasing_ring_volume_option_title">着信音量の増幅</string>
+ <string name="increasing_ring_min_volume_title">開始音量</string>
+ <string name="increasing_ring_ramp_up_time_title">増幅時間</string>
+ <string name="lockscreen_media_art_title">メディアのカバーアートを表示</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="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>間に1回以上の通知音またはバイブレーションを許可しない</string>
+ <string name="app_notification_sound_timeout_value_none">無制限</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10秒</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30秒</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1分</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5分</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10分</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30分</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">VPN データ</string>
+ <string name="data_usage_app_restrict_vpn_summary">VPN データ使用量を有効化する</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi データ使用量</string>
+ <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi データ使用量を有効化します</string>
+ <string name="unlock_scramble_pin_layout_title">スクランブルレイアウト</string>
+ <string name="unlock_scramble_pin_layout_summary">端末のロック解除時にPINレイアウトをランダムにする</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_summary">GPS 始動時のパフォーマンスを大幅に向上できる衛星支援データをインターネットからダウンロードします。緊急電話のために、アシスト GPS は常に許可されています。</string>
+</resources>
diff --git a/res/values-ka/cm_strings.xml b/res/values-ka/cm_strings.xml
new file mode 100644
index 0000000..805cee2
--- /dev/null
+++ b/res/values-ka/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">ნებართვა, ძირეული უფლებით Android-გამართვისთვის</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">LineageOS – სამართლებრივი</string>
+ <string name="device_info_protected_single_press">შეეხეთ ინფორმაციისთვის</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">დარჩა <xliff:g id="step_count">%1$d</xliff:g> მცდელობა შემმუშავებლის პარამეტრების ჩართვამდე.</item>
+ <item quantity="other">დარჩა <xliff:g id="step_count">%1$d</xliff:g> მცდელობა შემმუშავებლის პარამეტრების ჩართვამდე.</item>
+ </plurals>
+ <string name="show_dev_on_cm">შემმუშავებლის პარამეტრები ჩართულია!</string>
+ <string name="show_dev_already_cm">საჭირო აღარაა, შემმუშავებლის პარამეტრები უკვე ამოქმედებულია.</string>
+ <string name="peak_refresh_rate_summary_custom">ავტომატურად ზრდის განახლების სიხშირეს 60-დან და %1$d ჰც-მდე გარკვეული კონტენტისთვის. გაზრდის ბატარეის მოხმარებას.</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">ნებართვა, გამოიყენონ VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">ნების მიცემა წვდომის წერტილთან მიერთებული კლიენტებისთვის, რომ შეძლონ ამ მოწყობილობის VPN-კავშირების გამოყენება აღმავალი მიმართულებით.</string>
+ <string name="increasing_ring_volume_option_title">ზარის ხმის მომატება</string>
+ <string name="increasing_ring_min_volume_title">საწყისი დონე</string>
+ <string name="increasing_ring_ramp_up_time_title">მომატების დრო</string>
+ <string name="lockscreen_media_art_title">ფაილის გარეკანის ჩვენება</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="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">10 წამში</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 წამში</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 წუთში</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 წუთში</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 წუთში</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 წუთში</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">VPN-კავშირი</string>
+ <string name="data_usage_app_restrict_vpn_summary">VPN-კავშირის გამოყენების შესაძლებლობა</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi ინტერნეტი</string>
+ <string name="data_usage_app_restrict_wifi_summary">WiFi-კავშირის გამოყენების შესაძლებლობა</string>
+ <string name="unlock_scramble_pin_layout_title">ღილაკების არევა</string>
+ <string name="unlock_scramble_pin_layout_summary">ღილაკების არეულად გამოჩენა PIN-კოდით გახსნისას</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_summary">დამხმარე თანამგზავრული მონაცემების ინტერნეტიდან ჩამოტვირთვა, რომ მეტად გაუმჯობესდეს შედეგიანობა GPS-ის ამუშავებისთანავე. გადაუდებელი ზარებისას GPS-ის დამხმარე მონაცემები მუდამ ნებადართულია.</string>
+</resources>
diff --git a/res/values-kab-rDZ/cm_strings.xml b/res/values-kab-rDZ/cm_strings.xml
new file mode 100644
index 0000000..e4d5930
--- /dev/null
+++ b/res/values-kab-rDZ/cm_strings.xml
@@ -0,0 +1,46 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Ayen-nniḍen</string>
+ <string name="advanced_keyboard_settings_title">Iɣewwaṛen leqqayen</string>
+ <string name="berry_black_theme_title">Aberkan zeddigen</string>
+ <string name="berry_black_theme_summary">Agilal aberkan zeddigen i usentel aberkan</string>
+ <string name="lineagelicense_title">Talɣut tusḍift n LineageOS</string>
+ <string name="show_dev_on_cm">Tremdeḍ iγewwaṛen n tneflit!</string>
+ <string name="show_dev_already_cm">Ulayɣer, tremdeḍ yakan iγewwaṛen n tneflit.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tekki akken ad yeṭṭes</string>
+ <string name="heads_up_notifications_enabled_title">Ilɣa yettafgen</string>
+ <string name="heads_up_notifications_enabled_summary">Sken-d ilɣa imezwura deg usfaylu ameẓẓyan yettifliwen</string>
+ <string name="high_touch_sensitivity_title">Aḥulfu ameqran n umaḍes</string>
+ <string name="high_touch_sensitivity_summary">Rnu ugar uḥulfu n ugdil ḥalam nezmer ad t-nesseqdec ula s iqeffazen</string>
+ <string name="increasing_ring_volume_option_title">A semɣeṛ n imesli n uṭenṭen</string>
+ <string name="increasing_ring_min_volume_title">Imesli n tazwara</string>
+ <string name="lock_settings_picker_pattern_size_message">Fren tiddi n wudlif</string>
+ <string name="lockpattern_settings_enable_error_path_title">Sken tuccḍa n uzenziɣ</string>
+ <string name="lockpattern_settings_enable_dots_title">Sken tinqiḍin n uzenziɣ</string>
+ <string name="app_notification_sound_timeout_value_none">Ulac tilisa</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 n tasinin</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 n tasinin</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 n tisdat</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 n tisdatin</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 n tisdatin</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 n tisdatin</string>
+ <string name="data_usage_app_restrict_all">Sireg anekcum ɣer uẓeṭṭa</string>
+ <string name="data_usage_app_restrict_all_summary">Rmed aseqdec n uẓeṭṭa</string>
+ <string name="data_usage_app_restrict_mobile">Isefka izirazen</string>
+ <string name="data_usage_app_restrict_wifi">Isefka Wi\u2011Fi</string>
+</resources>
diff --git a/res/values-kk/cm_strings.xml b/res/values-kk/cm_strings.xml
new file mode 100644
index 0000000..8ac067c
--- /dev/null
+++ b/res/values-kk/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Кейбір мазмұндар үшін жаңарту жиілігі 60-тан %1$d Гц-ке автоматты түрде артады. Батарея заряды тезірек таусылады.</string>
+</resources>
diff --git a/res/values-km/cm_strings.xml b/res/values-km/cm_strings.xml
new file mode 100644
index 0000000..a40f24f
--- /dev/null
+++ b/res/values-km/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">បង្កើនអត្រាផ្ទុកឡើងវិញដោយស្វ័យប្រវត្តិពី 60 ទៅ %1$d Hz សម្រាប់ខ្លឹមសារមួយចំនួន។ ប្រើប្រាស់ថ្មច្រើនជាងមុន។</string>
+</resources>
diff --git a/res/values-kn/cm_strings.xml b/res/values-kn/cm_strings.xml
new file mode 100644
index 0000000..ce8376f
--- /dev/null
+++ b/res/values-kn/cm_strings.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS ಕಾನೂನು</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">ನೀವು ಡೆವಲಪ್ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಸಕ್ರಿಯಗೊಳಿಸಲು <xliff:g id="step_count">%1$d</xliff:g> ಹಂತದಷ್ತು ದೂರವಿದ್ದೀರಿ.</item>
+ <item quantity="other">ನೀವು ಡೆವಲಪ್ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸ್ ಸಕ್ರಿಯಗೊಳಿಸಲು <xliff:g id="step_count">%1$d</xliff:g> ಹಂತಗಳಷ್ಟು ದೂರವಿದ್ದೀರಿ.</item>
+ </plurals>
+ <string name="show_dev_on_cm">ನೀವು ಡೆವಲಪ್ಮೆಂಟ್ ಸೆಟ್ಘಿಂಗ್ಸನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೀರಿ!</string>
+ <string name="show_dev_already_cm">ಅಗತ್ಯವಿಲ್ಲ, ನೀವು ಈಗಾಗಲೇ ಡೆವಲಪ್ಮೆಂಟ್ ಸೆಟ್ಟಿಂಗ್ಸನ್ನು ಸಕ್ರಿಯಗೊಳಿಸಿದ್ದೀರಿ.</string>
+ <string name="peak_refresh_rate_summary_custom">ಕೆಲವು ವಿಷಯಗಳಿಗೆ ರಿಫ್ರೆಶ್ ರೇಟ್ ಅನ್ನು ಸ್ವಯಂಚಾಲಿತವಾಗಿ 60 ರಿಂದ %1$d ಕ್ಕೆ ಏರಿಸುತ್ತದೆ. ಬ್ಯಾಟರಿ ಬಳಕೆಯನ್ನು ಹೆಚ್ಚಿಸುತ್ತದೆ.</string>
+ <string name="status_bar_double_tap_to_sleep_title">ನಿದ್ರಿಸಲು ಮುಟ್ಟು</string>
+ <string name="status_bar_double_tap_to_sleep_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="increasing_ring_volume_option_title">ವೃದ್ಧಿಯಾಗುವ ಗಂಟೆನಾದ</string>
+ <string name="increasing_ring_min_volume_title">ಆರಂಭ ವಾಲ್ಯೂಂ</string>
+ <string name="increasing_ring_ramp_up_time_title">ಚಲನಶೀಲ ಅವಧಿ</string>
+ <string name="lockscreen_media_art_title">ಮಾಧ್ಯಮದ ಕವಚ ಕಲೆ ಪ್ರದರ್ಶಿಸು</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="data_usage_app_restrict_wifi">Wi\u2011Fi ದತ್ತಾಂಶ</string>
+ <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi ದತ್ತಾಂಶದ ಬಳಕೆ ಸಶಕ್ತಿಸು</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>
+</resources>
diff --git a/res/values-ko/cm_strings.xml b/res/values-ko/cm_strings.xml
new file mode 100644
index 0000000..9e56f00
--- /dev/null
+++ b/res/values-ko/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">ADB와 같은 디버깅 모드 사용시 루트 권한을 사용합니다.</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">LineageOS 법적 고지</string>
+ <string name="device_info_protected_single_press">눌러서 정보 보기</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="other">개발자 설정을 활성화하려면 <xliff:g id="step_count">%1$d</xliff:g>회 더 누르세요.</item>
+ </plurals>
+ <string name="show_dev_on_cm">개발자 설정이 활성화되었습니다.</string>
+ <string name="show_dev_already_cm">이미 개발자 설정이 활성화되어 있습니다.</string>
+ <string name="peak_refresh_rate_summary_custom">일부 콘텐츠의 새로고침 빈도를 자동으로 60Hz에서 %1$dHz로 늘립니다. 이렇게 하면 배터리 사용량이 증가합니다.</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">클라이언트가 VPN을 사용하도록 허용</string>
+ <string name="tethering_allow_vpn_upstreams_summary">핫스팟이나 테더링 클라이언트가 연결성 향상을 위해 내 장치의 VPN 연결을 사용하도록 허용합니다.</string>
+ <string name="increasing_ring_volume_option_title">점점 커지는 벨 소리</string>
+ <string name="increasing_ring_min_volume_title">시작 벨소리</string>
+ <string name="increasing_ring_ramp_up_time_title">소리 커짐 시간</string>
+ <string name="lockscreen_media_art_title">앨범 커버 이미지 표시</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="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">10초</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30초</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1분</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5분</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10분</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30분</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">VPN 데이터</string>
+ <string name="data_usage_app_restrict_vpn_summary">VPN 데이터 사용 허용</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 데이터</string>
+ <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi 데이터 사용 허용</string>
+ <string name="unlock_scramble_pin_layout_title">레이아웃 섞기</string>
+ <string name="unlock_scramble_pin_layout_summary">장치를 잠금 해제할 때 PIN 레이아웃 섞기</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>
+</resources>
diff --git a/res/values-ku/cm_strings.xml b/res/values-ku/cm_strings.xml
new file mode 100644
index 0000000..c8d9ea2
--- /dev/null
+++ b/res/values-ku/cm_strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">یاسای وەشانەکە</string>
+ <string name="show_dev_on_cm">تۆ ڕێکخستنی گەشەپێدەریت چالاککرد!</string>
+ <string name="show_dev_already_cm">پێویست ناکا، تۆ پێشتر چالاکت کردوە.</string>
+ <string name="high_touch_sensitivity_title">هەستیاری ساوانی بەرز</string>
+ <string name="high_touch_sensitivity_summary">هەستیاری ساوڕوونما برز بکەوە، ئەوە ئەتوانرێ بەکاربهێنرێت کاتێک دەستەوانت لە دەستدایە</string>
+ <string name="increasing_ring_volume_option_title">زیادکردنی دەنگی زەنگ</string>
+ <string name="increasing_ring_min_volume_title">دەستپێکردنی دەنگ</string>
+ <string name="increasing_ring_ramp_up_time_title">هەڵسانی کات</string>
+ <string name="lockpattern_settings_enable_error_path_title">پیشاندانی هەڵەی چنراو</string>
+ <string name="lockpattern_settings_enable_dots_title">پیشاندانی خاڵەکانی چنراو</string>
+ <string name="unlock_scramble_pin_layout_title">تهختهی تێکهڵ</string>
+ <string name="unlock_scramble_pin_layout_summary">تهختهی PIN تێکهڵ لهکاتی کردنهوهی ئامێرهکه</string>
+ <string name="proximity_wake_title">قهدهغهکردنی ههستانی ڕێکهوت</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>
+</resources>
diff --git a/res/values-ky/cm_strings.xml b/res/values-ky/cm_strings.xml
new file mode 100644
index 0000000..19fad56
--- /dev/null
+++ b/res/values-ky/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Айрым мазмундар үчүн жаңыртуу ылдамдыгын 60 Герцтен %1$d Герцке көтөрөт. Батареянын колдонулушун жогорулатат.</string>
+</resources>
diff --git a/res/values-lo/cm_strings.xml b/res/values-lo/cm_strings.xml
new file mode 100644
index 0000000..984f9f0
--- /dev/null
+++ b/res/values-lo/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">ເພີ່ມຣີເຟຣຊເຣດຈາກ 60 ເປັນ %1$d Hz ສຳລັບບາງເນື້ອຫາໂດຍອັດຕະໂນມັດ. ເພີ່ມການນຳໃຊ້ແບັດເຕີຣີ.</string>
+</resources>
diff --git a/res/values-lt/cm_strings.xml b/res/values-lt/cm_strings.xml
new file mode 100644
index 0000000..f062e07
--- /dev/null
+++ b/res/values-lt/cm_strings.xml
@@ -0,0 +1,36 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">Teisinė „LineageOS“ informacija</string>
+ <string name="show_dev_on_cm">Jūs įgalinote kūrėjo parinktys!</string>
+ <string name="show_dev_already_cm">Nereikia, jūs jau įgalinote kūrėjo parinktys.</string>
+ <string name="peak_refresh_rate_summary_custom">Automatiškai padidinamas kai kurio turinio atnaujinimo dažnis nuo 60 iki %1$d Hz. Vartojama daugiau akumuliatoriaus energijos.</string>
+ <string name="high_touch_sensitivity_title">Didelis lietimo jautrumas</string>
+ <string name="high_touch_sensitivity_summary">Padidinti liečiamojo ekrano jautrumą tam, kad juo būtų galima naudotis dėvint pirštines</string>
+ <string name="increasing_ring_volume_option_title">Didėjantis skambėjimo garsumas</string>
+ <string name="increasing_ring_min_volume_title">Pradinis garsumas</string>
+ <string name="increasing_ring_ramp_up_time_title">Didėjimo laikas</string>
+ <string name="lockpattern_settings_enable_error_path_title">Rodyti modelio klaidą</string>
+ <string name="lockpattern_settings_enable_dots_title">Rodyti modelio taškus</string>
+ <string name="unlock_scramble_pin_layout_title">Sumaišyti išdėstymą</string>
+ <string name="unlock_scramble_pin_layout_summary">Atrakinant įrenginį sumaišyti PIN išdėstymą</string>
+ <string name="proximity_wake_title">Išvengti atsitiktinio pažadinimo</string>
+ <string name="touchscreen_hovering_title">Jutiklinio ekrano slankiojimas</string>
+ <string name="touchscreen_hovering_summary">Leidžia slankioti ekraną kaip pelę internetinėse naršyklėse, nuotoliniuose staliniuose kompiuteriuose ir kt.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Pažadinti, kai prijungiama</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Įjungti ekraną, kai prijungiamas ar atjungiamas maitinimo šaltinis</string>
+</resources>
diff --git a/res/values-lu/cm_strings.xml b/res/values-lu/cm_strings.xml
new file mode 100644
index 0000000..b207ed8
--- /dev/null
+++ b/res/values-lu/cm_strings.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">Rechtlech Hiweiser iwwer LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Du bass <xliff:g id="step_count">%1$d</xliff:g> Schrëtt dovun ewech, d\'Entwéckleroptiounen z\'aktivéieren.</item>
+ <item quantity="other">Du bass <xliff:g id="step_count">%1$d</xliff:g> Schrëtter dovun ewech, d\'Entwéckleroptiounen z\'aktivéieren.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Du hues d\'Entwéckleroptiounen aktivéiert!</string>
+ <string name="show_dev_already_cm">Net néideg, du hues d\'Entwécklungsoptioune schonn aktivéiert.</string>
+ <string name="high_touch_sensitivity_title">Héich Beréierungsempfindlechkeet</string>
+ <string name="high_touch_sensitivity_summary">Touch-Empfindlechkeet erhéijen, fir den Touchscreen och mat Hännsche benotzen ze kënnen</string>
+ <string name="increasing_ring_volume_option_title">Usteigend Schelltounlautstäerkt</string>
+ <string name="increasing_ring_min_volume_title">Start-Lautstäerkt</string>
+ <string name="increasing_ring_ramp_up_time_title">Ulafzäit</string>
+ <string name="lockpattern_settings_enable_error_path_title">Musterfeeler uweisen</string>
+ <string name="lockpattern_settings_enable_dots_title">Musterpunkten uweisen</string>
+ <string name="unlock_scramble_pin_layout_title">Zoufälleg Unuerdnung</string>
+ <string name="unlock_scramble_pin_layout_summary">Bei all Entspärversuch d\'Zifferereiefolleg zoufälleg nei wielen</string>
+ <string name="proximity_wake_title">Onbeofsiichtegt waakreg maache verhënneren</string>
+ <string name="touchscreen_hovering_title">Iwwerschwiewe vum Touchscreen</string>
+ <string name="touchscreen_hovering_summary">Erméiglecht et, mam Fanger iwwer dem Schierm ze schwieren an den Zeiger wéi mat enger Maus ze beweegen</string>
+ <string name="wake_when_plugged_or_unplugged_title">Beim Astieche waakreg maachen</string>
+ <string name="wake_when_plugged_or_unplugged_summary">De Schierm uschalte wann eng Stroumquell ugeschloss oder getrennt gëtt</string>
+</resources>
diff --git a/res/values-lv/cm_strings.xml b/res/values-lv/cm_strings.xml
new file mode 100644
index 0000000..356a2cf
--- /dev/null
+++ b/res/values-lv/cm_strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS atbildība</string>
+ <string name="peak_refresh_rate_summary_custom">Noteikta satura atsvaidzināšanas biežums tiek automātiski palielināts no 60 līdz %1$d Hz. Tas palielina akumulatora lietojumu.</string>
+ <string name="high_touch_sensitivity_title">Augsta pieskāriena jutība</string>
+ <string name="high_touch_sensitivity_summary">Palielināt skārienekrāna jutību, lai to varētu lietot, valkājot cimdus</string>
+ <string name="unlock_scramble_pin_layout_title">Samaisīt izkārtojumu</string>
+ <string name="unlock_scramble_pin_layout_summary">Atslēdzot iekārtu, samaisīt PIN izkārtojumu</string>
+ <string name="proximity_wake_title">Novērsiet nejaušu pamodināšanu</string>
+ <string name="wake_when_plugged_or_unplugged_title">Pamodināt, iespraužot vadu</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Pievienojot, vai atvienojot no barošanas avota, ieslēgt ekrānu</string>
+</resources>
diff --git a/res/values-mk/cm_strings.xml b/res/values-mk/cm_strings.xml
new file mode 100644
index 0000000..1a9e079
--- /dev/null
+++ b/res/values-mk/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Автоматски ја зголемува зачестеноста на освежување од 60 на %1$d Hz за некои содржини. Го зголемува користењето на батеријата.</string>
+</resources>
diff --git a/res/values-ml/cm_strings.xml b/res/values-ml/cm_strings.xml
new file mode 100644
index 0000000..50c68c1
--- /dev/null
+++ b/res/values-ml/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS ലീഗല്</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കുന്നതിന് നിങ്ങള് %1$d ഘട്ടം അകലെയാണ്.</item>
+ <item quantity="other">ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കുന്നതിന് നിങ്ങള് <xliff:g id="step_count">%1$d</xliff:g> ഘട്ടങ്ങൾ അകലെയാണ്.</item>
+ </plurals>
+ <string name="show_dev_on_cm">നിങ്ങൾ ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കി!</string>
+ <string name="show_dev_already_cm">ആവശ്യമില്ല, നിങ്ങൾ ഇതിനകം ഡെവലപ്പ്മെന്റ് ക്രമീകരണങ്ങൾ പ്രാപ്തമാക്കി.</string>
+ <string name="peak_refresh_rate_summary_custom">ചില ഉള്ളടക്കങ്ങളുടെ പുതുക്കൽ നിരക്ക് 60 Hz-ൽ നിന്നും %1$d Hz-ലേക്ക് സ്വയമേവ ഉയർത്തുന്നു. ബാറ്ററി ഉപയോഗം വർദ്ധിപ്പിക്കുന്നു.</string>
+ <string name="high_touch_sensitivity_title">ഉയര്ന്ന സ്പര്ശന സംവേദനക്ഷമത</string>
+ <string name="high_touch_sensitivity_summary">കയ്യുറകൾ ധരിച്ചിരിക്കുമ്പോള് ഉപയോഗിക്കുന്നതിനായി ടച്ച്സ്ക്രീൻ സെന്സിറ്റിവിറ്റി വര്ദ്ധിപ്പിക്കുക</string>
+ <string name="increasing_ring_volume_option_title">വര്ദ്ധിക്കുന്ന റിംഗ് വോളിയം</string>
+ <string name="increasing_ring_min_volume_title">വോളിയം ആരംഭിക്കുക</string>
+ <string name="increasing_ring_ramp_up_time_title">റാംപ്-അപ്പ് സമയം</string>
+ <string name="lockpattern_settings_enable_error_path_title">പാറ്റേൺ പിശക് ദൃശ്യമാക്കുക</string>
+ <string name="lockpattern_settings_enable_dots_title">ഡോട്ടുകൾ പാറ്റേൺ ദൃശ്യമാക്കുക</string>
+ <string name="unlock_scramble_pin_layout_title">സ്ക്രാമ്പിള് ചെയ്ത ലേഔട്ട്</string>
+ <string name="unlock_scramble_pin_layout_summary">ഉപകരണം അൺലോക്ക് ചെയ്യുമ്പോൾ PIN ലേയൌട്ട് സ്ക്രാമ്പിള് ചെയ്യുക</string>
+ <string name="proximity_wake_title">യാദൃച്ഛികമായി സജീവമാകുന്നത് തടയുക</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>
+</resources>
diff --git a/res/values-mn/cm_strings.xml b/res/values-mn/cm_strings.xml
new file mode 100644
index 0000000..5fc5121
--- /dev/null
+++ b/res/values-mn/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Зарим контентын сэргээх хурдыг автоматаар 60-с %1$d Гц болгож өсгөнө. Батарей ашиглалтыг нэмэгдүүлнэ.</string>
+</resources>
diff --git a/res/values-mr/cm_strings.xml b/res/values-mr/cm_strings.xml
new file mode 100644
index 0000000..bc8b5bf
--- /dev/null
+++ b/res/values-mr/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS लिगल</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">विकास सेटिंग्ज सक्षम करण्यापासून तुम्ही <xliff:g id="step_count">%1$d</xliff:g> पायरी अनुपस्थित आहात.</item>
+ <item quantity="other">विकास सेटिंग्ज सक्षम करण्यापासून तुम्ही <xliff:g id="step_count">%1$d</xliff:g> पायऱ्या अनुपस्थित आहात.</item>
+ </plurals>
+ <string name="show_dev_on_cm">तुम्ही विकास सेटिंग्ज सक्षम केली आहेत!</string>
+ <string name="show_dev_already_cm">गरज नाही, तुम्ही आधीच विकास सेटिंग्ज सक्षम केली आहेत.</string>
+ <string name="peak_refresh_rate_summary_custom">काही आशयासाठी रिफ्रेश रेट ६० ते ९० Hz पर्यंत आपोआप वाढवते. बॅटरी वापर वाढवते.</string>
+ <string name="high_touch_sensitivity_title">उच्च स्पर्श संवेदनक्षमता</string>
+ <string name="high_touch_sensitivity_summary">टचस्क्रीन संवेदनक्षमता वाढवा म्हणजे ग्लोव्ज घातलेले असताना ती वापरता येईल</string>
+ <string name="increasing_ring_volume_option_title">रिंग ध्वनी वाढवणे</string>
+ <string name="increasing_ring_min_volume_title">प्रारंभ ध्वनी</string>
+ <string name="increasing_ring_ramp_up_time_title">रॅम्प-अप वेळ</string>
+ <string name="lockpattern_settings_enable_error_path_title">पॅटर्न त्रुटी दर्शवा</string>
+ <string name="lockpattern_settings_enable_dots_title">पॅटर्न डॉट्स दर्शवा</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="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>
+</resources>
diff --git a/res/values-ms/cm_strings.xml b/res/values-ms/cm_strings.xml
new file mode 100644
index 0000000..fa154a3
--- /dev/null
+++ b/res/values-ms/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Meningkatkan kadar muat semula daripada 60 kepada %1$d Hz untuk sesetengah kandungan secara automatik. Meningkatkan penggunaan bateri.</string>
+</resources>
diff --git a/res/values-my/cm_strings.xml b/res/values-my/cm_strings.xml
new file mode 100644
index 0000000..f231e21
--- /dev/null
+++ b/res/values-my/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">အကြောင်းအရာအချို့အတွက် ပြန်လည်စတင်နှုန်းကို ၆၀ မှ ၉၀ Hz သို့ အလိုအလျောက် တိုးပေးသည်။ ဘက်ထရီ အသုံးပြုမှု တိုးလာပါမည်။</string>
+</resources>
diff --git a/res/values-nb/cm_strings.xml b/res/values-nb/cm_strings.xml
new file mode 100644
index 0000000..20e8e61
--- /dev/null
+++ b/res/values-nb/cm_strings.xml
@@ -0,0 +1,53 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS juridisk</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Du er nå <xliff:g id="step_count"> %1$d</xliff:g> skritt fra aktivering av utviklerinnstillinger.</item>
+ <item quantity="other">Du er nå <xliff:g id="step_count"> %1$d</xliff:g> skritt fra aktivering av utviklerinnstillinger.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Du har aktivert innstillinger for utviklere!</string>
+ <string name="show_dev_already_cm">Ikke nødvendig, du allerede har aktivert utviklingsinnstillinger.</string>
+ <string name="peak_refresh_rate_summary_custom">Øker oppdateringsfrekvensen automatisk fra 60 til %1$d Hz for noe innhold. Øker batteribruken.</string>
+ <string name="heads_up_notifications_enabled_title">Varselvindu</string>
+ <string name="heads_up_notifications_enabled_summary">Vis prioriterte varsler i et lite flytende vindu</string>
+ <string name="high_touch_sensitivity_title">Høy touch sensitivitet</string>
+ <string name="high_touch_sensitivity_summary">Øk berøringsskjermens følsomhet slik at den kan brukes med hansker</string>
+ <string name="increasing_ring_volume_option_title">Økende ringevolum</string>
+ <string name="increasing_ring_min_volume_title">Start volum</string>
+ <string name="increasing_ring_ramp_up_time_title">Ramp-up tid</string>
+ <string name="lockscreen_media_art_title">Vis media coverbilde</string>
+ <string name="lock_settings_picker_pattern_size_message">Velg størrelse på mønster</string>
+ <string name="lockpattern_settings_enable_error_path_title">Vis feil</string>
+ <string name="lockpattern_settings_enable_dots_title">Vis mønster prikker</string>
+ <string name="app_notification_sound_timeout_title">Minimum tid imellom varsellyder</string>
+ <string name="app_notification_sound_timeout_summary_template">Gi lyder og vibrasjoner bare lov å ringe hvert <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Ingen begrensning</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minutt</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutter</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutter</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutter</string>
+ <string name="unlock_scramble_pin_layout_title">Endre layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Endre PIN layout når enheten låses opp</string>
+ <string name="proximity_wake_title">Hindre utilsiktet vekking</string>
+ <string name="touchscreen_hovering_title">Berøringsskjerm hovring</string>
+ <string name="touchscreen_hovering_summary">Lar deg hovre over skjermen som en mus på en nettleser, eksternt skrivebord osv</string>
+ <string name="wake_when_plugged_or_unplugged_title">Våkne ved tilkobling av strøm</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Skjermen slås på når du kobler til eller kobler fra en strømkilde</string>
+</resources>
diff --git a/res/values-ne/cm_strings.xml b/res/values-ne/cm_strings.xml
new file mode 100644
index 0000000..49e589e
--- /dev/null
+++ b/res/values-ne/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">केही सामग्रीका लागि रिफ्रेस रेट स्वतः ६० हर्ट्जबाट बढाएर ९० हर्ट्ज बनाउँछ। ब्याट्रीको उपयोग बढाउँछ।</string>
+</resources>
diff --git a/res/values-nl/cm_strings.xml b/res/values-nl/cm_strings.xml
new file mode 100644
index 0000000..992227e
--- /dev/null
+++ b/res/values-nl/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extra\'s</string>
+ <string name="advanced_keyboard_settings_title">Geavanceerde instellingen</string>
+ <string name="adb_enable_root">Geroote foutopsporing</string>
+ <string name="adb_enable_summary_root">Uitvoeren van Android foutopsporing als root toestaan</string>
+ <string name="backup_transport_setting_label">Wijzig back-up provider</string>
+ <string name="backup_transport_title">Kies back-up provider</string>
+ <string name="berry_black_theme_title">Puur zwart</string>
+ <string name="berry_black_theme_summary">Puur zwarte achtergrond voor donker thema</string>
+ <string name="lineagelicense_title">Juridische informatie van LineageOS</string>
+ <string name="device_info_protected_single_press">Tik om info te tonen</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">U bent nog <xliff:g id="step_count">%1$d</xliff:g> stap verwijderd van de opties voor ontwikkelaars.</item>
+ <item quantity="other">U bent nog <xliff:g id="step_count">%1$d</xliff:g> stappen verwijderd van de opties voor ontwikkelaars.</item>
+ </plurals>
+ <string name="show_dev_on_cm">U hebt de opties voor ontwikkelaars ingeschakeld!</string>
+ <string name="show_dev_already_cm">Niet nodig, u hebt de opties voor ontwikkelaars al ingeschakeld.</string>
+ <string name="peak_refresh_rate_summary_custom">Hiermee wordt de vernieuwingssnelheid automatisch verhoogd van 60 naar %1$d Hz voor bepaalde content. Het batterijgebruik neemt toe.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tikken om te slapen</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dubbeltikken op de statusbalk of schermvergrendeling om het scherm uit te schakelen</string>
+ <string name="high_touch_polling_rate_title">Hoge touch polling snelheid</string>
+ <string name="high_touch_polling_rate_summary">Verhoog touchscreen polling snelheid</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Prioriteitsmeldingen weergeven in klein zwevend venster</string>
+ <string name="high_touch_sensitivity_title">Hoge aanraakgevoeligheid</string>
+ <string name="high_touch_sensitivity_summary">Gevoeligheid van het scherm verhogen, zodat het bediend kan worden met handschoenen</string>
+ <string name="tethering_allow_vpn_upstreams_title">Clients toestaan om VPN\'s te gebruiken</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Sta hotspot-gebruikers toe om de VPN-verbindingen van dit apparaat te gebruiken om te uploaden</string>
+ <string name="increasing_ring_volume_option_title">In volume toenemende beltoon</string>
+ <string name="increasing_ring_min_volume_title">Startvolume</string>
+ <string name="increasing_ring_ramp_up_time_title">Ophoogtijd</string>
+ <string name="lockscreen_media_art_title">Albumhoezen weergeven</string>
+ <string name="lock_settings_picker_pattern_size_message">Grootte patroon kiezen</string>
+ <string name="lockpattern_settings_enable_error_path_title">Patroonfout weergeven</string>
+ <string name="lockpattern_settings_enable_dots_title">Patroonknoppen weergeven</string>
+ <string name="max_refresh_rate_title">Piek vernieuwingsfrequentie</string>
+ <string name="min_refresh_rate_title">Minimale verversingsfrequentie</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Vind de vingerafdruksensor op de voorkant van uw tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Vind de vingerafdruksensor op de voorkant van uw apparaat.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Vind de vingerafdruksensor op de voorkant van uw telefoon.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Vind de vingerafdruksensor op de achterkant van uw tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Vind de vingerafdrukscanner aan de linkerkant van uw apparaat.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Vind de vingerafdruksensor op de achterkant van uw telefoon.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Vind de vingerafdruksensor op de zijkant van uw tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Vind de vingerafdruksensor aan de zijkant van uw apparaat.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Vind de vingerafdruksensor op de zijkant van uw telefoon.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Raak de sensor aan op de voorkant van uw tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Raak de sensor aan op de voorkant van uw tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Raak de sensor aan op de voorkant van uw telefoon.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Raak de sensor aan op de achterkant van uw tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Raak de sensor aan op de achterkant van uw apparaat.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Raak de sensor aan op de achterkant van uw telefoon.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Raak de sensor aan de zijkant van uw tablet aan.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Raak de sensor aan de zijkant van uw apparaat.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Raak de sensor aan de zijkant van uw telefoon.</string>
+ <string name="show_navbar_hint_title">Navigatie hint</string>
+ <string name="show_navbar_hint_summary">Toon navigatiehintbalk aan de onderkant van het scherm</string>
+ <string name="app_notification_sound_timeout_title">Minimale tijd tussen meldingsgeluiden</string>
+ <string name="app_notification_sound_timeout_summary_template">Geluid of trillen niet meer dan één keer per <xliff:g id="duration">%1$s</xliff:g> toestaan</string>
+ <string name="app_notification_sound_timeout_value_none">Geen beperking</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconden</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconden</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minuut</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuten</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuten</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuten</string>
+ <string name="auto_brightness_one_shot_title">Eén schot automatische helderheid</string>
+ <string name="auto_brightness_one_shot_summary">Helderheid aanpassing zal alleen plaatsvinden op het moment dat het scherm is ingeschakeld</string>
+ <string name="data_usage_app_restrict_all">Netwerktoegang toestaan</string>
+ <string name="data_usage_app_restrict_all_summary">Schakel netwerkgebruik in</string>
+ <string name="data_usage_app_restrict_mobile">Mobiele data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Gebruik van mobiele data inschakelen</string>
+ <string name="data_usage_app_restrict_vpn">VPN-gegevens</string>
+ <string name="data_usage_app_restrict_vpn_summary">Toegang tot VPN-gegevens toestaan</string>
+ <string name="data_usage_app_restrict_wifi">Gegevens via wifi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Gebruik van gegevens via wifi inschakelen</string>
+ <string name="unlock_scramble_pin_layout_title">Lay-out husselen</string>
+ <string name="unlock_scramble_pin_layout_summary">PIN-lay-out door elkaar husselen bij apparaat ontgrendelen</string>
+ <string name="proximity_wake_title">Per ongeluk ontwaken voorkomen</string>
+ <string name="proximity_wake_summary">Nabijheidssensor gebruiken voorafgaand aan ontwaken van scherm</string>
+ <string name="touchscreen_gesture_settings_title">Schermgebaren</string>
+ <string name="touchscreen_gesture_settings_summary">Diverse schermgebaren gebruiken voor snelle acties</string>
+ <string name="touchscreen_hovering_title">Zweven boven scherm</string>
+ <string name="touchscreen_hovering_summary">Met uw vinger boven het zwerm zweven, zoals een muis in browsers, bureaublad op afstand, etc.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Ontwaken door lader</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Scherm aan bij het aansluiten of loskoppelen van een lader</string>
+ <string name="fast_charging_title">Snelladen</string>
+ <string name="fast_charging_summary">Schakel uit om de warmteproductie van het apparaat te verminderen tijdens het opladen of om de levensduur van de batterij te verlengen</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Vingerafdruksensor lang indrukken om telefoon te ontgrendelen</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Vingerafdruksensor lang indrukken om tablet te ontgrendelen</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Vingerafdruksensor lang indrukken om apparaat te ontgrendelen</string>
+ <string name="ambient_display_screen_off_udfps_summary">Houdt de vingerafdruksensor lang ingedrukt om het scherm aan te zetten en te ontgrendelen.</string>
+ <string name="storage_warning_internal">Waarschuwing: Deze optie werkt mogelijk niet goed of leidt tot gegevensverlies en wordt daarom niet aangeraden!</string>
+ <string name="assisted_gps_summary">Download satellietondersteuningsgegevens van het internet die de opstartprestaties van GPS aanzienlijk kunnen verbeteren. Voor noodoproepen is assisted GPS altijd toegestaan.</string>
+</resources>
diff --git a/res/values-or/cm_strings.xml b/res/values-or/cm_strings.xml
new file mode 100644
index 0000000..204d2cc
--- /dev/null
+++ b/res/values-or/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">ସିଆନୋଜେନ୍ମୋଡ୍ ଲିଗାଲ୍</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">ଉନ୍ନତି ସେଟିଂସମୂହ ସଷମ କରାଯିବା ଠାରୁ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="step_count">%1$d</xliff:g> ପର୍ଯ୍ୟାୟ ଦୂରରେ ଅଛନ୍ତି।</item>
+ <item quantity="other">ଉନ୍ନତି ସେଟିଂସମୂହ ସଷମ କରାଯିବା ଠାରୁ ଆପଣ ବର୍ତ୍ତମାନ <xliff:g id="step_count">%1$d</xliff:g> ପର୍ଯ୍ୟାୟ ଦୂରରେ ଅଛନ୍ତି।</item>
+ </plurals>
+ <string name="show_dev_on_cm">ଆପଣ ଉନ୍ନତି ସେଟିଂସ୍ ସଷମ କରିଛନ୍ତି!</string>
+ <string name="show_dev_already_cm">ଆବଶ୍ୟକ ନାହିଁ, ଆପଣ ଆଗରୁ ଉନ୍ନତି ସେଟିଂସମୂହ ସଷମ କରିସାରିଛନ୍ତି।</string>
+ <string name="peak_refresh_rate_summary_custom">କିଛି ବିଷୟବସ୍ତୁ ପାଇଁ ରିଫ୍ରେସ୍ ରେଟ୍ ସ୍ୱଚାଳିତ ଭାବରେ 60ରୁ %1$d Hz ପର୍ଯ୍ୟନ୍ତ ବଢ଼ାଇଥାଏ। ବ୍ୟାଟେରୀର ବ୍ୟବହାର ବଢ଼ାଇଥାଏ।</string>
+ <string name="high_touch_sensitivity_title">ଅଧିକ ସ୍ପର୍ଶ ତୀବ୍ରତା</string>
+ <string name="high_touch_sensitivity_summary">ଟଚ୍ସ୍କ୍ରିନ୍ ତୀବ୍ରତା ବଢାନ୍ତୁ ଯାହା ଫଳରେ ତାହା ଗ୍ଲୋବ୍ସ ପିଂଧିବା ସମୟରେ ବ୍ୟବହାର କରାଯାଇପାରିବ</string>
+ <string name="increasing_ring_volume_option_title">ରିଙ୍ଗ୍ ଭୋଲ୍ୟୁମ୍ ବଢାଯାଉଛି</string>
+ <string name="increasing_ring_min_volume_title">ଭୋଲ୍ୟୁମ୍ ଆରଭ କରନ୍ତୁ</string>
+ <string name="increasing_ring_ramp_up_time_title">ସମୟ ରାମ୍ପ୍-ଅପ୍ କରନ୍ତୁ</string>
+ <string name="lockpattern_settings_enable_error_path_title">ପ୍ୟାଟର୍ଣ୍ଣ ତ୍ରୁଟି ଦେଖାନ୍ତୁ</string>
+ <string name="lockpattern_settings_enable_dots_title">ପାଟର୍ଣ୍ଣ ଡ୍ଟ୍ସ ଦେଖାନ୍ତୁ</string>
+ <string name="unlock_scramble_pin_layout_title">ସ୍କ୍ରାମେବୁଲ୍ ଲେଆଉଟ୍</string>
+ <string name="unlock_scramble_pin_layout_summary">ଡିଭାଇସ୍ ଅ୍ନ୍ଲକ୍ କରିବା ସମୟରେ ସ୍କ୍ରାମେବୁଲ୍ PIN ଲେଆଉଟ୍</string>
+ <string name="proximity_wake_title">ର୍ଆକ୍ସିଡେଂଟାଲ୍ ୱେକ୍-ଅପ୍ ପ୍ରତିରୋଧ କରନ୍ତୁ</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>
+</resources>
diff --git a/res/values-pa/cm_strings.xml b/res/values-pa/cm_strings.xml
new file mode 100644
index 0000000..3da1740
--- /dev/null
+++ b/res/values-pa/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">ਸਵੈਚਲਿਤ ਤੌਰ \'ਤੇ ਕੁਝ ਸਮੱਗਰੀਆਂ ਲਈ ਰਿਫ੍ਰੈਸ਼ ਦਰ ਨੂੰ 60 ਤੋਂ ਵਧਾ ਕੇ %1$d Hz ਕਰ ਦਿੰਦਾ ਹੈ। ਬੈਟਰੀ ਵਰਤੋਂ ਵੱਧ ਜਾਂਦੀ ਹੈ।</string>
+</resources>
diff --git a/res/values-pl/cm_strings.xml b/res/values-pl/cm_strings.xml
new file mode 100644
index 0000000..1b1e53d
--- /dev/null
+++ b/res/values-pl/cm_strings.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Dodatki</string>
+ <string name="advanced_keyboard_settings_title">Ustawienia zaawansowane</string>
+ <string name="adb_enable_root">Debugowanie jako root</string>
+ <string name="adb_enable_summary_root">Zezwól na debugowanie Androida jako root</string>
+ <string name="backup_transport_setting_label">Zmień dostawcę kopii zapasowej</string>
+ <string name="backup_transport_title">Wybierz dostawcę kopii zapasowej</string>
+ <string name="berry_black_theme_title">Czysta czerń</string>
+ <string name="berry_black_theme_summary">Czysta czerń tła dla ciemnego motywu</string>
+ <string name="lineagelicense_title">Informacje prawne LineageOS</string>
+ <string name="device_info_protected_single_press">Dotknij, aby wyświetlić informacje</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Jesteś o <xliff:g id="step_count">%1$d</xliff:g> krok od włączenia ustawień programisty.</item>
+ <item quantity="few">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroki od włączenia ustawień programisty.</item>
+ <item quantity="many">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroków od włączenia ustawień programisty.</item>
+ <item quantity="other">Jesteś <xliff:g id="step_count">%1$d</xliff:g> kroków od włączenia ustawień programisty.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Aktywowano opcje programistyczne!</string>
+ <string name="show_dev_already_cm">Wystarczy, już jesteś programistą.</string>
+ <string name="peak_refresh_rate_summary_custom">W przypadku niektórych treści automatycznie podwyższa częstotliwość odświeżania z 60 na %1$d Hz. Zwiększa zużycie baterii.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Dotknij, by uśpić</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dotknij dwukrotnie na pasku statusu lub ekranie blokady, aby wyłączyć ekran</string>
+ <string name="high_touch_polling_rate_title">Wysoka szybkość próbkowania dotykowego</string>
+ <string name="high_touch_polling_rate_summary">Zwiększ szybkość próbkowania ekranu dotykowego</string>
+ <string name="heads_up_notifications_enabled_title">Wyskakujące powiadomienia</string>
+ <string name="heads_up_notifications_enabled_summary">Wyświetlaj ważne powiadomienia w małym oknie pływającym</string>
+ <string name="high_touch_sensitivity_title">Wysoka czułość dotyku</string>
+ <string name="high_touch_sensitivity_summary">Zwiększa czułość ekranu dotykowego, więc możesz go używać podczas noszenia rękawiczek</string>
+ <string name="tethering_allow_vpn_upstreams_title">Zezwól podłączonym urządzeniom na korzystanie z VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Zezwól urządzeniom, podłączonym do udostępnionej sieci, na wysyłanie pakietów, poprzez VPN tego urządzenia</string>
+ <string name="increasing_ring_volume_option_title">Narastająca głośność dzwonka</string>
+ <string name="increasing_ring_min_volume_title">Głośność początkowa</string>
+ <string name="increasing_ring_ramp_up_time_title">Wydłużenie odstępu</string>
+ <string name="lockscreen_media_art_title">Wyświetlanie okładki albumu</string>
+ <string name="lock_settings_picker_pattern_size_message">Wybierz rozmiar wzoru</string>
+ <string name="lockpattern_settings_enable_error_path_title">Pokazuj błędny wzór</string>
+ <string name="lockpattern_settings_enable_dots_title">Pokazuj punkty wzoru</string>
+ <string name="max_refresh_rate_title">Najwyższa częstotliwość odświeżania</string>
+ <string name="min_refresh_rate_title">Minimalna częstotliwość odświeżania</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Zlokalizuj czytnik linii papilarnych na przedniej stronie tabletu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Zlokalizuj czytnik linii papilarnych na przedniej stronie urządzenia.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Zlokalizuj czytnik linii papilarnych na przedniej stronie telefonu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Zlokalizuj czytnik linii papilarnych na tylnej stronie tabletu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Zlokalizuj czytnik linii papilarnych na tylnej stronie urządzenia.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Zlokalizuj czytnik linii papilarnych na tylnej stronie telefonu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Zlokalizuj czytnik linii papilarnych znajdujący się z boku tabletu.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Zlokalizuj czytnik linii papilarnych znajdujący się z boku urządzenia.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Zlokalizuj czytnik linii papilarnych znajdujący się z boku telefonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotknij czujnika znajdującego się z przodu twojego tabletu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotknij czujnika znajdującego się z przodu twojego urządzenia.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotknij czujnika znajdującego się z przodu twojego telefonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotknij czujnika znajdującego się z tyłu twojego tabletu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotknij czujnika znajdującego się z tyłu twojego urządzenia.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotknij czujnika znajdującego się z tyłu twojego telefonu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotknij czujnika znajdującego się z boku twojego tabletu.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotknij czujnika znajdującego się z boku twojego urządzenia.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotknij czujnika znajdującego się z boku twojego telefonu.</string>
+ <string name="show_navbar_hint_title">Pasek nawigacji</string>
+ <string name="show_navbar_hint_summary">Pokaż pasek nawigacji w dolnej części ekranu</string>
+ <string name="app_notification_sound_timeout_title">Minimalny czas między dźwiękami powiadomień</string>
+ <string name="app_notification_sound_timeout_summary_template">Zezwól na dźwięki i wibracje, nie więcej niż jeden raz co każde <xliff:g id="duration">%1$s </xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Brak ograniczeń</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekund</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekund</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 min</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 min</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 min</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minut</string>
+ <string name="auto_brightness_one_shot_title">Jednorazowa jasność automatyczna</string>
+ <string name="auto_brightness_one_shot_summary">Regulacja jasności nastąpi tylko w momencie włączenia ekranu</string>
+ <string name="data_usage_app_restrict_all">Zezwól na dostęp do sieci</string>
+ <string name="data_usage_app_restrict_all_summary">Włącz użycie sieci</string>
+ <string name="data_usage_app_restrict_mobile">Dane komórkowe</string>
+ <string name="data_usage_app_restrict_mobile_summary">Włącz użycie danych komórkowych</string>
+ <string name="data_usage_app_restrict_vpn">Dane VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Włącz użycie danych VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dane Wi-Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Włącz użycie danych Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Pomieszany układ</string>
+ <string name="unlock_scramble_pin_layout_summary">Pomieszany układ cyfr przy odblokowywaniu urządzenia kodem PIN</string>
+ <string name="proximity_wake_title">Zapobiega przypadkowemu wybudzeniu</string>
+ <string name="proximity_wake_summary">Sprawdź czujnik zbliżeniowy przed wybudzeniem ekranu</string>
+ <string name="touchscreen_gesture_settings_title">Gesty ekranu dotykowego</string>
+ <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_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>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Odblokuj telefon dłużej dotykając czytnika linii papilarnych</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Odblokuj tablet dłużej dotykając czytnika linii papilarnych</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Odblokuj urządzenie dłużej dotykając czytnika linii papilar.</string>
+ <string name="ambient_display_screen_off_udfps_summary">Aby wybudzić i odblokować ekran, dotknij dłużej czytnika linii papilarnych, znajdującego się pod wyświetlaczem.</string>
+ <string name="storage_warning_internal">Ostrzeżenie: Ta opcja może nie działać poprawnie lub prowadzić do utraty danych i dlatego nie jest zalecana!</string>
+ <string name="assisted_gps_summary">Pobierz dane pomocy satelitarnej z Internetu, które mogą znacznie poprawić wydajność uruchamiania GPS. W przypadku połączeń awaryjnych wspomagany GPS jest zawsze dozwolony.</string>
+</resources>
diff --git a/res/values-pt-rBR/cm_strings.xml b/res/values-pt-rBR/cm_strings.xml
new file mode 100644
index 0000000..3845e38
--- /dev/null
+++ b/res/values-pt-rBR/cm_strings.xml
@@ -0,0 +1,95 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Configurações avançadas</string>
+ <string name="adb_enable_root">Depuração como superusuário</string>
+ <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="lineagelicense_title">Licença LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Você agora está a <xliff:g id="step_count">%1$d </xliff:g> passo de ativar as configurações de desenvolvimento.</item>
+ <item quantity="other">Você agora está a <xliff:g id="step_count">%1$d </xliff:g> passos de ativar as configurações de desenvolvimento.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Você ativou as configurações de desenvolvedor!</string>
+ <string name="show_dev_already_cm">Não é preciso, você já ativou as configurações de desenvolvedor.</string>
+ <string name="peak_refresh_rate_summary_custom">Aumenta automaticamente a taxa de atualização de 60 para %1$d Hz para alguns conteúdos. Maior uso da bateria</string>
+ <string name="status_bar_double_tap_to_sleep_title">Toque duplo para suspender</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Toque duas vezes na barra de status ou na tela de bloqueio para desligar a tela</string>
+ <string name="heads_up_notifications_enabled_title">Notificações pop-up</string>
+ <string name="heads_up_notifications_enabled_summary">Mostrar notificações prioritárias numa pequena janela flutuante</string>
+ <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 clientes usem VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permitir que os clientes de hotspot usem este dispositivo\u2019 para conexões VPN de alta velocidade</string>
+ <string name="increasing_ring_volume_option_title">Aumentando volume do toque</string>
+ <string name="increasing_ring_min_volume_title">Volume inicial</string>
+ <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+ <string name="lockscreen_media_art_title">Exibir capa do álbum</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>
+ <string name="min_refresh_rate_title">Taxa de atualização mínima</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localize o sensor de impressão digital na parte frontal do seu tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localize o sensor de impressão digital na parte frontal do seu dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localize o sensor de impressão digital na parte frontal do seu telefone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localize o sensor de impressão digital na parte traseira do seu tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localize o sensor de impressão digital na parte traseira do seu dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localize o sensor de impressão digital na parte de trás do seu telefone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localize o sensor de impressão digital na lateral do seu tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localize o sensor de impressão digital na lateral do seu dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localize o sensor de impressão digital na parte lateral do seu telefone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toque no sensor na parte frontal do seu dispositivo.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toque no sensor na parte frontal do seu telefone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toque no sensor na parte traseira do seu tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toque no sensor na parte traseira do seu dispositivo.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toque no sensor na parte traseira do seu telefone.</string>
+ <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="app_notification_sound_timeout_title">Tempo mínimo entre sons de notificação</string>
+ <string name="app_notification_sound_timeout_summary_template">Permitir sons ou vibrações apenas uma vez a cada <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Sem restrição</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>
+ <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">10 minutos</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+ <string name="data_usage_app_restrict_all">Permitir acesso à rede</string>
+ <string name="data_usage_app_restrict_all_summary">Permitir o uso da rede</string>
+ <string name="data_usage_app_restrict_mobile">Dados móveis</string>
+ <string name="data_usage_app_restrict_mobile_summary">Permitir o uso de dados móveis</string>
+ <string name="data_usage_app_restrict_vpn">Dados VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Permitir o uso de dados via VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dados Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Permitir o uso de dados Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Embaralhar layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Embaralhar PIN ao desbloquear o dispositivo</string>
+ <string name="proximity_wake_title">Evitar despertar acidental</string>
+ <string name="proximity_wake_summary">Verificar o sensor de proximidade antes de ligar a tela</string>
+ <string name="touchscreen_gesture_settings_title">Gestos na tela</string>
+ <string name="touchscreen_gesture_settings_summary">Faça vários gestos na tela para ações rápidas</string>
+ <string name="touchscreen_hovering_title">Flutuar o dedo na tela</string>
+ <string name="touchscreen_hovering_summary">Permite que você flutue o dedo na tela como um mouse em navegadores web, desktops remotos, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Acordar ao plugar</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Ativar a tela ao ligar ou desligar do carregador</string>
+ <string name="fast_charging_title">Carregamento rápido</string>
+</resources>
diff --git a/res/values-pt-rPT/cm_strings.xml b/res/values-pt-rPT/cm_strings.xml
new file mode 100644
index 0000000..b5189c9
--- /dev/null
+++ b/res/values-pt-rPT/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Definições avançadas</string>
+ <string name="adb_enable_root">Depuração root</string>
+ <string name="adb_enable_summary_root">Permitir a execução da depuração Android como root</string>
+ <string name="backup_transport_setting_label">Alterar provedor de cópia de segurança</string>
+ <string name="backup_transport_title">Selecionar provedor de cópia de segurança</string>
+ <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="device_info_protected_single_press">Toque para mostrar informações</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Está agora a <xliff:g id="step_count">%1$d</xliff:g> passo de ativar as opções de programador.</item>
+ <item quantity="other">Está agora a <xliff:g id="step_count">%1$d</xliff:g> passos de ativar as opções de programador.</item>
+ </plurals>
+ <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="peak_refresh_rate_summary_custom">Aumenta automaticamente a taxa de atualização de 60 para %1$d Hz em certos conteúdos. Aumenta a utilização da bateria.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Toque duplo para desligar o ecrã</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dê um toque duplo na barra de estado ou ecrã de bloqueio para desligar o ecrã</string>
+ <string name="high_touch_polling_rate_title">Alta taxa de amostragem de toque</string>
+ <string name="high_touch_polling_rate_summary">Aumentar a taxa de amostragem de toque do ecrã</string>
+ <string name="heads_up_notifications_enabled_title">Notificações flutuantes</string>
+ <string name="heads_up_notifications_enabled_summary">Mostrar notificações prioritárias numa pequena janela flutuante</string>
+ <string name="high_touch_sensitivity_title">Alta sensibilidade</string>
+ <string name="high_touch_sensitivity_summary">Aumentar a sensibilidade do ecrã para ser manuseado quando estiver a usar luvas</string>
+ <string name="tethering_allow_vpn_upstreams_title">Permitir que os clientes usem VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permitir que os clientes de hotspot usem as ligações VPN deste dispositivo</string>
+ <string name="increasing_ring_volume_option_title">Toque crescente</string>
+ <string name="increasing_ring_min_volume_title">Volume inicial</string>
+ <string name="increasing_ring_ramp_up_time_title">Intervalo de aumento</string>
+ <string name="lockscreen_media_art_title">Mostrar capa do álbum</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">Mostrar erro no padrão</string>
+ <string name="lockpattern_settings_enable_dots_title">Mostrar os pontos do padrão</string>
+ <string name="max_refresh_rate_title">Taxa de atualização máxima</string>
+ <string name="min_refresh_rate_title">Taxa mínima de atualização</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Localize o sensor de impressões digitais na parte frontal do seu tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Localize o sensor de impressões digitais na parte frontal do seu dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Localize o sensor de impressões digitais na parte frontal do seu telefone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Localize o sensor de impressões digitais na parte traseira do seu tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Localize o sensor de impressões digitais na parte traseira do seu dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Localize o sensor de impressões digitais na parte traseira do seu telefone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Localize o sensor de impressões digitais na lateral do seu tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Localize o sensor de impressões digitais na lateral do seu dispositivo.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Localize o sensor de impressões digitais na lateral do seu telefone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Toque no sensor na parte frontal do seu tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Toque no sensor na parte frontal do seu dispositivo.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Toque no sensor na parte frontal do seu telefone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Toque no sensor na parte traseira do seu tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Toque no sensor na parte traseira do seu dispositivo.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Toque no sensor na parte traseira do seu telefone.</string>
+ <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="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>
+ <string name="app_notification_sound_timeout_summary_template">Permitir sons ou vibrações, apenas uma vez, a cada <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Sem restrição</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>
+ <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">10 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>
+ <string name="data_usage_app_restrict_all">Permitir acesso à rede</string>
+ <string name="data_usage_app_restrict_all_summary">Ativar utilização da rede</string>
+ <string name="data_usage_app_restrict_mobile">Dados móveis</string>
+ <string name="data_usage_app_restrict_mobile_summary">Ativar utilização de dados móveis</string>
+ <string name="data_usage_app_restrict_vpn">Dados VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Ativar a utilização de dados VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dados Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Ativar a utilização de dados Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Disposição aleatória</string>
+ <string name="unlock_scramble_pin_layout_summary">Apresentar aleatoriamente a disposição do teclado numérico, quando desbloquear com PIN</string>
+ <string name="proximity_wake_title">Impedir que o ecrã se ligue acidentalmente</string>
+ <string name="proximity_wake_summary">Verificar o sensor de proximidade antes de ligar o ecrã</string>
+ <string name="touchscreen_gesture_settings_title">Gestos do ecrã</string>
+ <string name="touchscreen_gesture_settings_summary">Executar vários gestos no ecrã para ações rápidas</string>
+ <string name="touchscreen_hovering_title">Flutuar sobre o ecrã</string>
+ <string name="touchscreen_hovering_summary">Permite que flutue o dedo sobre o ecrã como um rato nos navegadores de internet, áreas de trabalho remotas, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Ligar ecrã ao detetar carregador</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Ativar o ecrã quando conectar ou desconectar uma fonte de energia</string>
+ <string name="fast_charging_title">Carregamento rápido</string>
+ <string name="fast_charging_summary">Desative para reduzir a temperatura produzida pelo dispositivo enquanto carrega ou para aumentar a duração da bateria</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Mantenha premido o sensor de impressão digital para desbloquear o telemóvel</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Mantenha premido o sensor de impressão digital para desbloquear o tablet</string>
+ <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>
+</resources>
diff --git a/res/values-ro/cm_strings.xml b/res/values-ro/cm_strings.xml
new file mode 100644
index 0000000..a49dc45
--- /dev/null
+++ b/res/values-ro/cm_strings.xml
@@ -0,0 +1,112 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Mai multe</string>
+ <string name="advanced_keyboard_settings_title">Setări avansate</string>
+ <string name="adb_enable_root">Depanare ca root</string>
+ <string name="adb_enable_summary_root">Permite depanării sistemului Android să ruleze în modul root</string>
+ <string name="backup_transport_setting_label">Schimbă furnizorul de backup</string>
+ <string name="backup_transport_title">Selectați furnizorul de backup</string>
+ <string name="berry_black_theme_title">Negru pur</string>
+ <string name="berry_black_theme_summary">Fundal negru pur pentru tema întunecată</string>
+ <string name="lineagelicense_title">Juridic LineageOS</string>
+ <string name="device_info_protected_single_press">Atingeți pentru a afișa informații</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Ești la <xliff:g id="step_count">%1$d</xliff:g> pas distanță de a activa opțiunile de dezvoltator.</item>
+ <item quantity="few">Ești la <xliff:g id="step_count">%1$d</xliff:g> pași distanță de a activa opțiunile de dezvoltator.</item>
+ <item quantity="other">Ești la <xliff:g id="step_count">%1$d</xliff:g> pași distanță de a activa opțiunile de dezvoltator.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Ați deblocat setările de dezvoltator!</string>
+ <string name="show_dev_already_cm">Nu este nevoie, deja ai deblocat setările de dezvoltator.</string>
+ <string name="peak_refresh_rate_summary_custom">Crește automat rata de împrospătare de la 60 la %1$d Hz pentru anumite conținuturi. Crește consumul bateriei.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Atingeți pentru sleep</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Atingeți de două ori bara de stare sau ecranul de blocare pentru a opri ecranul</string>
+ <string name="high_touch_polling_rate_title">Rată mare pentru touch polling</string>
+ <string name="high_touch_polling_rate_summary">Crește rata de polling a ecranului tactil</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Afișează notificările prioritare într-o fereastră micuță plutitoare</string>
+ <string name="high_touch_sensitivity_title">Sensibilitate tactilă înaltă </string>
+ <string name="high_touch_sensitivity_summary">Crește sensibilitatea ecranului tactil, astfel încât acesta poate fi utilizat în timp ce se poartă mănuși</string>
+ <string name="tethering_allow_vpn_upstreams_title">Permite clienților să utilizeze VPN-uri</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permite clienților hotspot-ului să utilizeze conexiunile VPN ale acestui dispozitiv pentru conexiunea upstream</string>
+ <string name="increasing_ring_volume_option_title">Volum crescător</string>
+ <string name="increasing_ring_min_volume_title">Volum inițial</string>
+ <string name="increasing_ring_ramp_up_time_title">Timp de creştere a volumului</string>
+ <string name="lockscreen_media_art_title">Afișează coperta artistică a piesei</string>
+ <string name="lock_settings_picker_pattern_size_message">Alegeți dimensiunea modelului</string>
+ <string name="lockpattern_settings_enable_error_path_title">Afișare eroare model</string>
+ <string name="lockpattern_settings_enable_dots_title">Afișare puncte model</string>
+ <string name="max_refresh_rate_title">Rata maximă de împrospătare</string>
+ <string name="min_refresh_rate_title">Rata minimă de împrospătare</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Găsiți senzorul de amprentă pe partea din faţă a tabletei.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Găsiți senzorul de amprentă pe partea din faţă a dispozitivului.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Găsiți senzorul de amprentă pe partea din faţă a telefonului.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Găsiți senzorul de amprentă pe partea din spate a tabletei.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Găsiți senzorul de amprentă pe partea din spate a dispozitivului.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Găsiți senzorul de amprentă pe partea din spate a telefonului.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Găsiți senzorul de amprentă pe partea laterală a tabletei.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Găsiți senzorul de amprentă pe partea laterală a dispozitivului.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Găsiți senzorul de amprentă pe partea laterală a telefonului.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Atingeţi senzorul de pe partea din faţă a tabletei.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Atingeți senzorul de pe partea din față a dispozitivului.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Atingeți senzorul de pe partea din față a telefonului.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Atingeţi senzorul de pe partea din spate a tabletei.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Atingeţi senzorul de pe partea din spate a dispozitivului.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Atingeți senzorul de pe partea din spate a telefonului.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Atingeţi senzorul de pe partea laterală a tabletei.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Atingeţi senzorul de pe partea laterală a dispozitivului.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Atingeţi senzorul de pe partea laterală a telefonului.</string>
+ <string name="show_navbar_hint_title">Indicii navigare</string>
+ <string name="show_navbar_hint_summary">Arată indiciul bării de navigare în partea de jos a ecranului</string>
+ <string name="app_notification_sound_timeout_title">Timp minim între sunetele notificărilor</string>
+ <string name="app_notification_sound_timeout_summary_template">Nu permiteți sunete sau vibrații mai mult de o singură dată la mai puțin de fiecare <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Fără restricţie</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 secunde</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 de secunde</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minute</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minute</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 de minute</string>
+ <string name="auto_brightness_one_shot_title">Luminozitate automată instantă</string>
+ <string name="auto_brightness_one_shot_summary">Ajustarea luminozității va avea loc doar în momentul în care ecranul este pornit</string>
+ <string name="data_usage_app_restrict_all">Permiteți accesul la rețea</string>
+ <string name="data_usage_app_restrict_all_summary">Activați utilizare rețea</string>
+ <string name="data_usage_app_restrict_mobile">Date mobile</string>
+ <string name="data_usage_app_restrict_mobile_summary">Permite utilizarea datelor mobile</string>
+ <string name="data_usage_app_restrict_vpn">Date VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Activează utilizarea datelor VPN</string>
+ <string name="data_usage_app_restrict_wifi">Date Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Permite utilizarea datelor Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Amestecă așezarea în pagină</string>
+ <string name="unlock_scramble_pin_layout_summary">Amestecă așezarea în pagină a ecranului de PIN atunci când se deblochează aparatul</string>
+ <string name="proximity_wake_title">Previne trezirea accidentală</string>
+ <string name="proximity_wake_summary">Verificaţi senzorul de proximitate înainte de a trezi ecranul</string>
+ <string name="touchscreen_gesture_settings_title">Gesturi touchscreen</string>
+ <string name="touchscreen_gesture_settings_summary">Efectuați diverse gesturi pe touchscreen pentru acţiuni rapide</string>
+ <string name="touchscreen_hovering_title">Plutire peste ecran</string>
+ <string name="touchscreen_hovering_summary">Vă permite să plutiți degetul peste ecran ca un mouse în browserele web, remote desktop-uri, etc</string>
+ <string name="wake_when_plugged_or_unplugged_title">Trezire la alimentare</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Aprinde ecranul când se conectează sau deconectează sursa de alimentare</string>
+ <string name="fast_charging_title">Încărcare rapidă</string>
+ <string name="fast_charging_summary">Dezactivați pentru a reduce căldura produsă de dispozitiv în timpul încărcării sau pentru a prelungi durata de viață a bateriei</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Apăsați lung pe senzorul de amprentă pentru a debloca telefonul</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Apăsați lung pe senzorul de amprentă pentru a debloca tableta</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Apăsați lung pe senzorul de amprentă pentru a debloca dispozitivul</string>
+ <string name="ambient_display_screen_off_udfps_summary">Pentru a porni și debloca ecranul, țineți apăsat pe senzorul de amprentă under-display.</string>
+ <string name="storage_warning_internal">Atenție: Este posibil ca această opțiune să nu funcționeze corespunzător sau să ducă la pierderea datelor și, prin urmare, nu este recomandată!</string>
+ <string name="assisted_gps_summary">Descarcă datele de asistență prin satelit de pe internet, care pot îmbunătăți considerabil performanța de pornire a GPS-ului. Pentru apelurile de urgență, GPS-ul asistat este întotdeauna permis.</string>
+</resources>
diff --git a/res/values-ru/cm_strings.xml b/res/values-ru/cm_strings.xml
new file mode 100644
index 0000000..bf95e7d
--- /dev/null
+++ b/res/values-ru/cm_strings.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">Разрешить запуск отладки Android с правами суперпользователя</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">Политика конфиденциальности LineageOS</string>
+ <string name="device_info_protected_single_press">Нажмите, чтобы показать информацию</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+ <item quantity="few">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раза, чтобы включить настройки для разработчиков.</item>
+ <item quantity="many">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+ <item quantity="other">Нажмите еще <xliff:g id="step_count">%1$d</xliff:g> раз, чтобы включить настройки для разработчиков.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Настройки для разработчиков включены!</string>
+ <string name="show_dev_already_cm">Нет необходимости, вы уже включили параметры разработки.</string>
+ <string name="peak_refresh_rate_summary_custom">Автоматически увеличивать частоту обновления экрана с 60 до %1$d Гц для некоторых типов контента. Увеличивает расход заряда батареи.</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">Разрешить клиентам использовать VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Разрешить клиентам точки доступа при подключении использовать VPN-соединения этого устройства</string>
+ <string name="increasing_ring_volume_option_title">Возрастающая громкость звонка</string>
+ <string name="increasing_ring_min_volume_title">Начальная громкость</string>
+ <string name="increasing_ring_ramp_up_time_title">Время увеличения</string>
+ <string name="lockscreen_media_art_title">Отображать обложку мультимедиа</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="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">10 секунд</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 минуту</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 минут</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 минут</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 минут</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">Данные VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Включить использование данных VPN</string>
+ <string name="data_usage_app_restrict_wifi">Данные Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Включить использование данных Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Перемешивать кнопки</string>
+ <string name="unlock_scramble_pin_layout_summary">Переставлять кнопки ввода PIN-кода в случайном порядке</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_summary">Загружать вспомогательные данные спутников из интернета. Они помогут значительно ускорить подключение к GPS. Для экстренных вызовов использование вспомогательных данных GPS разрешено всегда.</string>
+</resources>
diff --git a/res/values-sc-rIT/cm_strings.xml b/res/values-sc-rIT/cm_strings.xml
new file mode 100644
index 0000000..73eee78
--- /dev/null
+++ b/res/values-sc-rIT/cm_strings.xml
@@ -0,0 +1,26 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="app_notification_sound_timeout_value_10_seconds">10 segundos</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 segundos</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minutu</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutos</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutos</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutos</string>
+ <string name="data_usage_app_restrict_wifi">Datos Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Abìlita s\'impreu de sos datos Wi\u2011Fi</string>
+</resources>
diff --git a/res/values-si/cm_strings.xml b/res/values-si/cm_strings.xml
new file mode 100644
index 0000000..c174e94
--- /dev/null
+++ b/res/values-si/cm_strings.xml
@@ -0,0 +1,27 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS නීතිමය තොරතුරු</string>
+ <string name="peak_refresh_rate_summary_custom">සමහර අන්තර්ගත සඳහා නැවුම් කිරීමේ අනුපාතය හර්ට්ස් 60 සිට %1$d දක්වා ස්වයංක්රියව ඉහළ නංවයි. බැටරි භාවිතය වැඩි කරයි.</string>
+ <string name="high_touch_sensitivity_title">ඉහළ ස්පර්ශ සංවේදිතාව</string>
+ <string name="high_touch_sensitivity_summary">ස්පර්ශ තීරයේ සංවේදීතාව වැඩිකරන්න, එබැවින් අත්මේස් පළඳා ඇතිවිට එය භාවිතාකලහැකිය</string>
+ <string name="unlock_scramble_pin_layout_title">සැලැස්ම පටලවන්න</string>
+ <string name="unlock_scramble_pin_layout_summary">උපාංගය අගුළු අරින විට PIN සැලැස්ම පටලවන්න</string>
+ <string name="proximity_wake_title">අහඹු අවදි වීම් වළක්වන්න</string>
+ <string name="wake_when_plugged_or_unplugged_title">පේණුගත කලවිට ඇහැරවන්න</string>
+ <string name="wake_when_plugged_or_unplugged_summary">බල මූලාශ්රය සම්බන්ධ කිරීමේදී හෝ විසන්ධි කිරීමේදී තිරය ඇහැරවන්න</string>
+</resources>
diff --git a/res/values-sk/cm_strings.xml b/res/values-sk/cm_strings.xml
new file mode 100644
index 0000000..c09a5eb
--- /dev/null
+++ b/res/values-sk/cm_strings.xml
@@ -0,0 +1,83 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Doplnky</string>
+ <string name="advanced_keyboard_settings_title">Rozšírené nastavenia</string>
+ <string name="adb_enable_root">Ladenie s\u00a0právami root</string>
+ <string name="adb_enable_summary_root">Povoliť spustenie ladenia Androidu s\u00a0právami root</string>
+ <string name="backup_transport_setting_label">Zmeniť poskytovateľa zálohovania</string>
+ <string name="backup_transport_title">Vybrať poskytovateľa zálohovania</string>
+ <string name="berry_black_theme_title">Čistá čierna</string>
+ <string name="berry_black_theme_summary">Čisto čierne pozadie pre tmavú tému vzhľadu</string>
+ <string name="lineagelicense_title">Právne informácie LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krok od povolenia možnosti pre vývojárov.</item>
+ <item quantity="few">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> kroky od povolenia možnosti pre vývojárov.</item>
+ <item quantity="many">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krokov od povolenia možnosti pre vývojárov.</item>
+ <item quantity="other">Teraz ste <xliff:g id="step_count">%1$d</xliff:g> krokov od povolenia možnosti pre vývojárov.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Povolili ste možnosti pre vývojárov!</string>
+ <string name="show_dev_already_cm">Netreba, už ste povolili možnosti pre vývojárov.</string>
+ <string name="peak_refresh_rate_summary_custom">Automaticky zvyšuje frekvenciu obnovenia zo 60 na %1$d Hz pre určitý obsah. Zvýši sa spotreba batérie.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Kliknutím uspať</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Vypnúť obrazovku dvojklikom na stavový riadok alebo na obrazovku uzamknutia</string>
+ <string name="heads_up_notifications_enabled_title">Plávajúce upozornenia</string>
+ <string name="heads_up_notifications_enabled_summary">Zobraziť prioritné upozornenia v malom plávajúcom okne</string>
+ <string name="high_touch_sensitivity_title">Vysoká citlivosť na dotyky</string>
+ <string name="high_touch_sensitivity_summary">Zvýšiť citlivosť dotykovej obrazovky, takže ju bude možné používať pri nosení rukavíc</string>
+ <string name="tethering_allow_vpn_upstreams_title">Povoliť klientom používanie sietí VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Povoliť hotspot klientom pripojenie cez VPN</string>
+ <string name="increasing_ring_volume_option_title">Zvyšovanie hlasitosti zvonenia</string>
+ <string name="increasing_ring_min_volume_title">Počiatočná hlasitosť</string>
+ <string name="increasing_ring_ramp_up_time_title">Doba zvyšovania</string>
+ <string name="lockscreen_media_art_title">Zobraziť obal médií</string>
+ <string name="lock_settings_picker_pattern_size_message">Zvoliť veľkosť vzoru</string>
+ <string name="lockpattern_settings_enable_error_path_title">Zobraziť chybu vzoru</string>
+ <string name="lockpattern_settings_enable_dots_title">Zobraziť body vzoru</string>
+ <string name="min_refresh_rate_title">Minimálna obnovovacia frekvencia</string>
+ <string name="show_navbar_hint_title">Navigačná nápoveda</string>
+ <string name="show_navbar_hint_summary">Zobraziť panel nápovedy k navigácii naspodu obrazovky</string>
+ <string name="app_notification_sound_timeout_title">Minimálny čas medzi zvukmi upozornenia</string>
+ <string name="app_notification_sound_timeout_summary_template">Povoliť zvuky alebo vibrácie nie viac ako raz za <xliff:g id="duration">%1$s </xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Bez obmedzení</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekúnd</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekúnd</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minúta</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minút</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minút</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minút</string>
+ <string name="data_usage_app_restrict_all">Povoliť prístup k sieti</string>
+ <string name="data_usage_app_restrict_all_summary">Povoliť použitie siete</string>
+ <string name="data_usage_app_restrict_mobile">Mobilné dáta</string>
+ <string name="data_usage_app_restrict_mobile_summary">Povoliť používanie mobilných dát</string>
+ <string name="data_usage_app_restrict_vpn">Dáta VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Povoliť používanie dát VPN</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi dáta</string>
+ <string name="data_usage_app_restrict_wifi_summary">Povoliť používanie Wi\u2011Fi dát</string>
+ <string name="unlock_scramble_pin_layout_title">Dynamické rozloženie</string>
+ <string name="unlock_scramble_pin_layout_summary">Prehádzať rozloženie pre zadanie kódu PIN pri odomykaní zariadenia</string>
+ <string name="proximity_wake_title">Zabrániť nechcenému prebudeniu</string>
+ <string name="proximity_wake_summary">Pred prebudením obrazovky skontrolovať senzor priblíženia</string>
+ <string name="touchscreen_gesture_settings_title">Gestá na obrazovke</string>
+ <string name="touchscreen_gesture_settings_summary">Možnosť spustiť rýchlu akciu pomocou rôzných gest na obrazovce</string>
+ <string name="touchscreen_hovering_title">Pohyb nad dotykovou obrazovkou</string>
+ <string name="touchscreen_hovering_summary">Pohybovať sa nad obrazovkou podobne ako myš vo webovom prehliadači, vzdielaneých plochý, atď</string>
+ <string name="wake_when_plugged_or_unplugged_title">Prebudiť po pripojení</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Zapnúť obrazovku pri pripojení alebo odpojení zdroja nabíjania</string>
+ <string name="fast_charging_title">Rýchle nabíjanie</string>
+ <string name="fast_charging_summary">Vypnutím znížite teplo produkované zariadením počas nabíjania alebo predĺžite životnosť batérie</string>
+</resources>
diff --git a/res/values-sl/cm_strings.xml b/res/values-sl/cm_strings.xml
new file mode 100644
index 0000000..d51a1a5
--- /dev/null
+++ b/res/values-sl/cm_strings.xml
@@ -0,0 +1,113 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Dodatki</string>
+ <string name="advanced_keyboard_settings_title">Napredne nastavitve</string>
+ <string name="adb_enable_root">Skrbniško razhroščevanje</string>
+ <string name="adb_enable_summary_root">Dovoli izvajanje Android razhroščevanja kot skrbnik</string>
+ <string name="backup_transport_setting_label">Spremeni ponudnika varnostnih kopij</string>
+ <string name="backup_transport_title">Izberite ponudnika varnostnih kopij</string>
+ <string name="berry_black_theme_title">Popolnoma črna</string>
+ <string name="berry_black_theme_summary">Popolnoma črno ozadje za temno temo</string>
+ <string name="lineagelicense_title">Pravna obvestila LineageOS</string>
+ <string name="device_info_protected_single_press">Tapnite za prikaz informacij</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korak pred omogočenjem nastavitev za razvijalce.</item>
+ <item quantity="two">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> koraka pred omogočenjem nastavitev za razvijalce.</item>
+ <item quantity="few">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korake pred omogočenjem nastavitev za razvijalce.</item>
+ <item quantity="other">Zdaj ste <xliff:g id="step_count">%1$d</xliff:g> korakov pred omogočenjem nastavitev za razvijalce.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Omogočili ste nastavitve za razvijalce!</string>
+ <string name="show_dev_already_cm">Ni treba, ste že omogočili nastavitve za razvijalce.</string>
+ <string name="peak_refresh_rate_summary_custom">Samodejno poveča hitrost osveževanja s 60 na %1$d Hz za nekatere vsebine. Poveča porabo baterije.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Tap za spanje</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Dvakrat tapnite na vrstico stanja ali zaklenjen zaslon, da izklopite zaslon</string>
+ <string name="high_touch_polling_rate_title">Visoka hitrost zaznavanja dotika</string>
+ <string name="high_touch_polling_rate_summary">Povečaj hitrost zaznavanja zaslona na dotik</string>
+ <string name="heads_up_notifications_enabled_title">Obvestila na zaslonu</string>
+ <string name="heads_up_notifications_enabled_summary">Prikaži prednostna obvestila v majhnem lebdečem oknu</string>
+ <string name="high_touch_sensitivity_title">Visoka občutljivost dotika</string>
+ <string name="high_touch_sensitivity_summary">Povečaj občutljivost dotika, tako da ga lahko uporabite, ko nosite rokavice</string>
+ <string name="tethering_allow_vpn_upstreams_title">Dovoli odjemalcem uporabo VPN-jev</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Dovoli odjemalcem dostopne točke uporabo VPN povezav te naprave za povezovanje</string>
+ <string name="increasing_ring_volume_option_title">Naraščajoča glasnost zvonjenja</string>
+ <string name="increasing_ring_min_volume_title">Začetna glasnost</string>
+ <string name="increasing_ring_ramp_up_time_title">Čas povečanja</string>
+ <string name="lockscreen_media_art_title">Prikaži naslovnico večpredstavnosti</string>
+ <string name="lock_settings_picker_pattern_size_message">Izberite velikost vzorca</string>
+ <string name="lockpattern_settings_enable_error_path_title">Prikaži napako vzorca</string>
+ <string name="lockpattern_settings_enable_dots_title">Prikaži pike vzorca</string>
+ <string name="max_refresh_rate_title">Najvišja hitrost osveževanja</string>
+ <string name="min_refresh_rate_title">Najmanjša hitrost osveževanja</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Poiščite tipalo za prstne odtise na sprednji strani vašega tabličnega računalnika.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Poiščite tipalo za prstne odtise na sprednji strani vaše naprave.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Poiščite tipalo za prstne odtise na sprednji strani vašega telefona.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Poiščite tipalo za prstne odtise na zadnji strani vašega tabličnega računalnika.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Poiščite tipalo za prstne odtise na zadnji strani vaše naprave.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Poiščite tipalo za prstne odtise na zadnji strani vašega telefona.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Poiščite tipalo za prstne odtise ob strani vašega tabličnega računalnika.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Poiščite tipalo za prstne odtise ob strani vaše naprave.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Poiščite tipalo za prstne odtise ob strani vašega telefona.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Dotaknite se tipala na sprednji strani vašega tabličnega računalnika.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Dotaknite se tipala na sprednji strani vaše naprave.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Dotaknite se tipala na sprednji strani vašega telefona.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Dotaknite se tipala na zadnji strani vašega tabličnega računalnika.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Dotaknite se tipala na zadnji strani vaše naprave.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Dotaknite se tipala na zadnji strani vašega telefona.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Dotaknite se tipala ob strani vašega tabličnega računalnika.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Dotaknite se tipala ob strani vaše naprave.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Dotaknite se tipala ob strani vašega telefona.</string>
+ <string name="show_navbar_hint_title">Namig krmarjenja</string>
+ <string name="show_navbar_hint_summary">Pokaži namig krmarjenja na dnu zaslona</string>
+ <string name="app_notification_sound_timeout_title">Najmanjši čas med zvoki obvestil</string>
+ <string name="app_notification_sound_timeout_summary_template">Najmanjši čas med zvoki ali vibriranji: <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Brez omejitev</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 s</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 s</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 min.</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 min.</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 min.</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 min.</string>
+ <string name="auto_brightness_one_shot_title">Enkratna samodejna svetlost</string>
+ <string name="auto_brightness_one_shot_summary">Prilagoditev svetlosti se bo zgodila samo v trenutku, ko se zaslon vklopi</string>
+ <string name="data_usage_app_restrict_all">Dovoli dostop do omrežja</string>
+ <string name="data_usage_app_restrict_all_summary">Omogoči uporabo omrežja</string>
+ <string name="data_usage_app_restrict_mobile">Mobilni podatki</string>
+ <string name="data_usage_app_restrict_mobile_summary">Omogoči uporabo mobilnih podatkov</string>
+ <string name="data_usage_app_restrict_vpn">VPN podatki</string>
+ <string name="data_usage_app_restrict_vpn_summary">Omogoči uporabo VPN podatkov</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi podatki</string>
+ <string name="data_usage_app_restrict_wifi_summary">Omogoči uporabo Wi\u2011Fi podatkov</string>
+ <string name="unlock_scramble_pin_layout_title">Premešaj razporeditev</string>
+ <string name="unlock_scramble_pin_layout_summary">Premešaj razporeditev PIN ob odklepanju naprave</string>
+ <string name="proximity_wake_title">Prepreči nenamerno bujenje</string>
+ <string name="proximity_wake_summary">Pred bujenjem zaslona preveri tipalo bližine</string>
+ <string name="touchscreen_gesture_settings_title">Poteze na zaslonu na dotik</string>
+ <string name="touchscreen_gesture_settings_summary">Za hitra dejanja na zaslonu na dotik izvedite različne poteze</string>
+ <string name="touchscreen_hovering_title">Prehod zaslona na dotik</string>
+ <string name="touchscreen_hovering_summary">Dovoli vam prehod nad zaslonom, kot miška v spletnih brskalnikih, oddaljenih namizjih itd.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Zbudi ob priključitvi napajalnika</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Vklopi zaslon ob priključitvi/izključitvi napajanja</string>
+ <string name="fast_charging_title">Hitro polnjenje</string>
+ <string name="fast_charging_summary">Onemogočite za zmanjšanje vročine, povzročene iz naprave med polnjenjem ali za podaljšanje življenjske dobe baterije</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Pridržanje na tipalo za prstne odtise za odklep telefona</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Pridržanje na tipalo za prstne odtise za odklep tabličnega računalnika</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Pridržanje na tipalo za prstne odtise za odklep naprave</string>
+ <string name="ambient_display_screen_off_udfps_summary">Da zbudite vaš zaslon in ga odklenete, pridržite vašo podzaslonsko tipalo za prstne odtise</string>
+ <string name="storage_warning_internal">Opozorilo: Ta možnost morda ne bo delovala pravilno, ali bo vodila do izgube podatkov, zato ni priporočljiva!</string>
+ <string name="assisted_gps_summary">Prenesi pomožne podatke satelita iz interneta, kateri lahko močno izboljšajo zagonsko zmogljivost GPS-a. Za nujne klice je pomožni GPS vedno dovoljen.</string>
+</resources>
diff --git a/res/values-sq/cm_strings.xml b/res/values-sq/cm_strings.xml
new file mode 100644
index 0000000..b606a98
--- /dev/null
+++ b/res/values-sq/cm_strings.xml
@@ -0,0 +1,111 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Shtesat</string>
+ <string name="advanced_keyboard_settings_title">Parametra të përparuar</string>
+ <string name="adb_enable_root">korrigjimi rrënjë</string>
+ <string name="adb_enable_summary_root">Lejoni ekzekutimin e korrigjimit e gabimeve të Android si root</string>
+ <string name="backup_transport_setting_label">Ndryshoni ofruesin e rezervës</string>
+ <string name="backup_transport_title">Zgjidhni siguruesin e rezervës</string>
+ <string name="berry_black_theme_title">E zezë e pastër</string>
+ <string name="berry_black_theme_summary">Sfond i zi i pastër për temë të errët</string>
+ <string name="lineagelicense_title">Liçensa e LineageOS</string>
+ <string name="device_info_protected_single_press">Trokit për të shfaqur informacionin</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Ju jeni edhe <xliff:g id="step_count">%1$d</xliff:g> hap larg aktivizimit të parametrave të zhvillimit.</item>
+ <item quantity="other">Ju jeni edhe <xliff:g id="step_count">%1$d</xliff:g> hapa larg aktivizimit të parametrave të zhvillimit.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Ju keni aktivizuar parametrat e zhvillimit!</string>
+ <string name="show_dev_already_cm">Nuk ka më nevojë të shtypni! Parametrat e zhvillimit janë të aktivizuara.</string>
+ <string name="peak_refresh_rate_summary_custom">Rrit automatikisht shpejtësinë e rifreskimit nga 60 në %1$d Hz për disa përmbajtje. Rrit përdorimin e baterisë.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Shtyp për të fjetur</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Shtyp dy herë shiritin e ekranit ose mbyllekranin për të fikur ekranin</string>
+ <string name="high_touch_polling_rate_title">Shkalla e lartë e sondazheve me prekje</string>
+ <string name="high_touch_polling_rate_summary">Rrit normën e sondazheve me ekran me prekje</string>
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Shfaq njoftimet kryesore në një dritare të vogël lundruese</string>
+ <string name="high_touch_sensitivity_title">Ndjesi e lartë e prekjes</string>
+ <string name="high_touch_sensitivity_summary">Rrit ndjeshmërinë e prekjes kështu që mund të përdoret kur keni dorashka</string>
+ <string name="tethering_allow_vpn_upstreams_title">Lejo klientët të përdorin VPN -enet</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Lejo klientët e HotSpot të përdorin lidhjet VPN të kësaj paisje për lidhje në rrjedhën e ngarkimit</string>
+ <string name="increasing_ring_volume_option_title">Volum me rritje graduale</string>
+ <string name="increasing_ring_min_volume_title">Volumi fillestar</string>
+ <string name="increasing_ring_ramp_up_time_title">Kohëzgjatja e rritjes</string>
+ <string name="lockscreen_media_art_title">Shfaq ikonën e albumit</string>
+ <string name="lock_settings_picker_pattern_size_message">Zgjidh madhësinë e modelit</string>
+ <string name="lockpattern_settings_enable_error_path_title">Shfaq gabimet në vizatimin e modelit</string>
+ <string name="lockpattern_settings_enable_dots_title">Shfaq pikat e modelit</string>
+ <string name="max_refresh_rate_title">Kulmi maksimal i rifreskimit</string>
+ <string name="min_refresh_rate_title">Shkalla minimale e rifreskimit</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të tabletit tuaj</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të pajisjes tuaj.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Gjeni sensorin e gjurmës së gishtit në pjesën e përparme të telefonit tuaj.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Gjeni sensorin e gjurmës së gishtit në anën e pasme të tabletit tuaj</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Gjeni sensorin e gjurmës së gishtit në anën e pasme të pajisjes tuaj.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Gjeni sensorin e gjurmës së gishtit në anën e pasme të telefonit tuaj.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Gjeni sensorin e gjurmës së gishtit në anën e tabletit tuaj.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Gjeni sensorin e gjurmës së gishtit në anën e pajisjes tuaj.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Gjeni sensorin e gjurmës së gishtit në anën e telefonit tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Prekni sensorin në pjesën e përparme të tabletit tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Prekni sensorin në pjesën e përparme të pajisjes tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Prekni sensorin në pjesën e përparme të telefonit tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Prekni sensorin në pjesën e pasme të tabletit tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Prekni sensorin në pjesën e pasme të pajisjes tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Prekni sensorin në anën e pasme të telefonit tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Prekni sensorin në anën e tabletit tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Prekni sensorin në anën e pajisjes tuaj.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Prekni sensorin në anë të telefonit tuaj.</string>
+ <string name="show_navbar_hint_title">Udhëzim për navigim</string>
+ <string name="show_navbar_hint_summary">Shfaq shiritin e sugjerimeve të navigimit në fund të ekranit</string>
+ <string name="app_notification_sound_timeout_title">Koha minimale midis zileve të njoftimeve</string>
+ <string name="app_notification_sound_timeout_summary_template">Mos lejo zilet apo dridhjet më shumë se një herë në <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">E pakufizim</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekonda</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekonda</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minutë</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuta</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuta</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuta</string>
+ <string name="auto_brightness_one_shot_title">Ndriçimi automatik me një goditje</string>
+ <string name="auto_brightness_one_shot_summary">Rregullimi i ndriçimit do të ndodhë në momentin kur ekrani ndizet</string>
+ <string name="data_usage_app_restrict_all">Lejo hyrjen në rrjet</string>
+ <string name="data_usage_app_restrict_all_summary">Lejo përdorimin e rrjetit</string>
+ <string name="data_usage_app_restrict_mobile">Të dhënat celulare</string>
+ <string name="data_usage_app_restrict_mobile_summary">Aktivizo përdorimin e të dhënave celulare</string>
+ <string name="data_usage_app_restrict_vpn">Të dhëna VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Lejo përdorimin e internetit nga VPN</string>
+ <string name="data_usage_app_restrict_wifi">Të dhëna Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Hap përdorimin e internetit nga Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Paraqitja e përplasjes</string>
+ <string name="unlock_scramble_pin_layout_summary">Përzieni paraqitjen e kodit PIN kur zhbllokoni pajisjen</string>
+ <string name="proximity_wake_title">Parandalo zgjimin aksidental</string>
+ <string name="proximity_wake_summary">Kontrollo sensorin e afërsisë para se të ndezësh ekranin</string>
+ <string name="touchscreen_gesture_settings_title">Gjestet me prekje në ekran</string>
+ <string name="touchscreen_gesture_settings_summary">Kryej gjeste të ndryshme duke prekur ekranin për veprime të shpejta</string>
+ <string name="touchscreen_hovering_title">Ekrani me prekje qëndron pezull</string>
+ <string name="touchscreen_hovering_summary">Ju lejon të rri pezull në ekran si një mi në shfletuesit e internetit, desktopët e largët, etj</string>
+ <string name="wake_when_plugged_or_unplugged_title">Zgjohoje kur lidh karikuesin</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Ndizni ekranin kur lidhni ose shkëputni karikuesin</string>
+ <string name="fast_charging_title">Karikim i shpejtë</string>
+ <string name="fast_charging_summary">Çaktivizoni për të zvogëluar nxehtësinë e prodhuar nga pajisja gjatë karikimit ose për të zgjatur jetëgjatësinë e baterisë</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Shtypni gjatë sensorin e gjurmës së gishtit për të zhbllokuar telefonin</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Shtypni gjatë sensorin e gjurmës së gishtit për të zhbllokuar tabletin</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Shtypni gjatë sensorin e gjurmës së gishtit për të shkyçur pajisjen</string>
+ <string name="ambient_display_screen_off_udfps_summary">Për të zgjuar ekranin dhe për të shkyçur, shtypni gjatë sensorin e gjurmës së gishtit nën ekran.</string>
+ <string name="storage_warning_internal">Paralajmërim: Ky opsion mund të mos funksionojë siç duhet ose të çojë në humbje të të dhënave dhe për këtë arsye nuk rekomandohet!</string>
+ <string name="assisted_gps_summary">Shkarkoni të dhënat e ndihmës satelitore nga interneti, të cilat mund të përmirësojnë shumë performancën e nisjes së GPS. Për thirrjet e urgjencës, GPS i asistuar lejohet gjithmonë.</string>
+</resources>
diff --git a/res/values-sr/cm_strings.xml b/res/values-sr/cm_strings.xml
new file mode 100644
index 0000000..868de34
--- /dev/null
+++ b/res/values-sr/cm_strings.xml
@@ -0,0 +1,63 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="adb_enable_root">Откл. грешака с root приступом</string>
+ <string name="adb_enable_summary_root">Дозволи покретање Android отклањања грешака као root</string>
+ <string name="lineagelicense_title">Политика приватности LineageOS-а</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пут да бисте омогућили опције за програмера.</item>
+ <item quantity="few">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пута да бисте омогућили опције за програмера.</item>
+ <item quantity="other">Додирните још <xliff:g id="step_count">%1$d</xliff:g> пута да бисте омогућили опције за програмера.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Омогућили сте опције за програмера.</string>
+ <string name="show_dev_already_cm">Нема потебе, опције за програмера су већ омогућене.</string>
+ <string name="peak_refresh_rate_summary_custom">Аутоматски подиже учесталост освежавања са 60 на %1$d Hz за одређени садржај. Повећава потрошњу батерије.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Додир за спавање</string>
+ <string name="status_bar_double_tap_to_sleep_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="increasing_ring_volume_option_title">Појачавање јачине звука звона</string>
+ <string name="increasing_ring_min_volume_title">Почетна јачина звука</string>
+ <string name="increasing_ring_ramp_up_time_title">Време појачавања</string>
+ <string name="lockscreen_media_art_title">Прикажи омот медија</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="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">10 секунди</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 секунди</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 минут</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 минута</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 минута</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 минута</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi подаци</string>
+ <string name="data_usage_app_restrict_wifi_summary">Укључи употребу Wi\u2011Fi података</string>
+ <string name="unlock_scramble_pin_layout_title">Насумични распоред</string>
+ <string name="unlock_scramble_pin_layout_summary">Приказује дугмад за унос PIN кода у насумичном реду.</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>
+</resources>
diff --git a/res/values-sv/cm_strings.xml b/res/values-sv/cm_strings.xml
new file mode 100644
index 0000000..f01c08c
--- /dev/null
+++ b/res/values-sv/cm_strings.xml
@@ -0,0 +1,61 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <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>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Du är nu <xliff:g id="step_count">%1$d</xliff:g> steg från att aktivera utvecklingsinställningar.</item>
+ <item quantity="other">Du är nu <xliff:g id="step_count">%1$d</xliff:g> steg från att aktivera utvecklingsinställningar.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Du har aktiverat utvecklingsinställningar!</string>
+ <string name="show_dev_already_cm">Det behövs inte, du har redan aktiverat utvecklingsinställningar.</string>
+ <string name="peak_refresh_rate_summary_custom">Höjer uppdateringsfrekvensen dynamiskt från 60 till %1$d Hz för visst innehåll. Ökar batteriförbrukningen.</string>
+ <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="increasing_ring_volume_option_title">Ökande ljudvolym</string>
+ <string name="increasing_ring_min_volume_title">Startvolym</string>
+ <string name="increasing_ring_ramp_up_time_title">Upprampningstid</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>
+ <string name="app_notification_sound_timeout_value_none">Ingen begränsning</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 sekunder</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 sekunder</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minut</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minuter</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minuter</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minuter</string>
+ <string name="data_usage_app_restrict_all">Tillåt nätverksåtkomst</string>
+ <string name="data_usage_app_restrict_all_summary">Aktivera nätverksanvändning</string>
+ <string name="data_usage_app_restrict_mobile">Mobildata</string>
+ <string name="data_usage_app_restrict_mobile_summary">Aktivera användning av mobildata</string>
+ <string name="data_usage_app_restrict_vpn">VPN-data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Aktivera användning av VPN-data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi\u2011data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Aktivera användning av Wi\u2011Fi\u2011data</string>
+ <string name="unlock_scramble_pin_layout_title">Kasta om layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Kasta om PIN-layout vid upplåsning av enheten</string>
+ <string name="proximity_wake_title">Förhindra oavsiktlig väckning</string>
+ <string name="touchscreen_gesture_settings_title">Skärmgester</string>
+ <string name="touchscreen_hovering_title">Tryckskärm-hovring</string>
+ <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="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>
diff --git a/res/values-sw/cm_strings.xml b/res/values-sw/cm_strings.xml
new file mode 100644
index 0000000..02fbd02
--- /dev/null
+++ b/res/values-sw/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Huinua kiotomatiki kiwango cha kuonyesha upya kutoka Hz 60 hadi %1$d kwa baadhi ya maudhui. Huongeza matumizi ya betri.</string>
+</resources>
diff --git a/res/values-ta/cm_strings.xml b/res/values-ta/cm_strings.xml
new file mode 100644
index 0000000..e4dcaf0
--- /dev/null
+++ b/res/values-ta/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS சட்டம்</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">வளர்ச்சி அமைப்புகளை செயல்படுத்துவதற்கு <xliff:g id="step_count">%1$d</xliff:g> படி தொலைவில் நீங்கள் இப்போது உள்ளீர்கள்.</item>
+ <item quantity="other">வளர்ச்சி அமைப்புகளை செயல்படுத்துவதற்கு <xliff:g id="step_count">%1$d</xliff:g> படிகள் தொலைவில் நீங்கள் இப்போது உள்ளீர்கள்.</item>
+ </plurals>
+ <string name="show_dev_on_cm">நீங்கள் வளர்ச்சி அமைப்புகளை செயல்படுத்தினீர்கள்!</string>
+ <string name="show_dev_already_cm">தேவை இல்லை, நீங்கள் முன்பே வளர்ச்சி அமைப்புகளை செயல்படுத்துவிட்டீர்கள்.</string>
+ <string name="peak_refresh_rate_summary_custom">சில உள்ளடக்கத்திற்குப் புதுப்பிக்கும் விகிதத்தை 60லிருந்து %1$d Hzக்குத் தானாகவே உயர்த்தும். இதனால் பேட்டரி உபயோகம் அதிகரிக்கும்.</string>
+ <string name="high_touch_sensitivity_title">உயர்ந்த தொடல் உணர்திறன்</string>
+ <string name="high_touch_sensitivity_summary">கையுறை அணிந்தும் அதை பயன்படுத்தும்படி தொடல்திறை உணர்திறனை அதிகரிக்கவும்</string>
+ <string name="increasing_ring_volume_option_title">ரிங் வால்யூமை அதிகரித்தல்</string>
+ <string name="increasing_ring_min_volume_title">வால்யூமை தொடங்கு</string>
+ <string name="increasing_ring_ramp_up_time_title">ராம்ப்-அப் நேரம்</string>
+ <string name="lockpattern_settings_enable_error_path_title">பேட்டர்ன் பிழையை காட்டு</string>
+ <string name="lockpattern_settings_enable_dots_title">பேட்டர்ன் புள்ளிகளை காட்டு</string>
+ <string name="unlock_scramble_pin_layout_title">ஸ்க்ராம்பில் லேயவுட்</string>
+ <string name="unlock_scramble_pin_layout_summary">கருவியை திறக்கும்போது PIN லேயவுட்டை ஸ்க்ராம்பில் செய்</string>
+ <string name="proximity_wake_title">தற்செயலான விழித்தலை தடு</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>
+</resources>
diff --git a/res/values-te/cm_strings.xml b/res/values-te/cm_strings.xml
new file mode 100644
index 0000000..49310e8
--- /dev/null
+++ b/res/values-te/cm_strings.xml
@@ -0,0 +1,40 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">సయనోజెన్ మోడ్ లీగల్</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">డెవలప్మెంట్ సెట్టింగులను ప్రారంభించడానికి ఇప్పుడు మీరు <xliff:g id="step_count">%1$d</xliff:g> అడుగు దూరంలో ఉన్నారు.</item>
+ <item quantity="other">డెవలప్మెంట్ సెట్టింగులను ప్రారంభించడానికి ఇప్పుడు మీరు <xliff:g id="step_count">%1$d</xliff:g> అడుగుల దూరంలో ఉన్నారు.</item>
+ </plurals>
+ <string name="show_dev_on_cm">మీరు ఇప్పుడు డెవలప్మెంట్ సెట్టింగులను ప్రారంభించారు!</string>
+ <string name="show_dev_already_cm">అవసరం లేదు, మీరు ఇప్పటికే డెవలప్మెంట్ సెట్టింగులను ప్రారంభించేశారు.</string>
+ <string name="peak_refresh_rate_summary_custom">కొంత కంటెంట్ కోసం రిఫ్రెష్ రేటును ఆటోమేటిక్గా 60 నుండి %1$d Hz వరకు పెంచుతుంది. బ్యాటరీ వినియోగం పెరుగుతుంది.</string>
+ <string name="high_touch_sensitivity_title">అధిక స్పర్శ సున్నితత్వం</string>
+ <string name="high_touch_sensitivity_summary">టచ్ స్క్రీన్ సున్నితత్వాన్ని పెంచండి ఎందుకంటే చేతి తొడుగులు వేసుకున్నప్పుడు అది ఉపయోగపడుతుంది</string>
+ <string name="increasing_ring_volume_option_title">రింగ్ వాల్యూమును పెంచడం</string>
+ <string name="increasing_ring_min_volume_title">ప్రారంభ వాల్యూమ్</string>
+ <string name="increasing_ring_ramp_up_time_title">రాంప్-అప్ సమయం</string>
+ <string name="lockpattern_settings_enable_error_path_title">నమూనా దోషాన్ని చూపుము</string>
+ <string name="lockpattern_settings_enable_dots_title">నమూనా చుక్కలను చూపుము</string>
+ <string name="unlock_scramble_pin_layout_title">క్రమరాహిత్య లేఅవుట్</string>
+ <string name="unlock_scramble_pin_layout_summary">పరికరాన్ని అన్లాక్ చేసేటప్పుడు PIN లేఅవుట్ ను క్రమరాహిత్యం చేయండి</string>
+ <string name="proximity_wake_title">అప్రయత్నంగా మేల్కొల్పబడటాన్ని నివారించండి</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>
+</resources>
diff --git a/res/values-th/cm_strings.xml b/res/values-th/cm_strings.xml
new file mode 100644
index 0000000..bce17bc
--- /dev/null
+++ b/res/values-th/cm_strings.xml
@@ -0,0 +1,73 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">อนุญาตการดีบัก Android ในฐานะรูท</string>
+ <string name="berry_black_theme_title">ดำสนิท</string>
+ <string name="berry_black_theme_summary">พื้นหลังสีดำสนิทสำหรับธีมมืด</string>
+ <string name="lineagelicense_title">เกี่ยวกับกฎหมาย LineageOS</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="other">คุณเหลืออีก <xliff:g id="step_count">%1$d</xliff:g> ขั้นก่อนจะสามารถเปิดใช้งานการตั้งค่าการพัฒนา</item>
+ </plurals>
+ <string name="show_dev_on_cm">คุณเปิดใช้งานการตั้งค่าการพัฒนาแล้ว!</string>
+ <string name="show_dev_already_cm">ไม่จำเป็น คุณได้เปิดใช้งานการตั้งค่าการพัฒนาแล้ว</string>
+ <string name="peak_refresh_rate_summary_custom">เพิ่มอัตราการรีเฟรชจาก 60 เป็น %1$d Hz โดยอัตโนมัติสำหรับเนื้อหาบางรายการ เพิ่มการใช้งานแบตเตอรี่</string>
+ <string name="status_bar_double_tap_to_sleep_title">แตะเพื่อหลับ</string>
+ <string name="status_bar_double_tap_to_sleep_summary">แตะสองครั้งที่แถบสถานะเพื่อพักหน้าจอ</string>
+ <string name="heads_up_notifications_enabled_title">การแจ้งเตือนด้านบน</string>
+ <string name="high_touch_sensitivity_title">ความไวต่อสัมผัสสูง</string>
+ <string name="high_touch_sensitivity_summary">เพิ่มความไวของหน้าจอสัมผัสเพื่อสามารถใช้ขณะสวมถุงมือ</string>
+ <string name="tethering_allow_vpn_upstreams_title">อนุญาตให้ไคลเอ็นต์ใช้ VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">อนุญาตให้ไคลเอ็นต์ฮอตสปอตเชื่อมต่อ VPN ของอุปกรณ์นี้ สำหรับการเชื่อมต่ออัปสตรีม</string>
+ <string name="increasing_ring_volume_option_title">การเพิ่มเสียงเรียกเข้า</string>
+ <string name="increasing_ring_min_volume_title">ระดับเสียงเริ่มต้น</string>
+ <string name="increasing_ring_ramp_up_time_title">ระยะเวลาที่ดังเพิ่มขึ้น</string>
+ <string name="lockscreen_media_art_title">แสดงหน้าปกสื่อ</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="min_refresh_rate_title">อัตรารีเฟรชต่ำสุด</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">10 วินาที</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 วินาที</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 นาที</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 นาที</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 นาที</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 นาที</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">ข้อมูล VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">เปิดใช้งานการใช้ข้อมูล VPN</string>
+ <string name="data_usage_app_restrict_wifi">ข้อมูล Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">เปิดการใช้งานของข้อมูล Wi\u2011Fi</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>
+</resources>
diff --git a/res/values-tl/cm_strings.xml b/res/values-tl/cm_strings.xml
new file mode 100644
index 0000000..bd167cc
--- /dev/null
+++ b/res/values-tl/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Awtomatikong itinataas sa %1$d Hz mula sa 60 Hz ang refresh rate para sa ilang content. Mas lumalakas ang paggamit ng baterya.</string>
+</resources>
diff --git a/res/values-tr/cm_strings.xml b/res/values-tr/cm_strings.xml
new file mode 100644
index 0000000..26bd425
--- /dev/null
+++ b/res/values-tr/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Ekstralar</string>
+ <string name="advanced_keyboard_settings_title">Gelişmiş ayarlar</string>
+ <string name="adb_enable_root">Rootlu hata ayıklama</string>
+ <string name="adb_enable_summary_root">Android hata ayıklamanın rootlu olarak çalışmasına izin verin</string>
+ <string name="backup_transport_setting_label">Yedekleme sağlayıcısını değiştir</string>
+ <string name="backup_transport_title">Yedekleme sağlayıcısını seçin</string>
+ <string name="berry_black_theme_title">Saf siyah</string>
+ <string name="berry_black_theme_summary">Karanlık tema için saf siyah arka plan</string>
+ <string name="lineagelicense_title">LineageOS yasal</string>
+ <string name="device_info_protected_single_press">Bilgileri göstermek için dokunun</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">Geliştirici ayarlarının etkinleştirilmesi için <xliff:g id="step_count">%1$d</xliff:g> adım kaldı.</item>
+ <item quantity="other">Geliştirici ayarlarının etkinleştirilmesi için <xliff:g id="step_count">%1$d</xliff:g> adım kaldı.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Geliştirici ayarlarını etkinleştirdiniz!</string>
+ <string name="show_dev_already_cm">Gerek yok, zaten geliştirme ayarlarını etkinleştirdiniz.</string>
+ <string name="peak_refresh_rate_summary_custom">Bazı içerikler için yenileme hızını otomatik olarak 60 Hz\'den %1$d Hz\'e yükseltir. Pil kullanımını artırır.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Uyutmak için dokunun</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Ekranı kapatmak için durum çubuğuna veya kilit ekranına çift dokunun</string>
+ <string name="high_touch_polling_rate_title">Yüksek dokunmatik yoklama oranı</string>
+ <string name="high_touch_polling_rate_summary">Dokunmatik ekran yoklama oranını artırın</string>
+ <string name="heads_up_notifications_enabled_title">Bildirim pencereleri</string>
+ <string name="heads_up_notifications_enabled_summary">Küçük bir yüzen pencerede öncelikli bildirimleri görüntüle</string>
+ <string name="high_touch_sensitivity_title">Yüksek dokunma hassasiyeti</string>
+ <string name="high_touch_sensitivity_summary">Dokunmatik ekran hassasiyetini arttırarak eldiven ile kullanıma olanak verir</string>
+ <string name="tethering_allow_vpn_upstreams_title">İstemcilerin VPN kullanmasına izin ver</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Hotspot kullanıcılarının bağlantıları sırasında bu cihazın \u2019s VPN bağlantısını kullanmasına izin ver</string>
+ <string name="increasing_ring_volume_option_title">Artan zil sesi</string>
+ <string name="increasing_ring_min_volume_title">Başlangıç sesi</string>
+ <string name="increasing_ring_ramp_up_time_title">Yükselme zamanı</string>
+ <string name="lockscreen_media_art_title">Medya kapak resmini göster</string>
+ <string name="lock_settings_picker_pattern_size_message">Bir desen boyutu seçin</string>
+ <string name="lockpattern_settings_enable_error_path_title">Desen hatasını göster</string>
+ <string name="lockpattern_settings_enable_dots_title">Desen noktalarını göster</string>
+ <string name="max_refresh_rate_title">En yüksek yenileme hızı</string>
+ <string name="min_refresh_rate_title">Minimum yenileme hızı</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Tabletinizin önündeki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Cihazınızın önündeki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Telefonunuzun önündeki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Tabletinizin arkasındaki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Cihazınızın arkasındaki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Telefonunuzun arkasındaki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Tabletinizin yan tarafındaki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Cihazınızın yan tarafındaki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Telefonunuzun yan tarafındaki parmak izi sensörünü bulun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Tabletinizin önündeki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Cihazınızın önündeki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Telefonunuzun önündeki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Tabletinizin arkasındaki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Cihazınızın arkasındaki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Telefonunuzun arkasındaki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Tabletinizin yan tarafındaki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Cihazınızın yan tarafındaki sensöre dokunun.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Telefonunuzun yan tarafındaki sensöre dokunun.</string>
+ <string name="show_navbar_hint_title">Gezinme ipucu</string>
+ <string name="show_navbar_hint_summary">Ekranın altında gezinme ipucu çubuğunu göster</string>
+ <string name="app_notification_sound_timeout_title">Bildirim sesleri arasında en az zaman</string>
+ <string name="app_notification_sound_timeout_summary_template">Bir defadan fazla olmayacak şekilde her <xliff:g id="duration">%1$s</xliff:g>\'da bir titreme veya sese izin ver</string>
+ <string name="app_notification_sound_timeout_value_none">Kısıtlama yok</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 saniye</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 Saniye</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 dakika</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 dakika</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 dakika</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 dakika</string>
+ <string name="auto_brightness_one_shot_title">Tek seferlik otomatik parlaklık</string>
+ <string name="auto_brightness_one_shot_summary">Parlaklık ayarı yalnızca ekran açıldığında gerçekleşir</string>
+ <string name="data_usage_app_restrict_all">Ağ erişimine izin ver</string>
+ <string name="data_usage_app_restrict_all_summary">Ağ kullanımını etkinleştir</string>
+ <string name="data_usage_app_restrict_mobile">Mobil veri</string>
+ <string name="data_usage_app_restrict_mobile_summary">Mobil veri kullanımını etkinleştir</string>
+ <string name="data_usage_app_restrict_vpn">VPN verileri</string>
+ <string name="data_usage_app_restrict_vpn_summary">VPN veri kullanımını etkinleştir</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi veri</string>
+ <string name="data_usage_app_restrict_wifi_summary">Wi\u2011Fi veri kullanımını etkinleştir</string>
+ <string name="unlock_scramble_pin_layout_title">Düzeni karıştır</string>
+ <string name="unlock_scramble_pin_layout_summary">Cihaz kilidini açarken PIN düzenini karıştırır</string>
+ <string name="proximity_wake_title">Yanlış uyandırmaları önle</string>
+ <string name="proximity_wake_summary">Ekranı uyandırmadan önce yakınlık sensörünü kontrol et</string>
+ <string name="touchscreen_gesture_settings_title">Ekran hareketleri</string>
+ <string name="touchscreen_gesture_settings_summary">Hızlı işlemler için çeşitli dokunmatik ekran hareketleri gerçekleştirin</string>
+ <string name="touchscreen_hovering_title">Dokunmatik ekrana dokunmadan gezinme</string>
+ <string name="touchscreen_hovering_summary">Ekrana dokunmadan parmağınızı yakınlaştırarak bir fare kullanıyormuş gibi web tarayıcılarında, uzak masaüstlerinde, vb. dolaşmanızı sağlar</string>
+ <string name="wake_when_plugged_or_unplugged_title">Takıp çıkarmada uyan</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Bir güç kaynağına bağlanırken ya da bağlantısını keserken ekranı aç</string>
+ <string name="fast_charging_title">Hızlı şarj oluyor</string>
+ <string name="fast_charging_summary">Cihazın şarj ederken ürettiği ısıyı azaltmak veya pilin ömrünü uzatmak için devre dışı bırakın</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Telefonun kilidini açmak için parmak izi sensörüne uzun basın</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Tabletin kilidini açmak için parmak izi sensörüne uzun basın</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Cihazın kilidini açmak için parmak izi sensörüne uzun basın</string>
+ <string name="ambient_display_screen_off_udfps_summary">Ekranınızı uyandırmak ve kilidini açmak için ekranın altındaki parmak izi sensörünüze uzun basın.</string>
+ <string name="storage_warning_internal">Uyarı: Bu özellik düzgün çalışmayabileceğinden veya veri kaybına neden olabileceğinden önerilmez!</string>
+</resources>
diff --git a/res/values-ug/cm_strings.xml b/res/values-ug/cm_strings.xml
new file mode 100644
index 0000000..0cd399b
--- /dev/null
+++ b/res/values-ug/cm_strings.xml
@@ -0,0 +1,35 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS قانۇن ئۇچۇرى</string>
+ <string name="show_dev_on_cm">ئىجادكارلار تەڭشەكلىرىنى قوزغاتتىڭىز!</string>
+ <string name="show_dev_already_cm">ھاجەتسىز، سىز ئاللىبۇرۇن ئىجادكارلار تەڭشەكلىرىنى قوزغاتقان.</string>
+ <string name="high_touch_sensitivity_title">سەزگۈر ئېكراننىڭ يۇقىرى سېزىمچانلىقى</string>
+ <string name="high_touch_sensitivity_summary">سەزگۈر ئېكراننىڭ سېزىمچانلىقىنى كۈچەيتىپ پەلەي كىيگەندە ئىشلىتىشكە قولايلىق يارىتىدۇ</string>
+ <string name="increasing_ring_volume_option_title">قوڭغۇراق ئاۋازىنى تەدرىجىي كۈچەيتىش</string>
+ <string name="increasing_ring_min_volume_title">باشلاش ئاۋازى</string>
+ <string name="increasing_ring_ramp_up_time_title">كۈچەيتىش ۋاقتى</string>
+ <string name="lockpattern_settings_enable_error_path_title">ئەندىزە خاتالىقىنى كۆرسىتىش</string>
+ <string name="lockpattern_settings_enable_dots_title">ئەندىزە نۇقتىسىنى كۆرسىتىش</string>
+ <string name="unlock_scramble_pin_layout_title">قالايمىقان جايلاشتۇرۇش</string>
+ <string name="unlock_scramble_pin_layout_summary">ئۈسكۈنە قۇلۇپىنى ئاچقاندا قالايمىقان تەرتىپتىكى PIN جايلاشتۇرۇشنى ئىشلىتىدۇ</string>
+ <string name="proximity_wake_title">تاسادىپىي ئويغىتىشنىڭ ئالدىنى ئېلىش</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>
+</resources>
diff --git a/res/values-uk/cm_strings.xml b/res/values-uk/cm_strings.xml
new file mode 100644
index 0000000..3e38e06
--- /dev/null
+++ b/res/values-uk/cm_strings.xml
@@ -0,0 +1,75 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="adb_enable_root">Налагодження суперкористувачем</string>
+ <string name="adb_enable_summary_root">Дозволити налагодження Android із правами суперкористувача</string>
+ <string name="backup_transport_setting_label">Змінити провайдера резервного копіювання</string>
+ <string name="backup_transport_title">Оберіть провайдера резервного копіювання</string>
+ <string name="lineagelicense_title">Політика конфіденційності LineageOS</string>
+ <string name="show_dev_on_cm">Ви увімкнули налаштування розробника!</string>
+ <string name="show_dev_already_cm">Це зайве, параметри розробки вже ввімкнено.</string>
+ <string name="peak_refresh_rate_summary_custom">Автоматично збільшує частоту оновлення певного вмісту з 60 до %1$d Гц. Підвищує використання заряду акумулятора.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Торкніться для сну</string>
+ <string name="status_bar_double_tap_to_sleep_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">Дозволити клієнтам використовувати VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Пропускати трафік клієнтів точки доступу через VPN-з\'єднання цього пристрою</string>
+ <string name="increasing_ring_volume_option_title">Наростаюча гучність дзвінка</string>
+ <string name="increasing_ring_min_volume_title">Початкова гучність</string>
+ <string name="increasing_ring_ramp_up_time_title">Час збільшення</string>
+ <string name="lockscreen_media_art_title">Показувати обкладинку мультимедіа</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="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="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">10 секунд</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 секунд</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 хвилина</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 хвилин</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 хвилин</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 хвилин</string>
+ <string name="data_usage_app_restrict_all">Мережа</string>
+ <string name="data_usage_app_restrict_all_summary">Дозволити використання мережі</string>
+ <string name="data_usage_app_restrict_vpn">Дані VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Дозволити використання даних VPN</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi-дані</string>
+ <string name="data_usage_app_restrict_wifi_summary">Дозволити використання Wi\u2011Fi-даних</string>
+ <string name="unlock_scramble_pin_layout_title">Перемішана розкладка</string>
+ <string name="unlock_scramble_pin_layout_summary">Перемішувати розкладку PIN-коду під час розблокування пристрою</string>
+ <string name="proximity_wake_title">Запобігання випадкового пробудження</string>
+ <string name="touchscreen_gesture_settings_title">Жести сенсорного екрану</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>
+</resources>
diff --git a/res/values-ur/cm_strings.xml b/res/values-ur/cm_strings.xml
new file mode 100644
index 0000000..22c08b8
--- /dev/null
+++ b/res/values-ur/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">کچھ مواد کے لیے 60 سے %1$d Hz تک ریفریش کی شرح خودکار طور پر بڑھ جاتی ہے۔ بیٹری کے استعمال میں اضافہ کرتا ہے۔</string>
+</resources>
diff --git a/res/values-uz/cm_strings.xml b/res/values-uz/cm_strings.xml
new file mode 100644
index 0000000..dd273eb
--- /dev/null
+++ b/res/values-uz/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Ayrim kontent uchun ekranning yangilanish chastotasi 60-%1$d Gs orasida almashib turadi. Batareya tezroq sarflanadi.</string>
+</resources>
diff --git a/res/values-vi/cm_strings.xml b/res/values-vi/cm_strings.xml
new file mode 100644
index 0000000..7397b82
--- /dev/null
+++ b/res/values-vi/cm_strings.xml
@@ -0,0 +1,109 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="keyboard_extras_title">Thêm</string>
+ <string name="advanced_keyboard_settings_title">Cài đặt nâng cao</string>
+ <string name="adb_enable_root">Gỡ lỗi với quyền root</string>
+ <string name="adb_enable_summary_root">Cho phép chạy gỡ lỗi Android với quyền root</string>
+ <string name="backup_transport_setting_label">Thay đổi nơi lưu trữ dữ liệu sao lưu của bạn</string>
+ <string name="backup_transport_title">Chọn nơi lưu trữ dữ liệu sao lưu</string>
+ <string name="berry_black_theme_title">Đen tuyền</string>
+ <string name="berry_black_theme_summary">Nền đen tuyền cho chủ đề tối</string>
+ <string name="lineagelicense_title">Bộ phận pháp chế của LineageOS</string>
+ <string name="device_info_protected_single_press">Chạm để hiển thị thông tin</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="other">Hiện tại bạn còn <xliff:g id="step_count">%1$d</xliff:g> bước nữa để bật cài đặt nhà phát triển.</item>
+ </plurals>
+ <string name="show_dev_on_cm">Bạn đã bật cài đặt nhà phát triển!</string>
+ <string name="show_dev_already_cm">Không cần thiết, bạn đã bật cài đặt nhà phát triển.</string>
+ <string name="peak_refresh_rate_summary_custom">Tự động tăng tốc độ làm mới từ 60 lên %1$d Hz đối với một số nội dung. Làm tăng mức sử dụng pin.</string>
+ <string name="status_bar_double_tap_to_sleep_title">Chạm để tắt màn hình</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Chạm hai lần vào thanh trạng thái hoặc màn hình khoá để tắt màn hình</string>
+ <string name="high_touch_polling_rate_title">Tỷ lệ làm mới cảm ứng cao</string>
+ <string name="high_touch_polling_rate_summary">Tăng tỷ lệ làm mới trên màn hình cảm ứng</string>
+ <string name="heads_up_notifications_enabled_title">Thông báo nổi</string>
+ <string name="heads_up_notifications_enabled_summary">Hiển thị các thông báo ưu tiên trong một cửa sổ nổi nhỏ</string>
+ <string name="high_touch_sensitivity_title">Độ nhạy cảm ứng cao</string>
+ <string name="high_touch_sensitivity_summary">Tăng độ nhạy màn hình cảm ứng để nó có thể được sử dụng trong khi đeo găng tay</string>
+ <string name="tethering_allow_vpn_upstreams_title">Cho phép máy khách sử dụng VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Cho phép hotspot các máy khách sử dụng các kết nối VPN của thiết bị\u2019 này để kết nối đến máy chủ</string>
+ <string name="increasing_ring_volume_option_title">Tăng âm lượng chuông</string>
+ <string name="increasing_ring_min_volume_title">Âm lượng khởi động</string>
+ <string name="increasing_ring_ramp_up_time_title">Thời gian tăng</string>
+ <string name="lockscreen_media_art_title">Hiển thị ảnh bìa phương tiện</string>
+ <string name="lock_settings_picker_pattern_size_message">Chọn một kích cỡ mẫu hình</string>
+ <string name="lockpattern_settings_enable_error_path_title">Hiện lỗi mẫu hình</string>
+ <string name="lockpattern_settings_enable_dots_title">Hiện dấu chấm mẫu hình</string>
+ <string name="max_refresh_rate_title">Tốc độ làm mới cao nhất</string>
+ <string name="min_refresh_rate_title">Tốc độ làm mới tối thiểu</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Xác định vị trí của cảm biến vân tay ở mặt trước máy tính bảng của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Xác định vị trí của cảm biến vân tay ở mặt trước thiết bị của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Xác định vị trí của cảm biến vân tay ở mặt trước điện thoại của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Xác định cảm biến vân tay ở mặt sau máy tính bảng của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Xác định cảm biến vân tay ở mặt sau thiết bị của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Xác định cảm biến vân tay ở mặt sau điện thoại của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Xác định vị trí của cảm biến vân tay ở bên cạnh máy tính bảng của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Xác định cảm biến vân tay ở bên cạnh thiết bị của bạn.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Xác định vị trí của cảm biến vân tay ở bên cạnh điện thoại của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Chạm vào cảm biến ở mặt trước máy tính bảng của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Chạm vào cảm biến ở mặt trước thiết bị của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Chạm vào cảm biến ở mặt trước điện thoại của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Chạm vào cảm biến ở mặt sau máy tính bảng của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Chạm vào cảm biến ở mặt sau thiết bị của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Chạm vào cảm biến ở mặt sau điện thoại của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Chạm vào cảm biến ở mặt bên máy tính bảng của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Chạm vào cảm biến ở bên cạnh thiết bị của bạn.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Chạm vào cảm biến ở mặt bên điện thoại của bạn.</string>
+ <string name="show_navbar_hint_title">Gợi ý điều hướng</string>
+ <string name="show_navbar_hint_summary">Hiển thị thanh gợi ý điều hướng ở cuối màn hình</string>
+ <string name="app_notification_sound_timeout_title">Thời gian tối thiểu giữa các âm thanh thông báo</string>
+ <string name="app_notification_sound_timeout_summary_template">Cho phép âm thanh hoặc rung không nhiều hơn một lần mỗi <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">Không giới hạn</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 giây</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 giây</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 phút</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 phút</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 phút</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 phút</string>
+ <string name="auto_brightness_one_shot_title">Tự động điều chỉnh độ sáng một lần duy nhất</string>
+ <string name="auto_brightness_one_shot_summary">Điều chỉnh độ sáng sẽ chỉ thực hiện một lần duy nhất khi màn hình được bật</string>
+ <string name="data_usage_app_restrict_all">Cho phép truy cập mạng</string>
+ <string name="data_usage_app_restrict_all_summary">Bật chế độ theo dõi dung lượng kết nối.</string>
+ <string name="data_usage_app_restrict_mobile">Dữ liệu di động</string>
+ <string name="data_usage_app_restrict_mobile_summary">Bật cho phép sử dụng dữ liệu di động</string>
+ <string name="data_usage_app_restrict_vpn">Dữ liệu VPN</string>
+ <string name="data_usage_app_restrict_vpn_summary">Cho phép sử dụng dữ liệu VPN</string>
+ <string name="data_usage_app_restrict_wifi">Dữ liệu Wi\u2011Fi</string>
+ <string name="data_usage_app_restrict_wifi_summary">Bật sử dụng dữ liệu Wi\u2011Fi</string>
+ <string name="unlock_scramble_pin_layout_title">Bố trí linh tinh</string>
+ <string name="unlock_scramble_pin_layout_summary">Bố trí PIN linh tinh khi mở khóa thiết bị</string>
+ <string name="proximity_wake_title">Ngăn ngừa tình cờ mở màn hình</string>
+ <string name="proximity_wake_summary">Kiểm tra cảm biến tiệm cận trước khi mở màn hình</string>
+ <string name="touchscreen_gesture_settings_title">Cử chỉ màn hình cảm ứng</string>
+ <string name="touchscreen_gesture_settings_summary">Thực hiện các cử chỉ màn hình cảm ứng khác nhau cho các thao tác nhanh</string>
+ <string name="touchscreen_hovering_title">Di trên màn hình cảm ứng</string>
+ <string name="touchscreen_hovering_summary">Cho phép bạn di trên màn hình như chuột trong trình duyệt web, điều khiển máy tính từ xa, v.v.</string>
+ <string name="wake_when_plugged_or_unplugged_title">Sáng màn hình khi cắm sạc</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Bật màn hình khi kết nối hoặc ngắt kết nối nguồn điện</string>
+ <string name="fast_charging_title">Đang sạc nhanh</string>
+ <string name="fast_charging_summary">Tắt để giảm nhiệt do thiết bị tạo ra trong khi sạc hoặc để kéo dài tuổi thọ của pin</string>
+ <string name="ambient_display_screen_off_udfps_title" product="default">Giữ cảm biến vân tay để mở khóa điện thoại</string>
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Giữ cảm biến vân tay để mở khóa máy tính bảng</string>
+ <string name="ambient_display_screen_off_udfps_title" product="device">Giữ cảm biến vân tay để mở khóa thiết bị</string>
+ <string name="ambient_display_screen_off_udfps_summary">Để đánh thức màn hình và mở khóa, đặt ngón tay vào cảm biến vân tay dưới màn hình của bạn</string>
+ <string name="storage_warning_internal">Cảnh báo: Tùy chọn này có thể không hoạt động bình thường hoặc dẫn đến mất dữ liệu và do đó không được khuyến khích</string>
+</resources>
diff --git a/res/values-zh-rCN/cm_strings.xml b/res/values-zh-rCN/cm_strings.xml
new file mode 100644
index 0000000..fd98e22
--- /dev/null
+++ b/res/values-zh-rCN/cm_strings.xml
@@ -0,0 +1,110 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">Root 身份的调试</string>
+ <string name="adb_enable_summary_root">允许以 root 身份运行 Android 调试</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">LineageOS 法律信息</string>
+ <string name="device_info_protected_single_press">点击以显示信息</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="other">还需 <xliff:g id="step_count">%1$d</xliff:g> 步就可以启用开发者选项。</item>
+ </plurals>
+ <string name="show_dev_on_cm">您已经启用了开发者选项!</string>
+ <string name="show_dev_already_cm">不用了,您已启用开发者选项。</string>
+ <string name="peak_refresh_rate_summary_custom">自动将某些内容的刷新频率从 60 Hz 调高到 %1$d Hz。这么做会增加耗电量。</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">允许客户端使用 VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">允许热点客户端使用此设备的 VPN 连接到上游连接</string>
+ <string name="increasing_ring_volume_option_title">铃声音量渐强</string>
+ <string name="increasing_ring_min_volume_title">初始音量</string>
+ <string name="increasing_ring_ramp_up_time_title">增强时间</string>
+ <string name="lockscreen_media_art_title">显示媒体艺术封面</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="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">10 秒</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 秒</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 分钟</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 分钟</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 分钟</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 分钟</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">VPN 数据</string>
+ <string name="data_usage_app_restrict_vpn_summary">启用 VPN 的数据使用统计</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 数据</string>
+ <string name="data_usage_app_restrict_wifi_summary">启用 Wi\u2011Fi 流量使用统计</string>
+ <string name="unlock_scramble_pin_layout_title">乱序布局</string>
+ <string name="unlock_scramble_pin_layout_summary">当解锁设备时使用乱序 PIN 布局</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_summary">从互联网下载卫星辅助数据,这可以极大地提高GPS启动性能。对于紧急呼叫,总是允许GPS辅助。</string>
+</resources>
diff --git a/res/values-zh-rHK/cm_strings.xml b/res/values-zh-rHK/cm_strings.xml
new file mode 100644
index 0000000..ba64bfe
--- /dev/null
+++ b/res/values-zh-rHK/cm_strings.xml
@@ -0,0 +1,32 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="lineagelicense_title">LineageOS 法律條款</string>
+ <string name="peak_refresh_rate_summary_custom">自動將部分內容的重新整理頻率,從 60 Hz 提升到 %1$d Hz。此功能會增加耗電量。</string>
+ <string name="high_touch_sensitivity_title">高觸碰靈敏度</string>
+ <string name="high_touch_sensitivity_summary">增加觸控螢幕的靈敏度,戴著手套也可以使用手機</string>
+ <string name="increasing_ring_ramp_up_time_title">漸強時間</string>
+ <string name="lockpattern_settings_enable_error_path_title">顯示圖樣錯誤</string>
+ <string name="lockpattern_settings_enable_dots_title">顯示圖樣圓點</string>
+ <string name="unlock_scramble_pin_layout_title">無序佈局</string>
+ <string name="unlock_scramble_pin_layout_summary">解鎖裝置時使用無序 PIN 佈局</string>
+ <string name="proximity_wake_title">防止意外喚醒</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>
+</resources>
diff --git a/res/values-zh-rTW/cm_strings.xml b/res/values-zh-rTW/cm_strings.xml
new file mode 100644
index 0000000..b0a8bb1
--- /dev/null
+++ b/res/values-zh-rTW/cm_strings.xml
@@ -0,0 +1,82 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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: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">Root 偵錯</string>
+ <string name="adb_enable_summary_root">允許以 root 身份進行 Android 偵錯</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">LineageOS 法律條款</string>
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="other">您僅需完成剩餘的 <xliff:g id="step_count">%1$d</xliff:g> 個步驟啟用開發人員選項。</item>
+ </plurals>
+ <string name="show_dev_on_cm">您已啟用開發人員選項。</string>
+ <string name="show_dev_already_cm">不需要,您已經啟用開發人員選項。</string>
+ <string name="peak_refresh_rate_summary_custom">自動將某些內容的重新整理頻率從 60 調高到 %1$d 赫茲 (Hz)。請注意,開啟這項設定會增加電池用量。</string>
+ <string name="status_bar_double_tap_to_sleep_title">輕觸即可休眠</string>
+ <string name="status_bar_double_tap_to_sleep_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">允許客戶端使用 VPN</string>
+ <string name="tethering_allow_vpn_upstreams_summary">允許熱點客戶端使用此裝置的 VPN 連線進行上游連線</string>
+ <string name="increasing_ring_volume_option_title">漸強鈴聲音量</string>
+ <string name="increasing_ring_min_volume_title">開始音量</string>
+ <string name="increasing_ring_ramp_up_time_title">漸強時間</string>
+ <string name="lockscreen_media_art_title">顯示媒體封面藝術</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="min_refresh_rate_title">最低更新率</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">10 秒</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 秒</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 分鐘</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 分鐘</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 分鐘</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 分鐘</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">VPN 數據</string>
+ <string name="data_usage_app_restrict_vpn_summary">啟用 VPN 數據用量</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi 數據</string>
+ <string name="data_usage_app_restrict_wifi_summary">啟用 Wi\u2011Fi 數據</string>
+ <string name="unlock_scramble_pin_layout_title">亂序佈局</string>
+ <string name="unlock_scramble_pin_layout_summary">解鎖裝置時使用亂序 PIN 碼佈局</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>
+</resources>
diff --git a/res/values-zu/cm_strings.xml b/res/values-zu/cm_strings.xml
new file mode 100644
index 0000000..b4a9a4b
--- /dev/null
+++ b/res/values-zu/cm_strings.xml
@@ -0,0 +1,19 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <string name="peak_refresh_rate_summary_custom">Iphakamisa ngokuzenzakalela isilinganiso sokuvuselela kusukela kokungu-60 ukuya kokungu-%1$d Hz kokunye okuqukethwe. Ikhuphula ukusetshenziswa kwebhethri.</string>
+</resources>
diff --git a/res/values/cm_arrays.xml b/res/values/cm_arrays.xml
new file mode 100644
index 0000000..32c93ce
--- /dev/null
+++ b/res/values/cm_arrays.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2016 The CyanogenMod 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>
+ <!-- Per-app notification settings: Timeout period in which the app notifications are muted. These are shown in a list dialog. -->
+ <string-array name="app_notification_sound_timeout_entries" translatable="false">
+ <item>@string/app_notification_sound_timeout_value_none</item>
+ <item>@string/app_notification_sound_timeout_value_10_seconds</item>
+ <item>@string/app_notification_sound_timeout_value_30_seconds</item>
+ <item>@string/app_notification_sound_timeout_value_1_minute</item>
+ <item>@string/app_notification_sound_timeout_value_5_minutes</item>
+ <item>@string/app_notification_sound_timeout_value_15_minutes</item>
+ <item>@string/app_notification_sound_timeout_value_30_minutes</item>
+ </string-array>
+
+ <!-- Do not translate. -->
+ <string-array name="app_notification_sound_timeout_values" translatable="false">
+ <item>0</item>
+ <item>10000</item>
+ <item>30000</item>
+ <item>60000</item>
+ <item>300000</item>
+ <item>900000</item>
+ <item>1800000</item>
+ </string-array>
+</resources>
diff --git a/res/values/cm_strings.xml b/res/values/cm_strings.xml
new file mode 100644
index 0000000..9cda169
--- /dev/null
+++ b/res/values/cm_strings.xml
@@ -0,0 +1,192 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2017-2023 The LineageOS 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:xliff="urn:oasis:names:tc:xliff:document:1.2">
+ <!-- Private DNS -->
+ <string name="private_dns_mode_cloudflare" translatable="false">Cloudflare DNS</string>
+ <!-- Alternative: 1dot1dot1dot1.cloudflare-dns.com -->
+ <string name="private_dns_hostname_cloudflare" translatable="false">one.one.one.one</string>
+
+ <!-- Advanced keyboard settings -->
+ <string name="keyboard_extras_title">Extras</string>
+ <string name="advanced_keyboard_settings_title">Advanced settings</string>
+
+ <!-- Android debugging as root -->
+ <string name="adb_enable_root">Rooted debugging</string>
+ <string name="adb_enable_summary_root">Allow running Android debugging as root</string>
+
+ <!-- Backup Transport selection settings menu and activity title -->
+ <string name="backup_transport_setting_label">Change backup provider</string>
+ <string name="backup_transport_title">Select backup provider</string>
+
+ <!-- Black theme for dark mode -->
+ <string name="berry_black_theme_title">Pure black</string>
+ <string name="berry_black_theme_summary">Pure black background for dark theme</string>
+
+ <!-- Device Info screen. LineageOS legal. -->
+ <string name="lineagelicense_title">LineageOS legal</string>
+
+ <!-- String for removal of sensitive info on about, depending on tap -->
+ <string name="device_info_protected_single_press">Tap to show info</string>
+
+ <!-- [CHAR LIMIT=NONE] Device Info screen. Countdown for user taps to enable development settings -->
+ <plurals name="show_dev_countdown_cm">
+ <item quantity="one">You are now <xliff:g id="step_count">%1$d</xliff:g> step away from enabling development settings.</item>
+ <item quantity="other">You are now <xliff:g id="step_count">%1$d</xliff:g> steps away from enabling development settings.</item>
+ </plurals>
+ <!-- [CHAR LIMIT=NONE] Device Info screen. Confirmation that developer settings are enabled -->
+ <string name="show_dev_on_cm">You have enabled development settings!</string>
+ <!-- [CHAR LIMIT=NONE] Device Info screen. Okay we get it, stop pressing, you already have it on -->
+ <string name="show_dev_already_cm">No need, you have already enabled development settings.</string>
+
+ <!-- Display settings screen, peak refresh rate settings summary [CHAR LIMIT=NONE] -->
+ <string name="peak_refresh_rate_summary_custom">Automatically raises the refresh rate from 60 to %1$d Hz for some content. Increases battery usage.</string>
+
+ <!-- Double tap to sleep on status bar or lockscreen -->
+ <string name="status_bar_double_tap_to_sleep_title">Tap to sleep</string>
+ <string name="status_bar_double_tap_to_sleep_summary">Double-tap on the status bar or lockscreen to turn off the display</string>
+
+ <!-- High touch polling rate -->
+ <string name="high_touch_polling_rate_title">High touch polling rate</string>
+ <string name="high_touch_polling_rate_summary">Increase touchscreen polling rate</string>
+
+ <!-- Heads-up -->
+ <string name="heads_up_notifications_enabled_title">Heads-up</string>
+ <string name="heads_up_notifications_enabled_summary">Display priority notifications in a small floating window</string>
+
+ <!-- High touch sensitivity -->
+ <string name="high_touch_sensitivity_title">High touch sensitivity</string>
+ <string name="high_touch_sensitivity_summary">Increase touchscreen sensitivity so it can be used while wearing gloves</string>
+
+ <!-- Hotspot extras -->
+ <string name="tethering_allow_vpn_upstreams_title">Allow clients to use VPNs</string>
+ <string name="tethering_allow_vpn_upstreams_summary">Permit hotspot clients to use this device\u2019s VPN connections for upstream connectivity</string>
+
+ <!-- Increasing ring tone volume -->
+ <string name="increasing_ring_volume_option_title">Increasing ring volume</string>
+ <string name="increasing_ring_min_volume_title">Start volume</string>
+ <string name="increasing_ring_ramp_up_time_title">Ramp-up time</string>
+
+ <!-- Lock screen cover art -->
+ <string name="lockscreen_media_art_title">Display media cover art</string>
+
+ <!-- Lock screen pattern size -->
+ <string name="lock_pattern_size_3" translatable="false">3 \u00d7 3</string>
+ <string name="lock_pattern_size_4" translatable="false">4 \u00d7 4</string>
+ <string name="lock_pattern_size_5" translatable="false">5 \u00d7 5</string>
+ <string name="lock_pattern_size_6" translatable="false">6 \u00d7 6</string>
+ <string name="lock_settings_picker_pattern_size_message">Choose a pattern size</string>
+ <!-- Whether a visible red line will be drawn after the user has drawn the unlock pattern incorrectly -->
+ <string name="lockpattern_settings_enable_error_path_title">Show pattern error</string>
+ <!-- Whether the dots will be drawn when using the lockscreen pattern -->
+ <string name="lockpattern_settings_enable_dots_title">Show pattern dots</string>
+
+ <!-- Max refresh rate -->
+ <string name="max_refresh_rate_title">Peak refresh rate</string>
+
+ <!-- Min refresh rate -->
+ <string name="min_refresh_rate_title">Minimum refresh rate</string>
+
+ <!-- Message shown in fingerprint enrollment dialog to locate the sensor -->
+ <string name="fingerprint_enroll_find_sensor_message_front" product="tablet">Locate the fingerprint sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="device">Locate the fingerprint sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_front" product="default">Locate the fingerprint sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="tablet">Locate the fingerprint sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="device">Locate the fingerprint sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_rear" product="default">Locate the fingerprint sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="tablet">Locate the fingerprint sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="device">Locate the fingerprint sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_find_sensor_message_side" product="default">Locate the fingerprint sensor on the side of your phone.</string>
+
+ <!-- Message shown when user touches the icon on the screen, instead of the real fingerprint sensor -->
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="tablet">Touch the sensor on the front of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="device">Touch the sensor on the front of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_front" product="default">Touch the sensor on the front of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="tablet">Touch the sensor on the back of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="device">Touch the sensor on the back of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_rear" product="default">Touch the sensor on the back of your phone.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="tablet">Touch the sensor on the side of your tablet.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="device">Touch the sensor on the side of your device.</string>
+ <string name="fingerprint_enroll_touch_dialog_message_side" product="default">Touch the sensor on the side of your phone.</string>
+
+ <!-- Navigation bar hint -->
+ <string name="show_navbar_hint_title">Navigation hint</string>
+ <string name="show_navbar_hint_summary">Show navigation hint bar at the bottom of the screen</string>
+
+ <!-- Notification sound timeout -->
+ <string name="app_notification_sound_timeout_title">Minimum time between notification sounds</string>
+ <string name="app_notification_sound_timeout_summary_template">Allow sounds or vibration no more than once every <xliff:g id="duration">%1$s</xliff:g></string>
+ <string name="app_notification_sound_timeout_value_none">No restriction</string>
+ <string name="app_notification_sound_timeout_value_10_seconds">10 seconds</string>
+ <string name="app_notification_sound_timeout_value_30_seconds">30 seconds</string>
+ <string name="app_notification_sound_timeout_value_1_minute">1 minute</string>
+ <string name="app_notification_sound_timeout_value_5_minutes">5 minutes</string>
+ <string name="app_notification_sound_timeout_value_15_minutes">10 minutes</string>
+ <string name="app_notification_sound_timeout_value_30_minutes">30 minutes</string>
+
+ <!-- One shot automatic brightness -->
+ <string name="auto_brightness_one_shot_title">One shot auto-brightness</string>
+ <string name="auto_brightness_one_shot_summary">Brightness adjustment will only occur at the moment the screen is turned on</string>
+
+ <!-- Per-app data restrictions -->
+ <string name="data_usage_app_restrict_all">Allow network access</string>
+ <string name="data_usage_app_restrict_all_summary">Enable network usage</string>
+ <string name="data_usage_app_restrict_mobile">Mobile data</string>
+ <string name="data_usage_app_restrict_mobile_summary">Enable usage of mobile data</string>
+ <string name="data_usage_app_restrict_vpn">VPN data</string>
+ <string name="data_usage_app_restrict_vpn_summary">Enable usage of VPN data</string>
+ <string name="data_usage_app_restrict_wifi">Wi\u2011Fi data</string>
+ <string name="data_usage_app_restrict_wifi_summary">Enable usage of Wi\u2011Fi data</string>
+
+ <!-- PIN scramble -->
+ <string name="unlock_scramble_pin_layout_title">Scramble layout</string>
+ <string name="unlock_scramble_pin_layout_summary">Scramble PIN layout when unlocking device</string>
+
+ <!-- Proximity wake -->
+ <string name="proximity_wake_title">Prevent accidental wake-up</string>
+ <string name="proximity_wake_summary">Check the proximity sensor prior to waking up screen</string>
+
+ <!-- Touchscreen gesture settings -->
+ <string name="touchscreen_gesture_settings_title">Touchscreen gestures</string>
+ <string name="touchscreen_gesture_settings_summary">Perform various touchscreen gestures for quick actions</string>
+
+ <!-- Touchscreen hovering -->
+ <string name="touchscreen_hovering_title">Touchscreen hovering</string>
+ <string name="touchscreen_hovering_summary">Allows you to hover the screen like a mouse in web browsers, remote desktops, etc</string>
+
+ <!-- Wake on plug -->
+ <string name="wake_when_plugged_or_unplugged_title">Wake on plug</string>
+ <string name="wake_when_plugged_or_unplugged_summary">Turn the screen on when connecting or disconnecting a power source</string>
+
+ <!-- FastCharge feature -->
+ <string name="fast_charging_title">Fast charging</string>
+ <string name="fast_charging_summary">Disable to reduce the heat produced by the device while charging or to extend the lifespan of the battery</string>
+
+ <!-- Preference and settings suggestion title text for screen off UDFPS (phone) [CHAR LIMIT=60]-->
+ <string name="ambient_display_screen_off_udfps_title" product="default">Long press on fingerprint sensor to unlock phone</string>
+ <!-- Preference and settings suggestion title text for screen off UDFPS (tablet) [CHAR LIMIT=60]-->
+ <string name="ambient_display_screen_off_udfps_title" product="tablet">Long press on fingerprint sensor to unlock tablet</string>
+ <!-- Preference and settings suggestion title text for screen off UDFPS (device) [CHAR LIMIT=60]-->
+ <string name="ambient_display_screen_off_udfps_title" product="device">Long press on fingerprint sensor to unlock device</string>
+ <!-- Summary text for screen off UDFPS [CHAR LIMIT=NONE]-->
+ <string name="ambient_display_screen_off_udfps_summary">To wake up your screen and unlock, long press your under-display fingerprint sensor.</string>
+
+ <!-- Warning message for the sd card setup -->
+ <string name="storage_warning_internal">Warning: This option may not work properly or lead to data loss and is therefore not recommended!</string>
+
+ <!-- Location settings screen, setting summary for Assisted GPS switch -->
+ <string name="assisted_gps_summary">Download satellite assistance data from the internet which can greatly improve the GPS startup performance. For emergency calls, assisted GPS is always allowed.</string>
+</resources>
diff --git a/res/values/config.xml b/res/values/config.xml
index 7444b57..2e53a2f 100755
--- a/res/values/config.xml
+++ b/res/values/config.xml
@@ -689,4 +689,7 @@
<item name="a11y_extra_dim_banner" type="raw" product="default">@raw/extra_dim_banner</item>
<item name="a11y_extra_dim_banner" type="raw" product="tablet">@raw/extra_dim_banner_tablet</item>
+
+ <!-- Whether the given language capitalizes nouns -->
+ <bool name="language_capitalizes_nouns">false</bool>
</resources>
diff --git a/res/values/lineage_config.xml b/res/values/lineage_config.xml
new file mode 100644
index 0000000..3fc6576
--- /dev/null
+++ b/res/values/lineage_config.xml
@@ -0,0 +1,37 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2020-2023 The LineageOS 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>
+ <!-- Indicates whether device has a front facing fingerprint sensor (not udfps). -->
+ <bool name="config_is_front_facing_fps" translatable="false">false</bool>
+
+ <!-- Indicates whether device has a side mounted fingerprint sensor,
+ but a dedicated one, i.e. not embedded in the power button. -->
+ <bool name="config_is_side_fps" translatable="false">false</bool>
+
+ <string-array name="config_ignored_backup_transports" translatable="false">
+ <item>com.android.localtransport/.LocalTransport</item>
+ </string-array>
+
+ <!-- Whether to show peak refresh rate in display settings -->
+ <bool name="config_show_peak_refresh_rate_switch">false</bool>
+
+ <!-- Whether to show min refresh rate in display settings -->
+ <bool name="config_show_min_refresh_rate_switch">false</bool>
+
+ <!-- Max network scan search time in seconds -->
+ <integer name="config_network_scan_helper_max_search_time_sec">300</integer>
+</resources>
diff --git a/res/values/lineage_dimens.xml b/res/values/lineage_dimens.xml
new file mode 100644
index 0000000..d9c2d7d
--- /dev/null
+++ b/res/values/lineage_dimens.xml
@@ -0,0 +1,21 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2019 The LineageOS 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>
+ <!-- Fingerprint -->
+ <dimen name="fingerprint_find_sensor_padding_top">16dp</dimen>
+</resources>
diff --git a/res/values/lineage_styles.xml b/res/values/lineage_styles.xml
new file mode 100644
index 0000000..1ce2e23
--- /dev/null
+++ b/res/values/lineage_styles.xml
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2018 The LineageOS Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<resources>
+ <style name="LockPatternSizeHeaderStyle" parent="android:style/TextAppearance.Material.Subhead">
+ <item name="android:paddingTop">16dp</item>
+ <item name="android:textColor">@color/primary_dark_material_light</item>
+ <item name="android:lineSpacingMultiplier">1.2</item>
+ </style>
+</resources>
diff --git a/res/values/strings.xml b/res/values/strings.xml
index ccf4af7..044d70e 100644
--- a/res/values/strings.xml
+++ b/res/values/strings.xml
@@ -4227,23 +4227,23 @@
<!-- Button title to factory data reset the entire device. The "(factory reset)" part is optional for translation. [CHAR LIMIT=30 BACKUP_MESSAGE_ID=3531267871084279512]-->
<string name="main_clear_short_title">Erase all data (factory reset)</string>
<!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
- <string name="main_clear_desc" product="tablet">"This will erase all data from your tablet\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li>"</string>
+ <string name="main_clear_desc" product="tablet">This will erase all data from your tablet\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li></string>
<!-- SD card & phone storage settings screen, message on screen after user selects Factory data reset [CHAR LIMIT=NONE] -->
- <string name="main_clear_desc" product="default">"This will erase all data from your phone\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li>"</string>
+ <string name="main_clear_desc" product="default">This will erase all data from your phone\u2019s <b>internal storage</b>, including:\n\n<li>Your Google Account</li>\n<li>System and app data and settings</li>\n<li>Downloaded apps</li></string>
<!-- SD card & phone storage settings screen, instructions and list of current accounts. The list of accounts follows this text[CHAR LIMIT=NONE] -->
- <string name="main_clear_accounts" product="default">"\n\nYou are currently signed into the following accounts:\n"</string>
+ <string name="main_clear_accounts" product="default">\n\nYou are currently signed into the following accounts:\n</string>
<!-- SD card & phone storage settings screen, notification if other users are present on the device [CHAR LIMIT=NONE] -->
- <string name="main_clear_other_users_present" product="default">"\n\nThere are other users present on this device.\n"</string>
+ <string name="main_clear_other_users_present" product="default">\n\nThere are other users present on this device.\n</string>
<!-- SD card & phone storage settings screen, list of items in user data storage (USB storage or SD card) that will be erased during this operation [CHAR LIMIT=NONE] -->
- <string name="main_clear_desc_also_erases_external">"<li>Music</li>\n<li>Photos</li>\n<li>Other user data</li>"</string>
+ <string name="main_clear_desc_also_erases_external"><li>Music</li>\n<li>Photos</li>\n<li>Other user data</li></string>
<!-- SD card & phone storage settings screen, list of items on an eSIM (embedded SIM) that will be erased during this operation [CHAR LIMIT=NONE] -->
- <string name="main_clear_desc_also_erases_esim">"<li>eSIMs</li>"</string>
+ <string name="main_clear_desc_also_erases_esim"><li>eSIMs</li></string>
<!-- SD card & phone storage settings screen, notification if there are eSIM (embedded SIM) profiles present that the user's mobile service plan will not be canceled [CHAR LIMIT=NONE] -->
- <string name="main_clear_desc_no_cancel_mobile_plan">"\n\nThis will not cancel your mobile service plan.</string>
+ <string name="main_clear_desc_no_cancel_mobile_plan">\n\nThis will not cancel your mobile service plan.</string>
<!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
- <string name="main_clear_desc_erase_external_storage" product="nosdcard">"\n\nTo clear music, pictures, and other user data, the <b>USB storage</b> needs to be erased."</string>
+ <string name="main_clear_desc_erase_external_storage" product="nosdcard">\n\nTo clear music, pictures, and other user data, the <b>USB storage</b> needs to be erased.</string>
<!-- SD card & phone storage settings screen, instructions about whether to also erase the external storage (SD card) when erasing the internal storage [CHAR LIMIT=NONE] -->
- <string name="main_clear_desc_erase_external_storage" product="default">"\n\nTo clear music, pictures, and other user data, the <b>SD card</b> needs to be erased."</string>
+ <string name="main_clear_desc_erase_external_storage" product="default">\n\nTo clear music, pictures, and other user data, the <b>SD card</b> needs to be erased.</string>
<!-- SD card & phone storage settings screen, label for check box to erase USB storage [CHAR LIMIT=30] -->
<string name="erase_external_storage" product="nosdcard">Erase USB storage</string>
<!-- SD card & phone storage settings screen, label for check box to erase SD card [CHAR LIMIT=30] -->
diff --git a/res/xml/about_legal.xml b/res/xml/about_legal.xml
index d30ceaa..a36ab66 100644
--- a/res/xml/about_legal.xml
+++ b/res/xml/about_legal.xml
@@ -35,6 +35,12 @@
android:title="@string/license_title"
settings:controller="com.android.settings.deviceinfo.legal.LicensePreferenceController" />
+ <!-- LineageOS License information -->
+ <Preference
+ android:key="lineage_license"
+ android:title="@string/lineagelicense_title"
+ settings:controller="com.android.settings.deviceinfo.legal.LineageLicensePreferenceController" />
+
<!-- Terms and conditions -->
<Preference
android:key="terms"
diff --git a/res/xml/app_data_usage.xml b/res/xml/app_data_usage.xml
index aacc1f6..3a2cb43 100644
--- a/res/xml/app_data_usage.xml
+++ b/res/xml/app_data_usage.xml
@@ -59,6 +59,21 @@
android:title="@string/data_usage_app_settings" />
<com.android.settingslib.RestrictedSwitchPreference
+ android:key="restrict_all"
+ android:title="@string/data_usage_app_restrict_all"
+ android:summary="@string/data_usage_app_restrict_all_summary" />
+
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="restrict_wifi"
+ android:title="@string/data_usage_app_restrict_wifi"
+ android:summary="@string/data_usage_app_restrict_wifi_summary" />
+
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="restrict_cellular"
+ android:title="@string/data_usage_app_restrict_mobile"
+ android:summary="@string/data_usage_app_restrict_mobile_summary" />
+
+ <com.android.settingslib.RestrictedSwitchPreference
android:key="restrict_background"
android:title="@string/data_usage_app_restrict_background"
android:summary="@string/data_usage_app_restrict_background_summary"
@@ -66,6 +81,11 @@
settings:restrictedSwitchSummary="@string/disabled_by_admin" />
<com.android.settingslib.RestrictedSwitchPreference
+ android:key="restrict_vpn"
+ android:title="@string/data_usage_app_restrict_vpn"
+ android:summary="@string/data_usage_app_restrict_vpn_summary" />
+
+ <com.android.settingslib.RestrictedSwitchPreference
android:key="unrestricted_data_saver"
android:title="@string/unrestricted_app_title"
android:summary="@string/unrestricted_app_summary"
diff --git a/res/xml/app_info_settings.xml b/res/xml/app_info_settings.xml
index 2bb05d0..b155edc 100644
--- a/res/xml/app_info_settings.xml
+++ b/res/xml/app_info_settings.xml
@@ -207,9 +207,16 @@
<Preference
android:key="app_version"
android:selectable="false"
- android:order="9999"
+ android:order="9998"
settings:controller="com.android.settings.applications.appinfo.AppVersionPreferenceController"
settings:allowDividerAbove="true"
settings:enableCopying="true"/>
+ <Preference
+ android:key="app_package_name"
+ android:selectable="false"
+ android:order="9999"
+ settings:controller="com.android.settings.applications.appinfo.AppPackageNamePreferenceController"
+ settings:enableCopying="true"/>
+
</PreferenceScreen>
diff --git a/res/xml/app_notification_settings.xml b/res/xml/app_notification_settings.xml
index 5b744fb..b2df89c 100644
--- a/res/xml/app_notification_settings.xml
+++ b/res/xml/app_notification_settings.xml
@@ -86,6 +86,14 @@
android:title="@string/app_notification_override_dnd_title"
android:summary="@string/app_notification_override_dnd_summary"/>
+ <com.android.settings.RestrictedListPreference
+ android:key="sound_timeout"
+ android:title="@string/app_notification_sound_timeout_title"
+ android:entries="@array/app_notification_sound_timeout_entries"
+ android:entryValues="@array/app_notification_sound_timeout_values"
+ android:order="1003"
+ android:persistent="false" />
+
<Preference
android:key="app_link"
android:order="1003"
diff --git a/res/xml/auto_brightness_detail.xml b/res/xml/auto_brightness_detail.xml
index 0584d77..b31808e 100644
--- a/res/xml/auto_brightness_detail.xml
+++ b/res/xml/auto_brightness_detail.xml
@@ -32,6 +32,17 @@
settings:userRestriction="no_config_brightness"
settings:controller="com.android.settings.display.AutoBrightnessDetailPreferenceController"/>
+ <com.android.settingslib.RestrictedSwitchPreference
+ android:key="auto_brightness_one_shot"
+ android:title="@string/auto_brightness_one_shot_title"
+ android:summary="@string/auto_brightness_one_shot_summary"
+ android:dependency="auto_brightness"
+ settings:keywords="@string/keywords_display_auto_brightness"
+ settings:controller="com.android.settings.display.AutoBrightnessOneShotPreferenceController"
+ settings:useAdminDisabledSummary="true"
+ settings:userRestriction="no_config_brightness"
+ settings:allowDividerAbove="true" />
+
<com.android.settingslib.widget.FooterPreference
android:key="auto_brightness_footer"
android:title="@string/auto_brightness_description"
diff --git a/res/xml/backup_transport_settings.xml b/res/xml/backup_transport_settings.xml
new file mode 100644
index 0000000..cc8cc9a
--- /dev/null
+++ b/res/xml/backup_transport_settings.xml
@@ -0,0 +1,24 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ ~ Copyright (C) 2020 The Calyx Institute
+ ~
+ ~ Licensed under the Apache License, Version 2.0 (the "License");
+ ~ you may not use this file except in compliance with the License.
+ ~ You may obtain a copy of the License at
+ ~
+ ~ http://www.apache.org/licenses/LICENSE-2.0
+ ~
+ ~ Unless required by applicable law or agreed to in writing, software
+ ~ distributed under the License is distributed on an "AS IS" BASIS,
+ ~ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ ~ See the License for the specific language governing permissions and
+ ~ limitations under the License
+ -->
+
+<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
+ android:title="@string/backup_transport_title">
+
+ <!-- content gets filled programmatically -->
+
+</PreferenceScreen>
diff --git a/res/xml/configure_notification_settings.xml b/res/xml/configure_notification_settings.xml
index 27d5760..a5d5831 100644
--- a/res/xml/configure_notification_settings.xml
+++ b/res/xml/configure_notification_settings.xml
@@ -169,5 +169,18 @@
android:title="@string/notification_assistant_title"
android:summary="@string/notification_assistant_summary"
settings:controller="com.android.settings.notification.NotificationAssistantPreferenceController"/>
+
+ <!-- Heads up -->
+ <lineageos.preference.GlobalSettingSwitchPreference
+ android:key="heads_up_notifications_enabled"
+ android:order="24"
+ android:title="@string/heads_up_notifications_enabled_title"
+ android:summary="@string/heads_up_notifications_enabled_summary" />
+
+ <!-- Notification lights -->
+ <lineageos.preference.LineagePartsPreference
+ android:key="notification_lights"
+ settings:requiresConfig="@*android:bool/config_intrusiveNotificationLed"
+ settings:replacesKey="notification_pulse" />
</PreferenceCategory>
</PreferenceScreen>
diff --git a/res/xml/dark_mode_settings.xml b/res/xml/dark_mode_settings.xml
index 7f13659..5ad39a2 100644
--- a/res/xml/dark_mode_settings.xml
+++ b/res/xml/dark_mode_settings.xml
@@ -62,4 +62,10 @@
settings:searchable="false"
settings:controller="com.android.settings.display.darkmode.DarkModeCustomBedtimePreferenceController" />
+ <lineageos.preference.LineageSecureSettingSwitchPreference
+ android:key="berry_black_theme"
+ android:dependency="dark_ui_activated"
+ android:title="@string/berry_black_theme_title"
+ android:summary="@string/berry_black_theme_summary"
+ android:defaultValue="false" />
</PreferenceScreen>
diff --git a/res/xml/development_settings.xml b/res/xml/development_settings.xml
index 19c1209..160d81d 100644
--- a/res/xml/development_settings.xml
+++ b/res/xml/development_settings.xml
@@ -137,6 +137,13 @@
android:title="@string/enable_adb"
android:summary="@string/enable_adb_summary" />
+ <SwitchPreference
+ android:key="enable_adb_root"
+ android:title="@string/adb_enable_root"
+ android:summary="@string/adb_enable_summary_root"
+ android:dependency="enable_adb"
+ android:persistent="false" />
+
<Preference android:key="clear_adb_keys"
android:title="@string/clear_adb_keys" />
diff --git a/res/xml/display_settings.xml b/res/xml/display_settings.xml
index ad5236e..43f4bc4 100644
--- a/res/xml/display_settings.xml
+++ b/res/xml/display_settings.xml
@@ -86,6 +86,10 @@
settings:controller="com.android.settings.display.NightDisplayPreferenceController"
settings:keywords="@string/keywords_display_night_display"/>
+ <lineageos.preference.LineagePartsPreference
+ android:key="livedisplay"
+ settings:requiresConfig="@*lineageos.platform:bool/config_enableLiveDisplay" />
+
<Preference
android:key="color_mode"
android:title="@string/color_mode_title"
@@ -107,16 +111,10 @@
settings:keywords="@string/keywords_auto_rotate"
settings:controller="com.android.settings.display.AutoRotatePreferenceController"/>
- <!--
- Auto-rotation preference that will be shown when device state based auto-rotation
- settings are available.
- -->
- <Preference
- android:key="device_state_auto_rotate"
- android:title="@string/accelerometer_title"
- android:fragment="com.android.settings.display.DeviceStateAutoRotateDetailsFragment"
- settings:keywords="@string/keywords_auto_rotate"
- settings:controller="com.android.settings.display.DeviceStateAutoRotateOverviewController"/>
+ <lineageos.preference.LineagePartsPreference
+ android:key="rotation"
+ settings:replacesKey="auto_rotate"
+ settings:requiresFeature="android.hardware.sensor.accelerometer" />
<Preference
android:key="screen_resolution"
@@ -131,10 +129,21 @@
android:summary="@string/display_white_balance_summary"
settings:controller="com.android.settings.display.DisplayWhiteBalancePreferenceController"/>
+ <ListPreference
+ android:key="max_refresh_rate"
+ android:title="@string/max_refresh_rate_title"
+ android:summary="@string/summary_placeholder"
+ settings:controller="com.android.settings.display.PeakRefreshRateListPreferenceController" />
+
+ <ListPreference
+ android:key="min_refresh_rate"
+ android:title="@string/min_refresh_rate_title"
+ android:summary="@string/summary_placeholder"
+ settings:controller="com.android.settings.display.MinRefreshRatePreferenceController" />
+
<SwitchPreference
android:key="peak_refresh_rate"
android:title="@string/peak_refresh_rate_title"
- android:summary="@string/peak_refresh_rate_summary"
settings:controller="com.android.settings.display.PeakRefreshRatePreferenceController"/>
<SwitchPreference
@@ -142,6 +151,10 @@
android:title="@string/show_operator_name_title"
android:summary="@string/show_operator_name_summary"/>
+ <lineageos.preference.LineagePartsPreference
+ android:key="long_screen_settings"
+ settings:requiresConfig="@*lineageos.platform:bool/config_haveHigherAspectRatioScreen" />
+
<Preference
android:key="screensaver"
android:title="@string/screensaver_settings_title"
@@ -163,6 +176,41 @@
android:title="@string/tap_to_wake"
android:summary="@string/tap_to_wake_summary"/>
+ <!-- Prevent accidental wake-up -->
+ <lineageos.preference.LineageSystemSettingSwitchPreference
+ android:key="proximity_on_wake"
+ android:title="@string/proximity_wake_title"
+ android:summary="@string/proximity_wake_summary"
+ android:defaultValue="@*lineageos.platform:bool/config_proximityCheckOnWakeEnabledByDefault"
+ settings:requiresConfig="@*lineageos.platform:bool/config_proximityCheckOnWake" />
+
+ <!-- Double tap to sleep -->
+ <lineageos.preference.LineageSystemSettingSwitchPreference
+ android:key="double_tap_sleep_gesture"
+ android:title="@string/status_bar_double_tap_to_sleep_title"
+ android:summary="@string/status_bar_double_tap_to_sleep_summary"
+ android:defaultValue="true" />
+
+ <lineageos.preference.LineageGlobalSettingSwitchPreference
+ android:key="wake_when_plugged_or_unplugged"
+ android:title="@string/wake_when_plugged_or_unplugged_title"
+ android:summary="@string/wake_when_plugged_or_unplugged_summary"
+ android:defaultValue="@*android:bool/config_unplugTurnsOnScreen" />
+
+ <lineageos.preference.LineageSystemSettingSwitchPreference
+ android:key="high_touch_polling_rate_enable"
+ android:title="@string/high_touch_polling_rate_title"
+ android:summary="@string/high_touch_polling_rate_summary"
+ android:defaultValue="false"
+ settings:requiresFeature="lineagehardware:FEATURE_HIGH_TOUCH_POLLING_RATE" />
+
+ <lineageos.preference.LineageSystemSettingSwitchPreference
+ android:key="high_touch_sensitivity_enable"
+ android:title="@string/high_touch_sensitivity_title"
+ android:summary="@string/high_touch_sensitivity_summary"
+ android:defaultValue="false"
+ settings:requiresFeature="lineagehardware:FEATURE_HIGH_TOUCH_SENSITIVITY" />
+
<ListPreference
android:key="theme"
android:title="@string/device_theme"
diff --git a/res/xml/double_tap_power_settings.xml b/res/xml/double_tap_power_settings.xml
index f4d7607..37a5028 100644
--- a/res/xml/double_tap_power_settings.xml
+++ b/res/xml/double_tap_power_settings.xml
@@ -24,7 +24,7 @@
<com.android.settingslib.widget.IllustrationPreference
android:key="gesture_double_tap_power_video"
settings:searchable="false"
- app:lottie_rawRes="@drawable/quickly_open_camera"/>
+ app:lottie_rawRes="@raw/lottie_quickly_open_camera"/>
<SwitchPreference
android:key="gesture_double_tap_power"
diff --git a/res/xml/firmware_version.xml b/res/xml/firmware_version.xml
index 41f7733..4eb25fd 100644
--- a/res/xml/firmware_version.xml
+++ b/res/xml/firmware_version.xml
@@ -30,6 +30,14 @@
settings:searchable="false"
settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionDetailPreferenceController"/>
+ <!-- Lineage version -->
+ <Preference
+ android:key="lineage_version"
+ android:title="@*lineageos.platform:string/lineage_version"
+ android:summary="@string/summary_placeholder"
+ settings:enableCopying="true"
+ settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVersionDetailPreferenceController"/>
+
<!-- Security patch -->
<Preference
android:key="security_key"
@@ -37,13 +45,23 @@
settings:enableCopying="true"
settings:controller="com.android.settings.deviceinfo.firmwareversion.SecurityPatchLevelPreferenceController"/>
+ <!-- Vendor security patch -->
+ <Preference
+ android:key="vendor_security_key"
+ android:title="@*lineageos.platform:string/lineage_vendor_security_patch"
+ android:selectable="false"
+ settings:enableCopying="true"
+ settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVendorSecurityPatchLevelPreferenceController"/>
+
<!-- Mainline module version -->
+ <!--
<Preference
android:key="module_version"
android:title="@string/module_version"
android:summary="@string/summary_placeholder"
settings:enableCopying="true"
settings:controller="com.android.settings.deviceinfo.firmwareversion.MainlineModuleVersionPreferenceController"/>
+ -->
<!-- Baseband -->
<Preference
@@ -63,6 +81,15 @@
settings:enableCopying="true"
settings:controller="com.android.settings.deviceinfo.firmwareversion.KernelVersionPreferenceController"/>
+ <!-- Build date -->
+ <Preference
+ android:key="os_build_date"
+ android:title="@*lineageos.platform:string/build_date"
+ android:summary="@string/summary_placeholder"
+ android:selectable="false"
+ settings:enableCopying="true"
+ settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageBuildDatePreferenceController"/>
+
<!-- Build -->
<Preference
android:key="os_build_number"
diff --git a/res/xml/gesture_navigation_settings.xml b/res/xml/gesture_navigation_settings.xml
index 022583c..a3ce307 100644
--- a/res/xml/gesture_navigation_settings.xml
+++ b/res/xml/gesture_navigation_settings.xml
@@ -23,6 +23,13 @@
android:title="@string/gesture_settings_activity_title"
settings:keywords="@string/keywords_gesture_navigation_settings">
+ <lineageos.preference.LineageSystemSettingSwitchPreference
+ android:key="navigation_bar_hint"
+ android:title="@string/show_navbar_hint_title"
+ android:summary="@string/show_navbar_hint_summary"
+ android:defaultValue="true"
+ settings:requiresPackage="org.lineageos.overlay.customization.navbar.nohint" />
+
<PreferenceCategory
android:key="assistant_gesture_category"
android:persistent="false"
diff --git a/res/xml/gestures.xml b/res/xml/gestures.xml
index 4881360..10ed22d 100644
--- a/res/xml/gestures.xml
+++ b/res/xml/gestures.xml
@@ -20,6 +20,19 @@
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/gesture_preference_title">
+ <lineageos.preference.LineagePartsPreference
+ android:key="touchscreen_gesture_settings"
+ settings:requiresFeature="lineagehardware:FEATURE_TOUCHSCREEN_GESTURES" />
+
+ <lineageos.preference.RemotePreference
+ android:key="device_touchscreen_gesture_settings"
+ android:title="@string/touchscreen_gesture_settings_title"
+ android:summary="@string/touchscreen_gesture_settings_summary"
+ settings:replacesKey="touchscreen_gesture_settings"
+ settings:requiresFeature="lineagehardware:FEATURE_TOUCHSCREEN_GESTURES">
+ <intent android:action="org.lineageos.settings.device.GESTURE_SETTINGS" />
+ </lineageos.preference.RemotePreference>
+
<Preference
android:key="gesture_assist_input_summary"
android:title="@string/assist_gesture_title"
@@ -82,6 +95,13 @@
settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
<Preference
+ android:key="gesture_screen_off_udfps_input_summary"
+ android:title="@string/ambient_display_screen_off_udfps_title"
+ android:fragment="com.android.settings.gestures.ScreenOffUdfpsSettings"
+ settings:searchable="false"
+ settings:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController" />
+
+ <Preference
android:key="gesture_power_menu_summary"
android:title="@string/power_menu_setting_name"
android:fragment="com.android.settings.gestures.PowerMenuSettings"
diff --git a/res/xml/language_and_input.xml b/res/xml/language_and_input.xml
index 64b5003..415edb7 100644
--- a/res/xml/language_and_input.xml
+++ b/res/xml/language_and_input.xml
@@ -105,6 +105,14 @@
android:key="pointer_speed"
android:title="@string/pointer_speed"
android:dialogTitle="@string/pointer_speed" />
+
+ <lineageos.preference.LineageSecureSettingSwitchPreference
+ android:key="feature_touch_hovering"
+ android:title="@string/touchscreen_hovering_title"
+ android:summary="@string/touchscreen_hovering_summary"
+ android:defaultValue="false"
+ settings:requiresFeature="lineagehardware:FEATURE_TOUCH_HOVERING" />
+
</PreferenceCategory>
<SwitchPreference
diff --git a/res/xml/location_settings.xml b/res/xml/location_settings.xml
index fe87efd..477bbe2 100644
--- a/res/xml/location_settings.xml
+++ b/res/xml/location_settings.xml
@@ -35,6 +35,12 @@
settings:controller="com.android.settings.location.RecentLocationAccessSeeAllButtonPreferenceController"
settings:searchable="false"/>
+ <SwitchPreference
+ android:key="assisted_gps"
+ android:title="@string/assisted_gps"
+ android:summary="@string/assisted_gps_summary"
+ settings:controller="com.android.settings.location.AgpsPreferenceController"/>
+
<PreferenceCategory
android:key="location_advanced_settings"
android:layout="@layout/preference_category_no_label">
diff --git a/res/xml/my_device_info.xml b/res/xml/my_device_info.xml
index 9b80410..7eeffee 100644
--- a/res/xml/my_device_info.xml
+++ b/res/xml/my_device_info.xml
@@ -23,10 +23,9 @@
<com.android.settingslib.widget.LayoutPreference
android:key="my_device_info_header"
- android:order="0"
+ android:order="-1"
android:layout="@layout/settings_entity_header"
- android:selectable="false"
- settings:isPreferenceVisible="false"/>
+ android:selectable="false"/>
<PreferenceCategory
android:key="basic_info_category"
@@ -57,7 +56,6 @@
android:order="3"
android:title="@string/status_number"
android:summary="@string/summary_placeholder"
- android:selectable="false"
settings:isPreferenceVisible="@bool/config_show_sim_info"
settings:controller="com.android.settings.deviceinfo.PhoneNumberPreferenceController"
settings:enableCopying="true"/>
@@ -133,6 +131,15 @@
android:summary="@string/summary_placeholder"
android:fragment="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionSettings"
settings:controller="com.android.settings.deviceinfo.firmwareversion.FirmwareVersionPreferenceController"/>
+
+ <!-- Lineage version -->
+ <Preference
+ android:key="lineage_os_version"
+ android:order="43"
+ android:title="@*lineageos.platform:string/lineage_version"
+ android:summary="@string/summary_placeholder"
+ settings:enableCopying="true"
+ settings:controller="com.android.settings.deviceinfo.firmwareversion.LineageVersionDetailPreferenceController"/>
</PreferenceCategory>
<PreferenceCategory
diff --git a/res/xml/physical_keyboard_settings.xml b/res/xml/physical_keyboard_settings.xml
index 96946a9..f00f0f8 100644
--- a/res/xml/physical_keyboard_settings.xml
+++ b/res/xml/physical_keyboard_settings.xml
@@ -15,6 +15,7 @@
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/physical_keyboard_title">
<!-- Additional preference screens are inserted here programmatically
with low order values to set the key map of each attached keyboard. -->
@@ -32,4 +33,20 @@
android:title="@string/keyboard_shortcuts_helper"
android:summary="@string/keyboard_shortcuts_helper_summary" />
</PreferenceCategory>
+
+ <!-- Device-specific keyboard settings. -->
+ <PreferenceCategory
+ android:key="keyboard_extras_category"
+ android:title="@string/keyboard_extras_title" >
+
+ <lineageos.preference.RemotePreference
+ android:key="advanced_keyboard_settings"
+ android:title="@string/advanced_keyboard_settings_title"
+ settings:requiresAction="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS">
+ <intent
+ android:action="org.lineageos.settings.device.ADVANCED_KEYBOARD_SETTINGS" />
+ </lineageos.preference.RemotePreference>
+
+ </PreferenceCategory>
+
</PreferenceScreen>
diff --git a/res/xml/power_usage_summary.xml b/res/xml/power_usage_summary.xml
index 9e86bf5..a02851d 100644
--- a/res/xml/power_usage_summary.xml
+++ b/res/xml/power_usage_summary.xml
@@ -58,12 +58,29 @@
settings:controller="com.android.settings.fuelgauge.batterytip.BatteryManagerPreferenceController"
settings:keywords="@string/keywords_battery_adaptive_preferences" />
+ <!-- Charging control -->
+ <lineageos.preference.LineagePartsPreference
+ android:key="charging_control"
+ settings:requiresService="lineagehealth" />
+
+ <!-- Battery light -->
+ <lineageos.preference.LineagePartsPreference
+ android:key="battery_lights"
+ settings:requiresConfig="@*lineageos.platform:integer/config_deviceLightCapabilities"
+ settings:requiresConfigMask="64" />
+
<SwitchPreference
android:key="battery_percentage"
android:title="@string/battery_percentage"
android:summary="@string/battery_percentage_description"
settings:controller="com.android.settings.display.BatteryPercentagePreferenceController" />
+ <SwitchPreference
+ android:key="fast_charging"
+ android:title="@string/fast_charging_title"
+ android:summary="@string/fast_charging_summary"
+ settings:controller="com.android.settings.fuelgauge.FastChargingPreferenceController"/>
+
<com.android.settingslib.widget.FooterPreference
android:key="power_usage_footer"
android:title="@string/battery_footer_summary"
diff --git a/res/xml/screen_lock_settings.xml b/res/xml/screen_lock_settings.xml
index 930120e..4deb8be 100644
--- a/res/xml/screen_lock_settings.xml
+++ b/res/xml/screen_lock_settings.xml
@@ -27,6 +27,14 @@
android:key="visiblepattern"
android:title="@string/lockpattern_settings_enable_visible_pattern_title" />
+ <SwitchPreference
+ android:key="visible_error_pattern"
+ android:title="@string/lockpattern_settings_enable_error_path_title"/>
+
+ <SwitchPreference
+ android:key="visibledots"
+ android:title="@string/lockpattern_settings_enable_dots_title"/>
+
<!-- available in pin -->
<SwitchPreference
android:key="enhancedPinPrivacy"
@@ -46,4 +54,10 @@
android:key="power_button_instantly_locks"
android:title="@string/lockpattern_settings_enable_power_button_instantly_locks" />
+ <!-- Lineage additions, available in pin/pattern/password/slide -->
+ <SwitchPreference
+ android:key="lockscreen_scramble_pin_layout"
+ android:title="@string/unlock_scramble_pin_layout_title"
+ android:summary="@string/unlock_scramble_pin_layout_summary" />
+
</PreferenceScreen>
diff --git a/res/xml/screen_off_udfps_settings.xml b/res/xml/screen_off_udfps_settings.xml
new file mode 100644
index 0000000..f723321
--- /dev/null
+++ b/res/xml/screen_off_udfps_settings.xml
@@ -0,0 +1,30 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!-- Copyright (C) 2022 The Android Open Source Project
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+
+<PreferenceScreen
+ xmlns:android="http://schemas.android.com/apk/res/android"
+ xmlns:app="http://schemas.android.com/apk/res-auto"
+ android:title="@string/ambient_display_screen_off_udfps_title">
+
+ <SwitchPreference
+ android:key="gesture_screen_off_udfps"
+ android:title="@string/ambient_display_screen_off_udfps_title"
+ android:summary="@string/ambient_display_screen_off_udfps_summary"
+ app:keywords="@string/keywords_gesture"
+ app:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController"
+ app:allowDividerAbove="true" />
+
+</PreferenceScreen>
diff --git a/res/xml/security_lockscreen_settings.xml b/res/xml/security_lockscreen_settings.xml
index 80e8fe6..77a3212 100644
--- a/res/xml/security_lockscreen_settings.xml
+++ b/res/xml/security_lockscreen_settings.xml
@@ -45,6 +45,11 @@
android:title="@string/owner_info_settings_title"
android:summary="@string/owner_info_settings_summary" />
+ <lineageos.preference.LineageSecureSettingSwitchPreference
+ android:key="lockscreen_media_metadata"
+ android:title="@string/lockscreen_media_art_title"
+ android:defaultValue="false" />
+
<SwitchPreference
android:key="lockscreen_privacy_wallet_switch"
android:title="@string/lockscreen_privacy_wallet_setting_toggle"
@@ -116,12 +121,26 @@
settings:searchable="false"
settings:controller="com.android.settings.gestures.PickupGesturePreferenceController" />
+ <Preference
+ android:key="gesture_screen_off_udfps_input_summary"
+ android:title="@string/ambient_display_screen_off_udfps_title"
+ android:fragment="com.android.settings.gestures.ScreenOffUdfpsSettings"
+ settings:searchable="false"
+ settings:controller="com.android.settings.gestures.ScreenOffUdfpsPreferenceController" />
+
<SwitchPreference
android:key="ambient_display_notification"
android:title="@string/doze_title"
android:summary="@string/doze_summary"
settings:controller="com.android.settings.display.AmbientDisplayNotificationsPreferenceController" />
+ <lineageos.preference.RemotePreference
+ android:key="doze_device_settings"
+ android:title="@string/ambient_display_screen_title"
+ settings:replacesKey="ambient_display_always_on|ambient_display_notification">
+ <intent android:action="org.lineageos.settings.device.DOZE_SETTINGS" />
+ </lineageos.preference.RemotePreference>
+
</PreferenceCategory>
<!-- Work profile settings are at the bottom with high order value to avoid users thinking that
diff --git a/res/xml/security_settings_pattern_size.xml b/res/xml/security_settings_pattern_size.xml
new file mode 100644
index 0000000..bb0cb23
--- /dev/null
+++ b/res/xml/security_settings_pattern_size.xml
@@ -0,0 +1,44 @@
+<?xml version="1.0" encoding="utf-8"?>
+<!--
+ Copyright (C) 2012-2013 The CyanogenMod 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">
+
+ <Preference
+ android:icon="@drawable/ic_security_pattern_3x3"
+ android:key="lock_pattern_size_3"
+ android:title="@string/lock_pattern_size_3"
+ android:persistent="false"/>
+
+ <Preference
+ android:icon="@drawable/ic_security_pattern_4x4"
+ android:key="lock_pattern_size_4"
+ android:title="@string/lock_pattern_size_4"
+ android:persistent="false"/>
+
+ <Preference
+ android:icon="@drawable/ic_security_pattern_5x5"
+ android:key="lock_pattern_size_5"
+ android:title="@string/lock_pattern_size_5"
+ android:persistent="false"/>
+
+ <Preference
+ android:icon="@drawable/ic_security_pattern_6x6"
+ android:key="lock_pattern_size_6"
+ android:title="@string/lock_pattern_size_6"
+ android:persistent="false"/>
+
+</PreferenceScreen>
diff --git a/res/xml/sound_settings.xml b/res/xml/sound_settings.xml
index 7181e80..9493bba 100644
--- a/res/xml/sound_settings.xml
+++ b/res/xml/sound_settings.xml
@@ -97,6 +97,21 @@
android:order="-140"
settings:controller="com.android.settings.notification.AlarmVolumePreferenceController"/>
+ <!-- Increasing ring -->
+ <lineageos.preference.LineageSystemSettingSwitchPreference
+ android:key="increasing_ring"
+ android:title="@string/increasing_ring_volume_option_title"
+ android:order="-136"
+ settings:controller="com.android.settings.notification.IncreasingRingPreferenceController" />
+
+ <!-- Increasing ring volume -->
+ <com.android.settings.notification.IncreasingRingVolumePreference
+ android:key="increasing_ring_volume"
+ android:icon="@drawable/ring_notif_increasing"
+ android:dependency="increasing_ring"
+ android:order="-135"
+ settings:controller="com.android.settings.notification.IncreasingRingVolumePreferenceController" />
+
<!-- TODO(b/174964721): make this a PrimarySwitchPreference -->
<!-- Interruptions -->
<com.android.settingslib.RestrictedPreference
@@ -189,6 +204,11 @@
android:title="@string/charging_sounds_title"
android:order="-40"/>
+ <!-- Custom charging sounds -->
+ <lineageos.preference.LineagePartsPreference
+ android:key="charging_sounds_settings"
+ settings:replacesKey="charging_sounds" />
+
<!-- Docking sounds -->
<SwitchPreference
android:key="docking_sounds"
diff --git a/res/xml/tether_prefs.xml b/res/xml/tether_prefs.xml
index 97ad5fd..23d7df2 100644
--- a/res/xml/tether_prefs.xml
+++ b/res/xml/tether_prefs.xml
@@ -49,6 +49,12 @@
android:summary="@string/ethernet_tethering_subtext"
settings:keywords="@string/keywords_hotspot_tethering" />
+ <lineageos.preference.LineageSecureSettingSwitchPreference
+ android:key="tethering_allow_vpn_upstreams"
+ android:title="@string/tethering_allow_vpn_upstreams_title"
+ android:summary="@string/tethering_allow_vpn_upstreams_summary"
+ android:defaultValue="false" />
+
<com.android.settingslib.widget.FooterPreference
android:key="disabled_on_data_saver"
android:title="@string/tether_settings_disabled_on_data_saver"
diff --git a/res/xml/usb_details_fragment.xml b/res/xml/usb_details_fragment.xml
index 96a449b..a3be090 100644
--- a/res/xml/usb_details_fragment.xml
+++ b/res/xml/usb_details_fragment.xml
@@ -17,14 +17,9 @@
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
- android:title="@string/usb_preference"
+ android:title="@string/usb_pref"
android:key="usb_details_fragment">
- <com.android.settingslib.widget.LayoutPreference
- android:key="usb_device_header"
- android:layout="@layout/settings_entity_header"
- android:selectable="false"/>
-
<PreferenceCategory
android:key="usb_details_data_role"
android:title="@string/usb_control_title"/>
diff --git a/src/com/android/settings/DisplaySettings.java b/src/com/android/settings/DisplaySettings.java
index 97b9aae..1de331d 100644
--- a/src/com/android/settings/DisplaySettings.java
+++ b/src/com/android/settings/DisplaySettings.java
@@ -33,6 +33,8 @@
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;
+import lineageos.hardware.LineageHardwareManager;
+
import java.util.ArrayList;
import java.util.List;
@@ -40,6 +42,10 @@
public class DisplaySettings extends DashboardFragment {
private static final String TAG = "DisplaySettings";
+ private static final String KEY_HIGH_TOUCH_POLLING_RATE = "high_touch_polling_rate_enable";
+ private static final String KEY_HIGH_TOUCH_SENSITIVITY = "high_touch_sensitivity_enable";
+ private static final String KEY_PROXIMITY_ON_WAKE = "proximity_on_wake";
+
@Override
public int getMetricsCategory() {
return SettingsEnums.DISPLAY;
@@ -87,6 +93,25 @@
new BaseSearchIndexProvider(R.xml.display_settings) {
@Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
+ if (!hardware.isSupported(
+ LineageHardwareManager.FEATURE_HIGH_TOUCH_POLLING_RATE)) {
+ keys.add(KEY_HIGH_TOUCH_POLLING_RATE);
+ }
+ if (!hardware.isSupported(
+ LineageHardwareManager.FEATURE_HIGH_TOUCH_SENSITIVITY)) {
+ keys.add(KEY_HIGH_TOUCH_SENSITIVITY);
+ }
+ if (!context.getResources().getBoolean(
+ org.lineageos.platform.internal.R.bool.config_proximityCheckOnWake)) {
+ keys.add(KEY_PROXIMITY_ON_WAKE);
+ }
+ return keys;
+ }
+
+ @Override
public List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
return buildPreferenceControllers(context, null);
diff --git a/src/com/android/settings/SetupWizardUtils.java b/src/com/android/settings/SetupWizardUtils.java
index 25e9159..29c4b21 100644
--- a/src/com/android/settings/SetupWizardUtils.java
+++ b/src/com/android/settings/SetupWizardUtils.java
@@ -98,7 +98,7 @@
}
}
}
- return R.style.GlifTheme;
+ return R.style.GlifV3Theme;
}
public static int getTransparentTheme(Context context, Intent intent) {
diff --git a/src/com/android/settings/Utils.java b/src/com/android/settings/Utils.java
index 58788de..07d2549 100644
--- a/src/com/android/settings/Utils.java
+++ b/src/com/android/settings/Utils.java
@@ -1247,4 +1247,11 @@
final UserManager userManager = context.getSystemService(UserManager.class);
return userManager != null && userManager.isSystemUser();
}
+
+ public static String normalizeTitleCaseIfRequired(Context context, String input) {
+ if (!context.getResources().getBoolean(R.bool.language_capitalizes_nouns)) {
+ return input.toLowerCase();
+ }
+ return input;
+ }
}
diff --git a/src/com/android/settings/applications/AppPermissionsPreferenceController.java b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
index 4458ea4..68a97d7 100644
--- a/src/com/android/settings/applications/AppPermissionsPreferenceController.java
+++ b/src/com/android/settings/applications/AppPermissionsPreferenceController.java
@@ -23,6 +23,7 @@
import androidx.preference.Preference;
import com.android.settings.R;
+import com.android.settings.Utils;
import com.android.settings.core.BasePreferenceController;
import com.android.settingslib.applications.PermissionsSummaryHelper;
@@ -106,12 +107,12 @@
CharSequence summary;
if (!permissionsToShow.isEmpty()) {
+ final String formatted = Utils.normalizeTitleCaseIfRequired(mContext,
+ ListFormatter.getInstance().format(permissionsToShow));
if (isMoreShowed) {
- summary = mContext.getString(R.string.app_permissions_summary_more,
- ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+ summary = mContext.getString(R.string.app_permissions_summary_more, formatted);
} else {
- summary = mContext.getString(R.string.app_permissions_summary,
- ListFormatter.getInstance().format(permissionsToShow).toLowerCase());
+ summary = mContext.getString(R.string.app_permissions_summary, formatted);
}
} else {
summary = mContext.getString(
diff --git a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
index 54455d4..e1e5851 100755
--- a/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
+++ b/src/com/android/settings/applications/appinfo/AppInfoDashboardFragment.java
@@ -178,6 +178,7 @@
use(AppAllServicesPreferenceController.class).setPackageName(packageName);
use(AppStoragePreferenceController.class).setParentFragment(this);
use(AppVersionPreferenceController.class).setParentFragment(this);
+ use(AppPackageNamePreferenceController.class).setParentFragment(this);
use(InstantAppDomainsPreferenceController.class).setParentFragment(this);
final HibernationSwitchPreferenceController appHibernationSettings =
diff --git a/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java b/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java
new file mode 100644
index 0000000..bd4f12f
--- /dev/null
+++ b/src/com/android/settings/applications/appinfo/AppPackageNamePreferenceController.java
@@ -0,0 +1,31 @@
+/*
+ * Copyright (C) 2018 The LineageOS 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.appinfo;
+
+import android.content.Context;
+
+public class AppPackageNamePreferenceController extends AppInfoPreferenceControllerBase {
+
+ public AppPackageNamePreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return mParent.getPackageInfo().packageName;
+ }
+}
diff --git a/src/com/android/settings/applications/manageapplications/ManageApplications.java b/src/com/android/settings/applications/manageapplications/ManageApplications.java
index 2186bc1..e147688 100644
--- a/src/com/android/settings/applications/manageapplications/ManageApplications.java
+++ b/src/com/android/settings/applications/manageapplications/ManageApplications.java
@@ -767,9 +767,11 @@
}
mOptionsMenu.findItem(R.id.advanced).setVisible(false);
- mOptionsMenu.findItem(R.id.sort_order_alpha).setVisible(mListType == LIST_TYPE_STORAGE
+ mOptionsMenu.findItem(R.id.sort_order_alpha).setVisible(
+ (mListType == LIST_TYPE_STORAGE || mListType == LIST_TYPE_MAIN)
&& mSortOrder != R.id.sort_order_alpha);
- mOptionsMenu.findItem(R.id.sort_order_size).setVisible(mListType == LIST_TYPE_STORAGE
+ mOptionsMenu.findItem(R.id.sort_order_size).setVisible(
+ (mListType == LIST_TYPE_STORAGE || mListType == LIST_TYPE_MAIN)
&& mSortOrder != R.id.sort_order_size);
mOptionsMenu.findItem(R.id.show_system).setVisible(!mShowSystem
diff --git a/src/com/android/settings/backup/BackupSettingsFragment.java b/src/com/android/settings/backup/BackupSettingsFragment.java
index 7df19f5..7fcbd63 100644
--- a/src/com/android/settings/backup/BackupSettingsFragment.java
+++ b/src/com/android/settings/backup/BackupSettingsFragment.java
@@ -42,6 +42,13 @@
super.onCreate(savedInstanceState);
}
+ @Override
+ public void onStart() {
+ super.onStart();
+ // update information when we navigate back from TransportActivity
+ displayResourceTilesToScreen(getPreferenceScreen());
+ }
+
/**
* Get the tag string for logging.
*/
diff --git a/src/com/android/settings/backup/BackupSettingsPreferenceController.java b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
index 4e0e3b4..3208ae4 100644
--- a/src/com/android/settings/backup/BackupSettingsPreferenceController.java
+++ b/src/com/android/settings/backup/BackupSettingsPreferenceController.java
@@ -30,24 +30,24 @@
implements PreferenceControllerMixin {
private static final String BACKUP_SETTINGS = "backup_settings";
private static final String MANUFACTURER_SETTINGS = "manufacturer_backup";
- private Intent mBackupSettingsIntent;
- private CharSequence mBackupSettingsTitle;
- private String mBackupSettingsSummary;
+ private final BackupSettingsHelper settingsHelper;
private Intent mManufacturerIntent;
private String mManufacturerLabel;
public BackupSettingsPreferenceController(Context context) {
super(context);
- BackupSettingsHelper settingsHelper = new BackupSettingsHelper(context);
- mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
- mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
- mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+ settingsHelper = new BackupSettingsHelper(context);
mManufacturerIntent = settingsHelper.getIntentProvidedByManufacturer();
mManufacturerLabel = settingsHelper.getLabelProvidedByManufacturer();
}
@Override
public void displayPreference(PreferenceScreen screen) {
+ // we don't get these in the constructor, so we can get updates for them later
+ Intent mBackupSettingsIntent = settingsHelper.getIntentForBackupSettings();
+ CharSequence mBackupSettingsTitle = settingsHelper.getLabelForBackupSettings();
+ String mBackupSettingsSummary = settingsHelper.getSummaryForBackupSettings();
+
Preference backupSettings = screen.findPreference(BACKUP_SETTINGS);
Preference manufacturerSettings = screen.findPreference(MANUFACTURER_SETTINGS);
backupSettings.setIntent(mBackupSettingsIntent);
diff --git a/src/com/android/settings/backup/transport/Transport.java b/src/com/android/settings/backup/transport/Transport.java
new file mode 100644
index 0000000..d2fd6e0
--- /dev/null
+++ b/src/com/android/settings/backup/transport/Transport.java
@@ -0,0 +1,29 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+class Transport {
+ final String name;
+ final CharSequence dataManagementLabel;
+ final CharSequence destinationString;
+
+ Transport(String name, CharSequence dataManagementLabel, CharSequence destinationString) {
+ this.name = name;
+ this.dataManagementLabel = dataManagementLabel;
+ this.destinationString = destinationString;
+ }
+}
diff --git a/src/com/android/settings/backup/transport/TransportActivity.java b/src/com/android/settings/backup/transport/TransportActivity.java
new file mode 100644
index 0000000..1adcb90
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportActivity.java
@@ -0,0 +1,39 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.os.Bundle;
+import androidx.fragment.app.FragmentActivity;
+
+/**
+ * Activity to allow the user to choose the {@link android.app.backup.BackupTransport}.
+ *
+ * Set {@code config_backup_settings_intent} to {@code settings://com.android.settings.backup.transport} to activate.
+ * Don't forget to also set {@code config_backup_settings_label} or else it won't be shown.
+ */
+public class TransportActivity extends FragmentActivity {
+
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+
+ getSupportFragmentManager().beginTransaction()
+ .replace(android.R.id.content, new TransportFragment())
+ .commit();
+ }
+
+}
diff --git a/src/com/android/settings/backup/transport/TransportFragment.java b/src/com/android/settings/backup/transport/TransportFragment.java
new file mode 100644
index 0000000..6c6a8ce
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportFragment.java
@@ -0,0 +1,69 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import com.android.settings.R;
+import com.android.settings.backup.transport.TransportPreferenceController.OnTransportChangedListener;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+
+public class TransportFragment extends DashboardFragment implements OnTransportChangedListener {
+
+ private static final String TAG = "TransportFragment";
+
+ /**
+ * Get the tag string for logging.
+ */
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ /**
+ * Get the res id for static preference xml for this fragment.
+ */
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.backup_transport_settings;
+ }
+
+ /**
+ * Get a list of {@link AbstractPreferenceController} for this fragment.
+ */
+ @Override
+ protected List<AbstractPreferenceController> createPreferenceControllers(Context context) {
+ final List<AbstractPreferenceController> controllers = new ArrayList<>();
+ controllers.add(new TransportPreferenceController(context, this));
+ return controllers;
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.BACKUP_SETTINGS;
+ }
+
+ @Override
+ public void onTransportChanged(String transportName) {
+ requireActivity().finish();
+ }
+
+}
diff --git a/src/com/android/settings/backup/transport/TransportHelper.java b/src/com/android/settings/backup/transport/TransportHelper.java
new file mode 100644
index 0000000..1ab5a59
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportHelper.java
@@ -0,0 +1,116 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.app.backup.IBackupManager;
+import android.content.Context;
+import android.os.RemoteException;
+import android.os.ServiceManager;
+import android.os.UserHandle;
+import android.util.Log;
+import androidx.annotation.Nullable;
+
+import com.android.settings.R;
+
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.Collections;
+import java.util.List;
+
+/**
+ * Helper class for {@link TransportActivity} that interacts with {@link IBackupManager}.
+ */
+class TransportHelper {
+ private static final String TAG = "TransportHelper";
+
+ private final IBackupManager mBackupManager = IBackupManager.Stub.asInterface(
+ ServiceManager.getService(Context.BACKUP_SERVICE));
+
+ private Context mContext;
+
+ TransportHelper(Context context) {
+ mContext = context;
+ }
+
+ List<Transport> getTransports() {
+ String[] backupTransports = getBackupTransports();
+ if (backupTransports == null) return Collections.emptyList();
+ ArrayList<Transport> transports = new ArrayList<>(backupTransports.length);
+ String[] ignoredTransports = mContext.getResources().getStringArray(
+ R.array.config_ignored_backup_transports);
+ for (String name : getBackupTransports()) {
+ boolean ignored = false;
+ for (String ignoredTransport : ignoredTransports) {
+ if (name.equals(ignoredTransport)) ignored = true;
+ }
+ if (ignored) continue;
+ CharSequence label = getLabelFromBackupTransport(name);
+ if (label == null || label.length() == 0) label = name;
+ Transport transport = new Transport(name, label, getSummaryFromBackupTransport(name));
+ transports.add(transport);
+ }
+ return transports;
+ }
+
+ void selectTransport(String name) {
+ try {
+ mBackupManager.selectBackupTransport(name);
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error selecting transport: " + name, e);
+ }
+ }
+
+ @Nullable
+ private String[] getBackupTransports() {
+ try {
+ String[] transports = mBackupManager.listAllTransports();
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Received all backup transports: " + Arrays.toString(transports));
+ }
+ return transports;
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error getting all backup transports", e);
+ }
+ return null;
+ }
+
+ private CharSequence getLabelFromBackupTransport(String transport) {
+ try {
+ CharSequence label = mBackupManager.getDataManagementLabelForUser(UserHandle.myUserId(), transport);
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Received the backup settings label from " + transport + ": " + label);
+ }
+ return label;
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error getting data management label for " + transport, e);
+ }
+ return null;
+ }
+
+ private String getSummaryFromBackupTransport(String transport) {
+ try {
+ String summary = mBackupManager.getDestinationString(transport);
+ if (Log.isLoggable(TAG, Log.DEBUG)) {
+ Log.d(TAG, "Received the backup settings summary from " + transport + ": " + summary);
+ }
+ return summary;
+ } catch (RemoteException e) {
+ Log.e(TAG, "Error getting data management summary", e);
+ }
+ return null;
+ }
+}
diff --git a/src/com/android/settings/backup/transport/TransportPreferenceController.java b/src/com/android/settings/backup/transport/TransportPreferenceController.java
new file mode 100644
index 0000000..1dc5a51
--- /dev/null
+++ b/src/com/android/settings/backup/transport/TransportPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2020 The Calyx Institute
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License
+ */
+
+package com.android.settings.backup.transport;
+
+import android.content.Context;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public class TransportPreferenceController extends AbstractPreferenceController {
+
+ interface OnTransportChangedListener {
+ void onTransportChanged(String transportName);
+ }
+
+ private final OnTransportChangedListener listener;
+ private final TransportHelper transportHelper;
+
+ public TransportPreferenceController(Context context, OnTransportChangedListener listener) {
+ super(context);
+ this.listener = listener;
+ transportHelper = new TransportHelper(context);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ for (Transport transport : transportHelper.getTransports()) {
+ screen.addPreference(getPreferenceForTransport(transport));
+ }
+ }
+
+ private Preference getPreferenceForTransport(Transport transport) {
+ Preference p = new Preference(mContext);
+ p.setTitle(transport.dataManagementLabel);
+ p.setSummary(transport.destinationString);
+ p.setIconSpaceReserved(false);
+ p.setOnPreferenceClickListener(preference -> {
+ transportHelper.selectTransport(transport.name);
+ listener.onTransportChanged(transport.name);
+ return true;
+ });
+ return p;
+ }
+
+ /**
+ * Returns true if preference is available (should be displayed)
+ */
+ @Override
+ public boolean isAvailable() {
+ return true;
+ }
+
+ /**
+ * Returns the key for this preference.
+ */
+ @Override
+ public String getPreferenceKey() {
+ return null;
+ }
+}
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
index 368564a..2348141 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollEnrolling.java
@@ -1103,10 +1103,19 @@
@Override
public Dialog onCreateDialog(Bundle savedInstanceState) {
+ final boolean isFrontFacingFps = getResources().getBoolean(
+ R.bool.config_is_front_facing_fps);
+ final boolean isSideMountedFps = getResources().getBoolean(
+ R.bool.config_is_side_fps);
+ final String fpsLocation = getString(isSideMountedFps
+ ? R.string.fingerprint_enroll_touch_dialog_message_side : isFrontFacingFps
+ ? R.string.fingerprint_enroll_touch_dialog_message_front
+ : R.string.fingerprint_enroll_touch_dialog_message_rear);
+
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity(),
R.style.Theme_AlertDialog);
builder.setTitle(R.string.security_settings_fingerprint_enroll_touch_dialog_title)
- .setMessage(R.string.security_settings_fingerprint_enroll_touch_dialog_message)
+ .setMessage(fpsLocation)
.setPositiveButton(R.string.security_settings_fingerprint_enroll_dialog_ok,
new DialogInterface.OnClickListener() {
@Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
index 89bda20..a346431 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollFindSensor.java
@@ -124,8 +124,23 @@
mIsReverseDefaultRotation = getApplicationContext().getResources().getBoolean(
com.android.internal.R.bool.config_reverseDefaultRotation);
} else {
+ // Remaining usecases can be either front facing fps or dedicated
+ // side mounted fps (not embedded in the power button)
+ final boolean isFrontFacingFps = getResources().getBoolean(
+ R.bool.config_is_front_facing_fps);
+ final boolean isSideMountedFps = getResources().getBoolean(
+ R.bool.config_is_side_fps);
+ final String fpsLocation = getString(isSideMountedFps
+ ? R.string.fingerprint_enroll_find_sensor_message_side : isFrontFacingFps
+ ? R.string.fingerprint_enroll_find_sensor_message_front
+ : R.string.fingerprint_enroll_find_sensor_message_rear);
+
setHeaderText(R.string.security_settings_fingerprint_enroll_find_sensor_title);
- setDescriptionText(R.string.security_settings_fingerprint_enroll_find_sensor_message);
+ setDescriptionText(fpsLocation);
+ if (isFrontFacingFps) {
+ findViewById(R.id.fingerprint_sensor_location_front_overlay)
+ .setVisibility(View.VISIBLE);
+ }
}
if (savedInstanceState != null) {
mNextClicked = savedInstanceState.getBoolean(SAVED_STATE_IS_NEXT_CLICKED, mNextClicked);
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
index 08fb5c0..9057024 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintEnrollIntroduction.java
@@ -28,6 +28,7 @@
import android.os.Bundle;
import android.text.Html;
import android.text.method.LinkMovementMethod;
+import android.text.TextUtils;
import android.util.Log;
import android.view.View;
import android.widget.ImageView;
@@ -127,6 +128,10 @@
final ScrollView scrollView = findViewById(R.id.sud_scroll_view);
scrollView.setImportantForAccessibility(View.IMPORTANT_FOR_ACCESSIBILITY_YES);
+
+ if (TextUtils.isEmpty(footerLink.getText())) {
+ findViewById(R.id.layout_footer_learn_more).setVisibility(View.GONE);
+ }
}
@Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
index 99d4ff9..4d7e2d2 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintLocationAnimationView.java
@@ -28,6 +28,7 @@
import android.view.View;
import android.view.animation.AnimationUtils;
import android.view.animation.Interpolator;
+import android.widget.ImageView;
import com.android.settings.R;
import com.android.settings.Utils;
@@ -53,6 +54,7 @@
private float mPulseRadius;
private ValueAnimator mRadiusAnimator;
private ValueAnimator mAlphaAnimator;
+ private ImageView mOverlayImage;
public FingerprintLocationAnimationView(Context context, @Nullable AttributeSet attrs) {
super(context, attrs);
@@ -92,7 +94,11 @@
}
private float getCenterY() {
- return getHeight() * mFractionCenterY;
+ if (mOverlayImage == null) {
+ mOverlayImage = (ImageView) getRootView().findViewById(
+ R.id.fingerprint_sensor_location);
+ }
+ return mOverlayImage.getHeight() * mFractionCenterY;
}
@Override
diff --git a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
index 7f99ae9..c3062ab 100644
--- a/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
+++ b/src/com/android/settings/biometrics/fingerprint/FingerprintSettings.java
@@ -181,6 +181,7 @@
mRequireScreenOnToAuthPreferenceController;
private RestrictedSwitchPreference mRequireScreenOnToAuthPreference;
private PreferenceCategory mFingerprintUnlockCategory;
+ private boolean mRequireScreenOnToAuth;
private FingerprintManager mFingerprintManager;
private FingerprintUpdater mFingerprintUpdater;
@@ -247,7 +248,7 @@
}
private void updateDialog() {
- if (isSfps()) {
+ if (isSfps() && !mRequireScreenOnToAuth) {
setRequireScreenOnToAuthVisibility();
}
RenameDialog renameDialog = (RenameDialog) getFragmentManager().
@@ -352,6 +353,8 @@
mFingerprintManager = Utils.getFingerprintManagerOrNull(activity);
mFingerprintUpdater = new FingerprintUpdater(activity, mFingerprintManager);
mSensorProperties = mFingerprintManager.getSensorPropertiesInternal();
+ mRequireScreenOnToAuth = getContext().getResources().getBoolean(
+ com.android.internal.R.bool.config_performantAuthDefault);
mToken = getIntent().getByteArrayExtra(
ChooseLockSettingsHelper.EXTRA_KEY_CHALLENGE_TOKEN);
@@ -521,7 +524,7 @@
return true;
});
mFingerprintUnlockCategory.setVisible(false);
- if (isSfps()) {
+ if (isSfps() && !mRequireScreenOnToAuth) {
setRequireScreenOnToAuthVisibility();
}
setPreferenceScreen(root);
diff --git a/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java b/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
index ee0021e..f16dd37 100644
--- a/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
+++ b/src/com/android/settings/connecteddevice/NfcAndPaymentFragmentController.java
@@ -16,21 +16,47 @@
package com.android.settings.connecteddevice;
+import android.content.BroadcastReceiver;
import android.content.Context;
+import android.content.Intent;
+import android.content.IntentFilter;
import android.content.pm.PackageManager;
import android.nfc.NfcAdapter;
import android.os.UserManager;
+import androidx.preference.Preference;
+import androidx.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.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStop;
/**
* Controller that used to show NFC and payment features
*/
-public class NfcAndPaymentFragmentController extends BasePreferenceController {
+public class NfcAndPaymentFragmentController extends BasePreferenceController
+ implements LifecycleObserver, OnResume, OnStop {
private final NfcAdapter mNfcAdapter;
private final PackageManager mPackageManager;
private final UserManager mUserManager;
+ private final IntentFilter mIntentFilter;
+ private Preference mPreference;
+
+ private final BroadcastReceiver mReceiver = new BroadcastReceiver() {
+ @Override
+ public void onReceive(Context context, Intent intent) {
+ if (mPreference == null) {
+ return;
+ }
+
+ final String action = intent.getAction();
+ if (NfcAdapter.ACTION_ADAPTER_STATE_CHANGED.equals(action)) {
+ refreshSummary(mPreference);
+ }
+ }
+ };
public NfcAndPaymentFragmentController(Context context, String preferenceKey) {
super(context, preferenceKey);
@@ -38,6 +64,15 @@
mPackageManager = context.getPackageManager();
mUserManager = context.getSystemService(UserManager.class);
mNfcAdapter = NfcAdapter.getDefaultAdapter(context);
+
+ mIntentFilter = isNfcAvailable()
+ ? new IntentFilter(NfcAdapter.ACTION_ADAPTER_STATE_CHANGED) : null;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mPreference = screen.findPreference(getPreferenceKey());
}
@Override
@@ -61,4 +96,26 @@
}
return null;
}
+
+ @Override
+ public void onStop() {
+ if (!isNfcAvailable()) {
+ return;
+ }
+
+ mContext.unregisterReceiver(mReceiver);
+ }
+
+ @Override
+ public void onResume() {
+ if (!isNfcAvailable()) {
+ return;
+ }
+
+ mContext.registerReceiver(mReceiver, mIntentFilter);
+ }
+
+ private boolean isNfcAvailable() {
+ return mNfcAdapter != null;
+ }
}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbBackend.java b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
index 7f3a598..a4ca405 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbBackend.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbBackend.java
@@ -164,6 +164,30 @@
&& mPortStatus.isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST);
}
+ public boolean isSingleDataRoleSupported() {
+ return mPort != null && mPortStatus != null
+ && ((!mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_HOST)
+ && !mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST))
+ || (!mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_DEVICE)
+ && !mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_DEVICE)));
+ }
+
+ public boolean isSinglePowerRoleSupported() {
+ return mPort != null && mPortStatus != null
+ && ((!mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_DEVICE)
+ && !mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SINK, DATA_ROLE_HOST))
+ || (!mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_DEVICE)
+ && !mPortStatus
+ .isRoleCombinationSupported(POWER_ROLE_SOURCE, DATA_ROLE_HOST)));
+ }
+
public static String usbFunctionsToString(long functions) {
// TODO replace with UsbManager.usbFunctionsToString once supported by Roboelectric
return Long.toBinaryString(functions);
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
index 6d455a6..322cb00 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsDataRoleController.java
@@ -113,7 +113,8 @@
@Override
public boolean isAvailable() {
- return !Utils.isMonkeyRunning();
+ return !Utils.isMonkeyRunning()
+ && !mUsbBackend.isSingleDataRoleSupported();
}
@Override
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
index 0c94d19..8602b07 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsFragment.java
@@ -91,7 +91,6 @@
private static List<UsbDetailsController> createControllerList(Context context,
UsbBackend usbBackend, UsbDetailsFragment fragment) {
List<UsbDetailsController> ret = new ArrayList<>();
- ret.add(new UsbDetailsHeaderController(context, fragment, usbBackend));
ret.add(new UsbDetailsDataRoleController(context, fragment, usbBackend));
ret.add(new UsbDetailsFunctionsController(context, fragment, usbBackend));
ret.add(new UsbDetailsPowerRoleController(context, fragment, usbBackend));
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
deleted file mode 100644
index e151258..0000000
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderController.java
+++ /dev/null
@@ -1,60 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.connecteddevice.usb;
-
-import android.content.Context;
-
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.widget.LayoutPreference;
-
-/**
- * This class adds a header with device name.
- */
-public class UsbDetailsHeaderController extends UsbDetailsController {
- private static final String KEY_DEVICE_HEADER = "usb_device_header";
-
- private EntityHeaderController mHeaderController;
-
- public UsbDetailsHeaderController(Context context, UsbDetailsFragment fragment,
- UsbBackend backend) {
- super(context, fragment, backend);
- }
-
- @Override
- public void displayPreference(PreferenceScreen screen) {
- super.displayPreference(screen);
- final LayoutPreference headerPreference = screen.findPreference(KEY_DEVICE_HEADER);
- mHeaderController = EntityHeaderController.newInstance(mFragment.getActivity(), mFragment,
- headerPreference.findViewById(R.id.entity_header));
- }
-
-
- @Override
- protected void refresh(boolean connected, long functions, int powerRole, int dataRole) {
- mHeaderController.setLabel(mContext.getString(R.string.usb_pref));
- mHeaderController.setIcon(mContext.getDrawable(R.drawable.ic_usb));
- mHeaderController.done(mFragment.getActivity(), true /* rebindActions */);
- }
-
- @Override
- public String getPreferenceKey() {
- return KEY_DEVICE_HEADER;
- }
-}
diff --git a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
index 13b3076..e8ff684 100644
--- a/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
+++ b/src/com/android/settings/connecteddevice/usb/UsbDetailsPowerRoleController.java
@@ -123,7 +123,8 @@
@Override
public boolean isAvailable() {
- return !Utils.isMonkeyRunning();
+ return !Utils.isMonkeyRunning()
+ && !mUsbBackend.isSinglePowerRoleSupported();
}
@Override
diff --git a/src/com/android/settings/datausage/AppDataUsage.java b/src/com/android/settings/datausage/AppDataUsage.java
index e15cead..04a2014 100644
--- a/src/com/android/settings/datausage/AppDataUsage.java
+++ b/src/com/android/settings/datausage/AppDataUsage.java
@@ -15,7 +15,11 @@
package com.android.settings.datausage;
import static android.net.NetworkPolicyManager.POLICY_REJECT_METERED_BACKGROUND;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_CELLULAR;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_VPN;
+import static android.net.NetworkPolicyManager.POLICY_REJECT_WIFI;
+import android.Manifest;
import android.app.Activity;
import android.app.settings.SettingsEnums;
import android.content.Context;
@@ -23,6 +27,8 @@
import android.content.pm.ApplicationInfo;
import android.content.pm.PackageManager;
import android.graphics.drawable.Drawable;
+import android.net.ConnectivitySettingsManager;
+import android.net.NetworkPolicyManager;
import android.net.NetworkTemplate;
import android.os.Bundle;
import android.os.Process;
@@ -58,6 +64,7 @@
import java.util.ArrayList;
import java.util.List;
+import java.util.Set;
public class AppDataUsage extends DataUsageBaseFragment implements OnPreferenceChangeListener,
DataSaverBackend.Listener {
@@ -73,7 +80,11 @@
private static final String KEY_FOREGROUND_USAGE = "foreground_usage";
private static final String KEY_BACKGROUND_USAGE = "background_usage";
private static final String KEY_APP_SETTINGS = "app_settings";
+ private static final String KEY_RESTRICT_ALL = "restrict_all";
private static final String KEY_RESTRICT_BACKGROUND = "restrict_background";
+ private static final String KEY_RESTRICT_CELLULAR = "restrict_cellular";
+ private static final String KEY_RESTRICT_VPN = "restrict_vpn";
+ private static final String KEY_RESTRICT_WIFI = "restrict_wifi";
private static final String KEY_APP_LIST = "app_list";
private static final String KEY_CYCLE = "cycle";
private static final String KEY_UNRESTRICTED_DATA = "unrestricted_data_saver";
@@ -87,7 +98,11 @@
private Preference mForegroundUsage;
private Preference mBackgroundUsage;
private Preference mAppSettings;
+ private RestrictedSwitchPreference mRestrictAll;
private RestrictedSwitchPreference mRestrictBackground;
+ private RestrictedSwitchPreference mRestrictCellular;
+ private RestrictedSwitchPreference mRestrictVpn;
+ private RestrictedSwitchPreference mRestrictWifi;
private PreferenceCategory mAppList;
private Drawable mIcon;
@@ -171,7 +186,11 @@
mIcon = uidDetail.icon;
mLabel = uidDetail.label;
removePreference(KEY_UNRESTRICTED_DATA);
+ removePreference(KEY_RESTRICT_ALL);
removePreference(KEY_RESTRICT_BACKGROUND);
+ removePreference(KEY_RESTRICT_CELLULAR);
+ removePreference(KEY_RESTRICT_VPN);
+ removePreference(KEY_RESTRICT_WIFI);
} else {
if (mPackages.size() != 0) {
try {
@@ -183,8 +202,16 @@
} catch (PackageManager.NameNotFoundException e) {
}
}
+ mRestrictAll = findPreference(KEY_RESTRICT_ALL);
+ mRestrictAll.setOnPreferenceChangeListener(this);
mRestrictBackground = findPreference(KEY_RESTRICT_BACKGROUND);
mRestrictBackground.setOnPreferenceChangeListener(this);
+ mRestrictCellular = findPreference(KEY_RESTRICT_CELLULAR);
+ mRestrictCellular.setOnPreferenceChangeListener(this);
+ mRestrictVpn = findPreference(KEY_RESTRICT_VPN);
+ mRestrictVpn.setOnPreferenceChangeListener(this);
+ mRestrictWifi = findPreference(KEY_RESTRICT_WIFI);
+ mRestrictWifi.setOnPreferenceChangeListener(this);
mUnrestrictedData = findPreference(KEY_UNRESTRICTED_DATA);
mUnrestrictedData.setOnPreferenceChangeListener(this);
}
@@ -224,7 +251,11 @@
removePreference(KEY_UNRESTRICTED_DATA);
removePreference(KEY_APP_SETTINGS);
+ removePreference(KEY_RESTRICT_ALL);
removePreference(KEY_RESTRICT_BACKGROUND);
+ removePreference(KEY_RESTRICT_CELLULAR);
+ removePreference(KEY_RESTRICT_VPN);
+ removePreference(KEY_RESTRICT_WIFI);
removePreference(KEY_APP_LIST);
}
@@ -266,6 +297,29 @@
mDataSaverBackend.setIsDenylisted(mAppItem.key, mPackageName, !(Boolean) newValue);
updatePrefs();
return true;
+ } else if (preference == mRestrictAll) {
+ Set<Integer> uids =
+ ConnectivitySettingsManager.getUidsAllowedOnRestrictedNetworks(mContext);
+ if (!(Boolean) newValue) {
+ uids.remove(mAppItem.key);
+ } else {
+ uids.add(mAppItem.key);
+ }
+ ConnectivitySettingsManager.setUidsAllowedOnRestrictedNetworks(mContext, uids);
+ updatePrefs();
+ return true;
+ } else if (preference == mRestrictCellular) {
+ setAppRestrictCellular(!(Boolean) newValue);
+ updatePrefs();
+ return true;
+ } else if (preference == mRestrictVpn) {
+ setAppRestrictVpn(!(Boolean) newValue);
+ updatePrefs();
+ return true;
+ } else if (preference == mRestrictWifi) {
+ setAppRestrictWifi(!(Boolean) newValue);
+ updatePrefs();
+ return true;
} else if (preference == mUnrestrictedData) {
mDataSaverBackend.setIsAllowlisted(mAppItem.key, mPackageName, (Boolean) newValue);
return true;
@@ -296,7 +350,9 @@
@VisibleForTesting
void updatePrefs() {
- updatePrefs(getAppRestrictBackground(), getUnrestrictData());
+ updatePrefs(getAppRestrictBackground(), getUnrestrictData(), getAppRestrictAll(),
+ getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+ hasInternetPermission());
}
@VisibleForTesting
@@ -332,25 +388,46 @@
}
}
- private void updatePrefs(boolean restrictBackground, boolean unrestrictData) {
+ private void updatePrefs(boolean restrictBackground, boolean unrestrictData,
+ boolean restrictAll, boolean restrictCellular, boolean restrictVpn,
+ boolean restrictWifi, boolean hasInternetPermission) {
if (!isSimHardwareVisible(mContext)) {
return;
}
setBackPreferenceListAnimatorIfLoaded();
final EnforcedAdmin admin = RestrictedLockUtilsInternal.checkIfMeteredDataRestricted(
mContext, mPackageName, UserHandle.getUserId(mAppItem.key));
+ if (mRestrictAll != null) {
+ mRestrictAll.setEnabled(hasInternetPermission);
+ mRestrictAll.setChecked(!restrictAll);
+ }
if (mRestrictBackground != null) {
- mRestrictBackground.setChecked(!restrictBackground);
mRestrictBackground.setDisabledByAdmin(admin);
+ mRestrictBackground.setEnabled(hasInternetPermission &&
+ !mRestrictBackground.isDisabledByAdmin() && !restrictAll &&
+ !restrictCellular);
+ mRestrictBackground.setChecked(!restrictBackground && !restrictAll &&
+ !restrictCellular);
+ }
+ if (mRestrictCellular != null) {
+ mRestrictCellular.setEnabled(hasInternetPermission && !restrictAll);
+ mRestrictCellular.setChecked(!restrictAll && !restrictCellular);
+ }
+ if (mRestrictVpn != null) {
+ mRestrictVpn.setEnabled(hasInternetPermission && !restrictAll);
+ mRestrictVpn.setChecked(!restrictAll && !restrictVpn);
+ }
+ if (mRestrictWifi != null) {
+ mRestrictWifi.setEnabled(hasInternetPermission && !restrictAll);
+ mRestrictWifi.setChecked(!restrictAll && !restrictWifi);
}
if (mUnrestrictedData != null) {
- if (restrictBackground) {
- mUnrestrictedData.setVisible(false);
- } else {
- mUnrestrictedData.setVisible(true);
- mUnrestrictedData.setChecked(unrestrictData);
- mUnrestrictedData.setDisabledByAdmin(admin);
- }
+ mUnrestrictedData.setDisabledByAdmin(admin);
+ mUnrestrictedData.setEnabled(hasInternetPermission &&
+ !mUnrestrictedData.isDisabledByAdmin() && !restrictBackground && !restrictAll &&
+ !restrictCellular);
+ mUnrestrictedData.setChecked(unrestrictData && !restrictBackground && !restrictAll &&
+ !restrictCellular);
}
}
@@ -387,9 +464,24 @@
}
private boolean getAppRestrictBackground() {
- final int uid = mAppItem.key;
- final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
- return (uidPolicy & POLICY_REJECT_METERED_BACKGROUND) != 0;
+ return getAppRestriction(POLICY_REJECT_METERED_BACKGROUND);
+ }
+
+ private boolean getAppRestrictCellular() {
+ return getAppRestriction(POLICY_REJECT_CELLULAR);
+ }
+
+ private boolean getAppRestrictVpn() {
+ return getAppRestriction(POLICY_REJECT_VPN);
+ }
+
+ private boolean getAppRestrictWifi() {
+ return getAppRestriction(POLICY_REJECT_WIFI);
+ }
+
+ private boolean getAppRestrictAll() {
+ return !ConnectivitySettingsManager.getUidsAllowedOnRestrictedNetworks(mContext)
+ .contains(mAppItem.key);
}
private boolean getUnrestrictData() {
@@ -399,6 +491,38 @@
return false;
}
+ private boolean getAppRestriction(int policy) {
+ final int uid = mAppItem.key;
+ final int uidPolicy = services.mPolicyManager.getUidPolicy(uid);
+ return (uidPolicy & policy) != 0;
+ }
+
+ private boolean hasInternetPermission() {
+ return mPackageManager.checkPermission(Manifest.permission.INTERNET, mPackageName)
+ == PackageManager.PERMISSION_GRANTED;
+ }
+
+ private void setAppRestrictCellular(boolean restrict) {
+ setAppRestriction(POLICY_REJECT_CELLULAR, restrict);
+ }
+
+ private void setAppRestrictVpn(boolean restrict) {
+ setAppRestriction(POLICY_REJECT_VPN, restrict);
+ }
+
+ private void setAppRestrictWifi(boolean restrict) {
+ setAppRestriction(POLICY_REJECT_WIFI, restrict);
+ }
+
+ private void setAppRestriction(int policy, boolean restrict) {
+ final int uid = mAppItem.key;
+ if (restrict) {
+ services.mPolicyManager.addUidPolicy(uid, policy);
+ } else {
+ services.mPolicyManager.removeUidPolicy(uid, policy);
+ }
+ }
+
@VisibleForTesting
void addEntityHeader() {
String pkg = mPackages.size() != 0 ? mPackages.valueAt(0) : null;
@@ -525,14 +649,18 @@
@Override
public void onAllowlistStatusChanged(int uid, boolean isAllowlisted) {
if (mAppItem.uids.get(uid, false)) {
- updatePrefs(getAppRestrictBackground(), isAllowlisted);
+ updatePrefs(getAppRestrictBackground(), isAllowlisted, getAppRestrictAll(),
+ getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+ hasInternetPermission());
}
}
@Override
public void onDenylistStatusChanged(int uid, boolean isDenylisted) {
if (mAppItem.uids.get(uid, false)) {
- updatePrefs(isDenylisted, getUnrestrictData());
+ updatePrefs(isDenylisted, getUnrestrictData(), getAppRestrictAll(),
+ getAppRestrictCellular(), getAppRestrictVpn(), getAppRestrictWifi(),
+ hasInternetPermission());
}
}
}
diff --git a/src/com/android/settings/datausage/DataSaverBackend.java b/src/com/android/settings/datausage/DataSaverBackend.java
index e39e41a..98d909f 100644
--- a/src/com/android/settings/datausage/DataSaverBackend.java
+++ b/src/com/android/settings/datausage/DataSaverBackend.java
@@ -80,12 +80,15 @@
public void setIsAllowlisted(int uid, String packageName, boolean allowlisted) {
final int policy = allowlisted ? POLICY_ALLOW_METERED_BACKGROUND : POLICY_NONE;
- mPolicyManager.setUidPolicy(uid, policy);
mUidPolicies.put(uid, policy);
if (allowlisted) {
+ mPolicyManager.addUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_DATA_SAVER_WHITELIST, packageName);
+ } else {
+ mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
}
+ mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
}
public boolean isAllowlisted(int uid) {
@@ -110,12 +113,15 @@
public void setIsDenylisted(int uid, String packageName, boolean denylisted) {
final int policy = denylisted ? POLICY_REJECT_METERED_BACKGROUND : POLICY_NONE;
- mPolicyManager.setUidPolicy(uid, policy);
mUidPolicies.put(uid, policy);
if (denylisted) {
+ mPolicyManager.addUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
mMetricsFeatureProvider.action(
mContext, SettingsEnums.ACTION_DATA_SAVER_BLACKLIST, packageName);
+ } else {
+ mPolicyManager.removeUidPolicy(uid, POLICY_REJECT_METERED_BACKGROUND);
}
+ mPolicyManager.removeUidPolicy(uid, POLICY_ALLOW_METERED_BACKGROUND);
}
public boolean isDenylisted(int uid) {
@@ -155,6 +161,9 @@
loadAllowlist();
loadDenylist();
+ // We only care about allow/reject metered background policy here.
+ newPolicy &= POLICY_ALLOW_METERED_BACKGROUND | POLICY_REJECT_METERED_BACKGROUND;
+
final int oldPolicy = mUidPolicies.get(uid, POLICY_NONE);
if (newPolicy == POLICY_NONE) {
mUidPolicies.delete(uid);
diff --git a/src/com/android/settings/development/AdbRootPreferenceController.java b/src/com/android/settings/development/AdbRootPreferenceController.java
new file mode 100644
index 0000000..54f249e
--- /dev/null
+++ b/src/com/android/settings/development/AdbRootPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2018 The LineageOS 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.adb.ADBRootService;
+import android.content.Context;
+import android.os.UserManager;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.R;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.development.DeveloperOptionsPreferenceController;
+
+public class AdbRootPreferenceController extends DeveloperOptionsPreferenceController
+ implements Preference.OnPreferenceChangeListener, PreferenceControllerMixin {
+
+ private static final String TAG = "AdbRootPreferenceController";
+ private static final String PREF_KEY = "enable_adb_root";
+
+ private final ADBRootService mADBRootService;
+
+ public AdbRootPreferenceController(Context context,
+ DevelopmentSettingsDashboardFragment fragment) {
+ super(context);
+
+ mADBRootService = new ADBRootService();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return PREF_KEY;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return mADBRootService.isSupported();
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+
+ ((SwitchPreference) mPreference).setChecked(mADBRootService.getEnabled());
+
+ if (!isAdminUser()) {
+ mPreference.setEnabled(false);
+ }
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final boolean rootEnabled = (Boolean) newValue;
+ mADBRootService.setEnabled(rootEnabled);
+ return true;
+ }
+
+ @Override
+ protected void onDeveloperOptionsSwitchEnabled() {
+ if (isAdminUser()) {
+ mPreference.setEnabled(true);
+ }
+ }
+
+ boolean isAdminUser() {
+ return ((UserManager) mContext.getSystemService(Context.USER_SERVICE)).isAdminUser();
+ }
+}
diff --git a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
index e47048a..d8a0f21 100644
--- a/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
+++ b/src/com/android/settings/development/BluetoothA2dpHwOffloadPreferenceController.java
@@ -73,23 +73,10 @@
}
}
- @Override
- protected void onDeveloperOptionsSwitchDisabled() {
- super.onDeveloperOptionsSwitchDisabled();
- final boolean offloadSupported =
- SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
- if (offloadSupported) {
- ((SwitchPreference) mPreference).setChecked(false);
- SystemProperties.set(A2DP_OFFLOAD_DISABLED_PROPERTY, "false");
- }
- }
-
public boolean isDefaultValue() {
- final boolean offloadSupported =
- SystemProperties.getBoolean(A2DP_OFFLOAD_SUPPORTED_PROPERTY, false);
- final boolean offloadDisabled =
- SystemProperties.getBoolean(A2DP_OFFLOAD_DISABLED_PROPERTY, false);
- return offloadSupported ? !offloadDisabled : true;
+ // Always return true here to avoid needing to reboot when disabling
+ // developer options, since we aren't turning this off when doing so anymore.
+ return true;
}
/**
diff --git a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
index 70fbefc..70237e0 100644
--- a/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
+++ b/src/com/android/settings/development/DevelopmentSettingsDashboardFragment.java
@@ -524,6 +524,7 @@
controllers.add(new DisableAutomaticUpdatesPreferenceController(context));
controllers.add(new SelectDSUPreferenceController(context));
controllers.add(new AdbPreferenceController(context, fragment));
+ controllers.add(new AdbRootPreferenceController(context, fragment));
controllers.add(new ClearAdbKeysPreferenceController(context, fragment));
controllers.add(new WirelessDebuggingPreferenceController(context, lifecycle));
controllers.add(new AdbAuthorizationTimeoutPreferenceController(context));
diff --git a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
index 22b3f83..d829e2d 100644
--- a/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
+++ b/src/com/android/settings/development/NotificationChannelWarningsPreferenceController.java
@@ -75,6 +75,6 @@
@VisibleForTesting
boolean isDebuggable() {
- return Build.IS_DEBUGGABLE;
+ return Build.IS_ENG;
}
}
diff --git a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
index 6af58b5..a40caf8 100644
--- a/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/BuildNumberPreferenceController.java
@@ -182,7 +182,7 @@
}
mDevHitToast = Toast.makeText(mContext,
mContext.getResources().getQuantityString(
- R.plurals.show_dev_countdown, mDevHitCountdown,
+ R.plurals.show_dev_countdown_cm, mDevHitCountdown,
mDevHitCountdown),
Toast.LENGTH_SHORT);
mDevHitToast.show();
@@ -198,7 +198,7 @@
if (mDevHitToast != null) {
mDevHitToast.cancel();
}
- mDevHitToast = Toast.makeText(mContext, R.string.show_dev_already,
+ mDevHitToast = Toast.makeText(mContext, R.string.show_dev_already_cm,
Toast.LENGTH_LONG);
mDevHitToast.show();
mMetricsFeatureProvider.action(
@@ -237,7 +237,7 @@
if (mDevHitToast != null) {
mDevHitToast.cancel();
}
- mDevHitToast = Toast.makeText(mContext, R.string.show_dev_on,
+ mDevHitToast = Toast.makeText(mContext, R.string.show_dev_on_cm,
Toast.LENGTH_LONG);
mDevHitToast.show();
diff --git a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
index 5b247f8..622c1e7 100644
--- a/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/PhoneNumberPreferenceController.java
@@ -58,7 +58,24 @@
@Override
public CharSequence getSummary() {
- return getFirstPhoneNumber();
+ return mContext.getString(R.string.device_info_protected_single_press);
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ String prefKey = preference.getKey();
+ if (prefKey.startsWith(KEY_PHONE_NUMBER)) {
+ int simSlotNumber = 0;
+ if (!TextUtils.equals(prefKey, KEY_PHONE_NUMBER)) {
+ // Get multisim slot number from preference key.
+ // Multisim preference key is KEY_PHONE_NUMBER + simSlotNumber
+ simSlotNumber = Integer.parseInt(
+ prefKey.replaceAll("[^0-9]", ""));
+ }
+ final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
+ simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
+ }
+ return super.handlePreferenceTreeClick(preference);
}
@Override
@@ -78,7 +95,6 @@
final Preference multiSimPreference = createNewPreference(screen.getContext());
multiSimPreference.setOrder(phonePreferenceOrder + simSlotNumber);
multiSimPreference.setKey(KEY_PHONE_NUMBER + simSlotNumber);
- multiSimPreference.setSelectable(false);
category.addPreference(multiSimPreference);
mPreferenceList.add(multiSimPreference);
}
@@ -89,7 +105,7 @@
for (int simSlotNumber = 0; simSlotNumber < mPreferenceList.size(); simSlotNumber++) {
final Preference simStatusPreference = mPreferenceList.get(simSlotNumber);
simStatusPreference.setTitle(getPreferenceTitle(simSlotNumber));
- simStatusPreference.setSummary(getPhoneNumber(simSlotNumber));
+ simStatusPreference.setSummary(getSummary());
}
}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
index dd3d560..a81993b 100644
--- a/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/firmwareversion/BasebandVersionPreferenceController.java
@@ -18,6 +18,7 @@
import android.content.Context;
import android.os.SystemProperties;
+import android.text.TextUtils;
import androidx.annotation.VisibleForTesting;
@@ -41,7 +42,13 @@
@Override
public CharSequence getSummary() {
- return SystemProperties.get(BASEBAND_PROPERTY,
+ String baseband = SystemProperties.get(BASEBAND_PROPERTY,
mContext.getString(R.string.device_info_default));
+ for (String str : baseband.split(",")) {
+ if (!TextUtils.isEmpty(str)) {
+ return str;
+ }
+ }
+ return baseband;
}
}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java
new file mode 100644
index 0000000..468ea5e
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageBuildDatePreferenceController.java
@@ -0,0 +1,45 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.os.SystemProperties;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+public class LineageBuildDatePreferenceController extends BasePreferenceController {
+
+ private static final String TAG = "LineageBuildDateCtrl";
+
+ private static final String KEY_BUILD_DATE_PROP = "ro.build.date";
+
+ public LineageBuildDatePreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return SystemProperties.get(KEY_BUILD_DATE_PROP,
+ mContext.getString(R.string.unknown));
+ }
+}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java
new file mode 100644
index 0000000..40887ee
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageVendorSecurityPatchLevelPreferenceController.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.os.SystemProperties;
+import android.text.format.DateFormat;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import java.text.ParseException;
+import java.text.SimpleDateFormat;
+import java.util.Date;
+import java.util.Locale;
+
+public class LineageVendorSecurityPatchLevelPreferenceController extends BasePreferenceController {
+
+ private static final String TAG = "LineageVendorSecurityPatchCtrl";
+
+ private static final String KEY_AOSP_VENDOR_SECURITY_PATCH =
+ "ro.vendor.build.security_patch";
+
+ private static final String KEY_LINEAGE_VENDOR_SECURITY_PATCH =
+ "ro.lineage.build.vendor_security_patch";
+
+ public LineageVendorSecurityPatchLevelPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ String patchLevel = SystemProperties.get(KEY_AOSP_VENDOR_SECURITY_PATCH);
+
+ if (patchLevel.isEmpty()) {
+ patchLevel = SystemProperties.get(KEY_LINEAGE_VENDOR_SECURITY_PATCH);
+ }
+
+ if (!patchLevel.isEmpty()) {
+ try {
+ SimpleDateFormat template = new SimpleDateFormat("yyyy-MM-dd");
+ Date patchLevelDate = template.parse(patchLevel);
+ String format = DateFormat.getBestDateTimePattern(Locale.getDefault(), "dMMMMyyyy");
+ patchLevel = DateFormat.format(format, patchLevelDate).toString();
+ } catch (ParseException e) {
+ // parsing failed, use raw string
+ }
+ } else {
+ patchLevel = mContext.getString(R.string.unknown);
+ }
+
+ return patchLevel;
+ }
+}
diff --git a/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java
new file mode 100644
index 0000000..0f2fead
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/firmwareversion/LineageVersionDetailPreferenceController.java
@@ -0,0 +1,129 @@
+/*
+ * Copyright (C) 2019-2022 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.firmwareversion;
+
+import android.content.Context;
+import android.content.Intent;
+import android.os.Build;
+import android.os.SystemClock;
+import android.os.SystemProperties;
+import android.os.UserHandle;
+import android.os.UserManager;
+import android.text.TextUtils;
+import android.util.Log;
+
+import androidx.annotation.VisibleForTesting;
+import androidx.preference.Preference;
+
+import com.android.settings.R;
+import com.android.settings.Utils;
+import com.android.settings.core.BasePreferenceController;
+import com.android.settingslib.RestrictedLockUtils;
+import com.android.settingslib.RestrictedLockUtilsInternal;
+
+public class LineageVersionDetailPreferenceController extends BasePreferenceController {
+
+ private static final String TAG = "lineageVersionDialogCtrl";
+ private static final int DELAY_TIMER_MILLIS = 500;
+ private static final int ACTIVITY_TRIGGER_COUNT = 3;
+
+ private static final String KEY_LINEAGE_VERSION_PROP = "ro.lineage.display.version";
+
+ private static final String PLATLOGO_PACKAGE_NAME = "org.lineageos.lineageparts";
+ private static final String PLATLOGO_ACTIVITY_CLASS =
+ PLATLOGO_PACKAGE_NAME + ".logo.PlatLogoActivity";
+
+ private final UserManager mUserManager;
+ private final long[] mHits = new long[ACTIVITY_TRIGGER_COUNT];
+
+ private RestrictedLockUtils.EnforcedAdmin mFunDisallowedAdmin;
+ private boolean mFunDisallowedBySystem;
+
+ public LineageVersionDetailPreferenceController(Context context, String key) {
+ super(context, key);
+ mUserManager = (UserManager) mContext.getSystemService(Context.USER_SERVICE);
+ initializeAdminPermissions();
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public boolean useDynamicSliceSummary() {
+ return true;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return true;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return SystemProperties.get(KEY_LINEAGE_VERSION_PROP,
+ mContext.getString(R.string.unknown));
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (!TextUtils.equals(preference.getKey(), getPreferenceKey())) {
+ return false;
+ }
+ if (Utils.isMonkeyRunning()) {
+ return false;
+ }
+ arrayCopy();
+ mHits[mHits.length - 1] = SystemClock.uptimeMillis();
+ if (mHits[0] >= (SystemClock.uptimeMillis() - DELAY_TIMER_MILLIS)) {
+ if (mUserManager.hasUserRestriction(UserManager.DISALLOW_FUN)) {
+ if (mFunDisallowedAdmin != null && !mFunDisallowedBySystem) {
+ RestrictedLockUtils.sendShowAdminSupportDetailsIntent(mContext,
+ mFunDisallowedAdmin);
+ }
+ Log.d(TAG, "Sorry, no fun for you!");
+ return true;
+ }
+
+ final Intent intent = new Intent(Intent.ACTION_MAIN)
+ .setClassName(PLATLOGO_PACKAGE_NAME, PLATLOGO_ACTIVITY_CLASS);
+ try {
+ mContext.startActivity(intent);
+ } catch (Exception e) {
+ Log.e(TAG, "Unable to start activity " + intent.toString());
+ }
+ }
+ return true;
+ }
+
+ /**
+ * Copies the array onto itself to remove the oldest hit.
+ */
+ @VisibleForTesting
+ void arrayCopy() {
+ System.arraycopy(mHits, 1, mHits, 0, mHits.length - 1);
+ }
+
+ @VisibleForTesting
+ void initializeAdminPermissions() {
+ mFunDisallowedAdmin = RestrictedLockUtilsInternal.checkIfRestrictionEnforced(
+ mContext, UserManager.DISALLOW_FUN, UserHandle.myUserId());
+ mFunDisallowedBySystem = RestrictedLockUtilsInternal.hasBaseUserRestriction(
+ mContext, UserManager.DISALLOW_FUN, UserHandle.myUserId());
+ }
+}
diff --git a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
index d6f8a51..9b7359b 100644
--- a/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
+++ b/src/com/android/settings/deviceinfo/imei/ImeiInfoPreferenceController.java
@@ -100,7 +100,7 @@
@Override
public CharSequence getSummary() {
- return getSummary(0);
+ return mContext.getString(R.string.device_info_protected_single_press);
}
private CharSequence getSummary(int simSlot) {
@@ -117,6 +117,7 @@
}
ImeiInfoDialogFragment.show(mFragment, simSlot, preference.getTitle().toString());
+ preference.setSummary(getSummary(simSlot));
return true;
}
@@ -134,7 +135,7 @@
private void updatePreference(Preference preference, int simSlot) {
preference.setTitle(getTitle(simSlot));
- preference.setSummary(getSummary(simSlot));
+ preference.setSummary(getSummary());
}
private CharSequence getTitleForGsmPhone(int simSlot) {
diff --git a/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java b/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java
new file mode 100644
index 0000000..a59f5cf
--- /dev/null
+++ b/src/com/android/settings/deviceinfo/legal/LineageLicensePreferenceController.java
@@ -0,0 +1,63 @@
+/*
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.deviceinfo.legal;
+
+import android.content.Context;
+import android.content.Intent;
+import android.net.Uri;
+import android.os.SystemProperties;
+
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.core.BasePreferenceController;
+
+public class LineageLicensePreferenceController extends BasePreferenceController {
+
+ private static final String PROPERTY_LINEAGE_LICENSE_URL = "ro.lineagelegal.url";
+
+ public LineageLicensePreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+
+ Preference preference = screen.findPreference(getPreferenceKey());
+ if (preference != null) {
+ preference.setOnPreferenceClickListener(pref -> {
+ mContext.startActivity(getIntent());
+ return true;
+ });
+ }
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (getIntent().resolveActivity(mContext.getPackageManager()) != null) {
+ return AVAILABLE;
+ } else {
+ return UNSUPPORTED_ON_DEVICE;
+ }
+ }
+
+ private Intent getIntent() {
+ return new Intent(Intent.ACTION_VIEW,
+ Uri.parse(SystemProperties.get(PROPERTY_LINEAGE_LICENSE_URL)));
+ }
+}
diff --git a/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java b/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java
new file mode 100644
index 0000000..aebcd3d
--- /dev/null
+++ b/src/com/android/settings/display/AutoBrightnessOneShotPreferenceController.java
@@ -0,0 +1,65 @@
+/*
+ * Copyright (C) 2021 The LineageOS 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.display;
+
+import android.content.Context;
+
+import lineageos.providers.LineageSettings;
+
+import com.android.settings.R;
+import com.android.settings.core.TogglePreferenceController;
+
+public class AutoBrightnessOneShotPreferenceController extends TogglePreferenceController {
+
+ public AutoBrightnessOneShotPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public boolean isChecked() {
+ return LineageSettings.System.getInt(mContext.getContentResolver(),
+ LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT, 0) == 1;
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ LineageSettings.System.putInt(mContext.getContentResolver(),
+ LineageSettings.System.AUTO_BRIGHTNESS_ONE_SHOT, isChecked ? 1 : 0);
+ return true;
+ }
+
+ @Override
+ @AvailabilityStatus
+ public int getAvailabilityStatus() {
+ return mContext.getResources().getBoolean(
+ com.android.internal.R.bool.config_automatic_brightness_available)
+ ? AVAILABLE_UNSEARCHABLE
+ : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public CharSequence getSummary() {
+ return mContext.getText(isChecked()
+ ? R.string.auto_brightness_summary_on
+ : R.string.auto_brightness_summary_off);
+ }
+
+ @Override
+ public int getSliceHighlightMenuRes() {
+ return R.string.menu_key_display;
+ }
+}
diff --git a/src/com/android/settings/display/ColorModePreferenceController.java b/src/com/android/settings/display/ColorModePreferenceController.java
index 6cd4867..14a2241 100644
--- a/src/com/android/settings/display/ColorModePreferenceController.java
+++ b/src/com/android/settings/display/ColorModePreferenceController.java
@@ -28,8 +28,11 @@
@Override
public int getAvailabilityStatus() {
+ final int[] availableColorModes = mContext.getResources().getIntArray(
+ com.android.internal.R.array.config_availableColorModes);
return mContext.getSystemService(ColorDisplayManager.class)
.isDeviceColorManaged()
+ && availableColorModes.length > 0
&& !ColorDisplayManager.areAccessibilityTransformsEnabled(mContext) ?
AVAILABLE : DISABLED_FOR_USER;
}
diff --git a/src/com/android/settings/display/MinRefreshRatePreferenceController.java b/src/com/android/settings/display/MinRefreshRatePreferenceController.java
new file mode 100644
index 0000000..caaf11b
--- /dev/null
+++ b/src/com/android/settings/display/MinRefreshRatePreferenceController.java
@@ -0,0 +1,101 @@
+/*
+ * Copyright (C) 2020 The LineageOS 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.display;
+
+import static android.provider.Settings.System.MIN_REFRESH_RATE;
+
+import android.content.Context;
+import android.provider.Settings;
+import android.view.Display;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.R;
+import com.android.settings.core.BasePreferenceController;
+
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Locale;
+
+public class MinRefreshRatePreferenceController extends BasePreferenceController
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_MIN_REFRESH_RATE = "min_refresh_rate";
+
+ private ListPreference mListPreference;
+
+ private List<String> mEntries = new ArrayList<>();
+ private List<String> mValues = new ArrayList<>();
+
+ public MinRefreshRatePreferenceController(Context context) {
+ super(context, KEY_MIN_REFRESH_RATE);
+
+ if (mContext.getResources().getBoolean(R.bool.config_show_min_refresh_rate_switch)) {
+ Display.Mode mode = mContext.getDisplay().getMode();
+ Display.Mode[] modes = mContext.getDisplay().getSupportedModes();
+ for (Display.Mode m : modes) {
+ if (m.getPhysicalWidth() == mode.getPhysicalWidth() &&
+ m.getPhysicalHeight() == mode.getPhysicalHeight()) {
+ mEntries.add(String.format("%.02fHz", m.getRefreshRate())
+ .replaceAll("[\\.,]00", ""));
+ mValues.add(String.format(Locale.US, "%.02f", m.getRefreshRate()));
+ }
+ }
+ }
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return mEntries.size() > 1 ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_MIN_REFRESH_RATE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ mListPreference = screen.findPreference(getPreferenceKey());
+ mListPreference.setEntries(mEntries.toArray(new String[mEntries.size()]));
+ mListPreference.setEntryValues(mValues.toArray(new String[mValues.size()]));
+
+ super.displayPreference(screen);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final float currentValue = Settings.System.getFloat(mContext.getContentResolver(),
+ MIN_REFRESH_RATE, 60.00f);
+ int index = mListPreference.findIndexOfValue(
+ String.format(Locale.US, "%.02f", currentValue));
+ if (index < 0) index = 0;
+ mListPreference.setValueIndex(index);
+ mListPreference.setSummary(mListPreference.getEntries()[index]);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ Settings.System.putFloat(mContext.getContentResolver(), MIN_REFRESH_RATE,
+ Float.valueOf((String) newValue));
+ updateState(preference);
+ return true;
+ }
+
+}
diff --git a/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java b/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java
new file mode 100644
index 0000000..e4f4a07
--- /dev/null
+++ b/src/com/android/settings/display/PeakRefreshRateListPreferenceController.java
@@ -0,0 +1,202 @@
+/*
+ * Copyright (C) 2020 The Android Open Source Project
+ * Copyright (C) 2021 The LineageOS 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.display;
+
+import android.content.Context;
+import android.hardware.display.DisplayManager;
+import android.os.Handler;
+import android.provider.DeviceConfig;
+import android.provider.Settings;
+import android.util.Log;
+import android.view.Display;
+
+import androidx.preference.ListPreference;
+import androidx.preference.Preference;
+import androidx.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;
+
+import java.util.ArrayList;
+import java.util.concurrent.Executor;
+import java.util.List;
+import java.util.Locale;
+
+public class PeakRefreshRateListPreferenceController extends BasePreferenceController
+ implements LifecycleObserver, OnStart, OnStop, Preference.OnPreferenceChangeListener {
+
+ private static float DEFAULT_REFRESH_RATE = 60f;
+
+ private static final String TAG = "PeakRefreshRatePrefCtr";
+ private static final float INVALIDATE_REFRESH_RATE = -1f;
+
+ private final Handler mHandler;
+ private final IDeviceConfigChange mOnDeviceConfigChange;
+ private final DeviceConfigDisplaySettings mDeviceConfigDisplaySettings;
+ private ListPreference mListPreference;
+
+ private List<String> mEntries = new ArrayList<>();
+ private List<String> mValues = new ArrayList<>();
+
+ private interface IDeviceConfigChange {
+ void onDefaultRefreshRateChanged();
+ }
+
+ public PeakRefreshRateListPreferenceController(Context context, String key) {
+ super(context, key);
+ mHandler = new Handler(context.getMainLooper());
+ mDeviceConfigDisplaySettings = new DeviceConfigDisplaySettings();
+ mOnDeviceConfigChange =
+ new IDeviceConfigChange() {
+ public void onDefaultRefreshRateChanged() {
+ updateState(mListPreference);
+ }
+ };
+
+ final DisplayManager dm = mContext.getSystemService(DisplayManager.class);
+ final Display display = dm.getDisplay(Display.DEFAULT_DISPLAY);
+
+ if (display == null) {
+ Log.w(TAG, "No valid default display device");
+ } else {
+ Display.Mode mode = display.getMode();
+ Display.Mode[] modes = display.getSupportedModes();
+ for (Display.Mode m : modes) {
+ if (m.getPhysicalWidth() == mode.getPhysicalWidth() &&
+ m.getPhysicalHeight() == mode.getPhysicalHeight()) {
+ mEntries.add(String.format("%.02fHz", m.getRefreshRate())
+ .replaceAll("[\\.,]00", ""));
+ mValues.add(String.format(Locale.US, "%.02f", m.getRefreshRate()));
+ }
+ }
+ }
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+
+ mListPreference = screen.findPreference(getPreferenceKey());
+ mListPreference.setEntries(mEntries.toArray(new String[mEntries.size()]));
+ mListPreference.setEntryValues(mValues.toArray(new String[mValues.size()]));
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ if (mContext.getResources().getBoolean(R.bool.config_show_peak_refresh_rate_switch)) {
+ return AVAILABLE;
+ } else {
+ return UNSUPPORTED_ON_DEVICE;
+ }
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ final float currentValue = Settings.System.getFloat(mContext.getContentResolver(),
+ Settings.System.PEAK_REFRESH_RATE, getDefaultPeakRefreshRate());
+ int index = mListPreference.findIndexOfValue(
+ String.format(Locale.US, "%.02f", currentValue));
+ if (index < 0) index = 0;
+ mListPreference.setValueIndex(index);
+ mListPreference.setSummary(mListPreference.getEntries()[index]);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ Settings.System.putFloat(mContext.getContentResolver(), Settings.System.PEAK_REFRESH_RATE,
+ Float.valueOf((String) newValue));
+ updateState(preference);
+ return true;
+ }
+
+ @Override
+ public void onStart() {
+ mDeviceConfigDisplaySettings.startListening();
+ }
+
+ @Override
+ public void onStop() {
+ mDeviceConfigDisplaySettings.stopListening();
+ }
+
+ private float findPeakRefreshRate(Display.Mode[] modes) {
+ float peakRefreshRate = DEFAULT_REFRESH_RATE;
+ for (Display.Mode mode : modes) {
+ if (Math.round(mode.getRefreshRate()) > DEFAULT_REFRESH_RATE) {
+ peakRefreshRate = mode.getRefreshRate();
+ }
+ }
+ return peakRefreshRate;
+ }
+
+ private class DeviceConfigDisplaySettings
+ implements DeviceConfig.OnPropertiesChangedListener, Executor {
+ public void startListening() {
+ DeviceConfig.addOnPropertiesChangedListener(
+ DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
+ this /* Executor */,
+ this /* Listener */);
+ }
+
+ public void stopListening() {
+ DeviceConfig.removeOnPropertiesChangedListener(this);
+ }
+
+ public float getDefaultPeakRefreshRate() {
+ float defaultPeakRefreshRate =
+ DeviceConfig.getFloat(
+ DeviceConfig.NAMESPACE_DISPLAY_MANAGER,
+ DisplayManager.DeviceConfig.KEY_PEAK_REFRESH_RATE_DEFAULT,
+ INVALIDATE_REFRESH_RATE);
+ Log.d(TAG, "DeviceConfig getDefaultPeakRefreshRate : " + defaultPeakRefreshRate);
+
+ return defaultPeakRefreshRate;
+ }
+
+ @Override
+ public void onPropertiesChanged(DeviceConfig.Properties properties) {
+ // Got notified if any property has been changed in NAMESPACE_DISPLAY_MANAGER. The
+ // KEY_PEAK_REFRESH_RATE_DEFAULT value could be added, changed, removed or unchanged.
+ // Just force a UI update for any case.
+ if (mOnDeviceConfigChange != null) {
+ mOnDeviceConfigChange.onDefaultRefreshRateChanged();
+ updateState(mListPreference);
+ }
+ }
+
+ @Override
+ public void execute(Runnable runnable) {
+ if (mHandler != null) {
+ mHandler.post(runnable);
+ }
+ }
+ }
+
+ private float getDefaultPeakRefreshRate() {
+ float defaultPeakRefreshRate = mDeviceConfigDisplaySettings.getDefaultPeakRefreshRate();
+ if (defaultPeakRefreshRate == INVALIDATE_REFRESH_RATE) {
+ defaultPeakRefreshRate = (float) mContext.getResources().getInteger(
+ com.android.internal.R.integer.config_defaultPeakRefreshRate);
+ }
+
+ return defaultPeakRefreshRate;
+ }
+}
diff --git a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
index 27ba340..7bc34ef 100644
--- a/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
+++ b/src/com/android/settings/display/PeakRefreshRatePreferenceController.java
@@ -89,6 +89,10 @@
super.displayPreference(screen);
mPreference = screen.findPreference(getPreferenceKey());
+
+ final String summary = mContext.getString(R.string.peak_refresh_rate_summary_custom,
+ (int)mPeakRefreshRate);
+ mPreference.setSummary(summary);
}
@Override
diff --git a/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java b/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java
new file mode 100644
index 0000000..21586ea
--- /dev/null
+++ b/src/com/android/settings/fuelgauge/FastChargingPreferenceController.java
@@ -0,0 +1,84 @@
+/*
+ * Copyright (C) 2021 The LineageOS 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;
+
+import android.content.Context;
+import android.os.RemoteException;
+import android.util.Log;
+
+import androidx.preference.Preference;
+import androidx.preference.SwitchPreference;
+
+import com.android.settings.core.BasePreferenceController;
+
+import vendor.lineage.fastcharge.V1_0.IFastCharge;
+
+import java.util.NoSuchElementException;
+
+/**
+ * Controller to change and update the fast charging toggle
+ */
+public class FastChargingPreferenceController extends BasePreferenceController
+ implements Preference.OnPreferenceChangeListener {
+
+ private static final String KEY_FAST_CHARGING = "fast_charging";
+ private static final String TAG = "FastChargingPreferenceController";
+
+ private IFastCharge mFastCharge = null;
+
+ public FastChargingPreferenceController(Context context) {
+ super(context, KEY_FAST_CHARGING);
+ try {
+ mFastCharge = IFastCharge.getService();
+ } catch (NoSuchElementException | RemoteException e) {
+ Log.e(TAG, "Failed to get IFastCharge interface", e);
+ }
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return mFastCharge != null ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ super.updateState(preference);
+ boolean fastChargingEnabled = false;
+
+ try {
+ fastChargingEnabled = mFastCharge.isEnabled();
+ } catch (RemoteException e) {
+ Log.e(TAG, "isEnabled failed", e);
+ }
+
+ ((SwitchPreference) preference).setChecked(fastChargingEnabled);
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ final boolean shouldEnableFastCharging = (Boolean) newValue;
+
+ try {
+ mFastCharge.setEnabled(shouldEnableFastCharging);
+ updateState(preference);
+ } catch (RemoteException e) {
+ Log.e(TAG, "setEnabled failed", e);
+ }
+
+ return false;
+ }
+}
diff --git a/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java b/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
index 546581b..0672b77 100644
--- a/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
+++ b/src/com/android/settings/gestures/GestureNavigationSettingsFragment.java
@@ -31,6 +31,10 @@
import com.android.settings.widget.SeekBarPreference;
import com.android.settingslib.search.SearchIndexable;
+import static com.android.systemui.shared.recents.utilities.Utilities.isLargeScreen;
+
+import lineageos.providers.LineageSettings;
+
/**
* A fragment to include all the settings related to Gesture Navigation mode.
*/
@@ -45,6 +49,8 @@
private static final String LEFT_EDGE_SEEKBAR_KEY = "gesture_left_back_sensitivity";
private static final String RIGHT_EDGE_SEEKBAR_KEY = "gesture_right_back_sensitivity";
+ private static final String NAVIGATION_BAR_HINT_KEY = "navigation_bar_hint";
+
private WindowManager mWindowManager;
private BackGestureIndicatorView mIndicatorView;
@@ -75,6 +81,13 @@
initSeekBarPreference(LEFT_EDGE_SEEKBAR_KEY);
initSeekBarPreference(RIGHT_EDGE_SEEKBAR_KEY);
+
+ boolean isTaskbarEnabled = LineageSettings.System.getInt(getContext().getContentResolver(),
+ LineageSettings.System.ENABLE_TASKBAR, isLargeScreen(getContext()) ? 1 : 0) == 1;
+ if (isTaskbarEnabled) {
+ getPreferenceScreen().removePreference(
+ getPreferenceScreen().findPreference(NAVIGATION_BAR_HINT_KEY));
+ }
}
@Override
diff --git a/src/com/android/settings/gestures/GestureSettings.java b/src/com/android/settings/gestures/GestureSettings.java
index d82cb10..4c2b099 100644
--- a/src/com/android/settings/gestures/GestureSettings.java
+++ b/src/com/android/settings/gestures/GestureSettings.java
@@ -56,6 +56,7 @@
use(AssistGestureSettingsPreferenceController.class).setAssistOnly(false);
use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
+ use(ScreenOffUdfpsPreferenceController.class).setConfig(getConfig(context));
}
private AmbientDisplayConfiguration getConfig(Context context) {
diff --git a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
index ff069ab..a93b740 100644
--- a/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
+++ b/src/com/android/settings/gestures/GesturesSettingPreferenceController.java
@@ -77,6 +77,8 @@
controllers.add(new DoubleTapScreenPreferenceController(context, FAKE_PREF_KEY)
.setConfig(ambientDisplayConfiguration));
controllers.add(new PreventRingingParentPreferenceController(context, FAKE_PREF_KEY));
+ controllers.add(new ScreenOffUdfpsPreferenceController(context, FAKE_PREF_KEY)
+ .setConfig(ambientDisplayConfiguration));
return controllers;
}
}
diff --git a/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java b/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java
new file mode 100644
index 0000000..0128ea0
--- /dev/null
+++ b/src/com/android/settings/gestures/ScreenOffUdfpsPreferenceController.java
@@ -0,0 +1,109 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.annotation.UserIdInt;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.os.UserHandle;
+import android.provider.Settings;
+import android.text.TextUtils;
+
+import androidx.annotation.VisibleForTesting;
+
+public class ScreenOffUdfpsPreferenceController extends GesturePreferenceController {
+
+ private final int ON = 1;
+ private final int OFF = 0;
+
+ private static final String PREF_KEY_VIDEO = "gesture_screen_off_udfps_video";
+
+ private static final String SECURE_KEY = "screen_off_udfps_enabled";
+
+ private AmbientDisplayConfiguration mAmbientConfig;
+ @UserIdInt
+ private final int mUserId;
+
+ public ScreenOffUdfpsPreferenceController(Context context, String key) {
+ super(context, key);
+ mUserId = UserHandle.myUserId();
+ }
+
+ public ScreenOffUdfpsPreferenceController setConfig(AmbientDisplayConfiguration config) {
+ mAmbientConfig = config;
+ return this;
+ }
+
+ private static boolean screenOffUdfpsAvailable(AmbientDisplayConfiguration config) {
+ return !TextUtils.isEmpty(config.udfpsLongPressSensorType());
+ }
+
+ public static boolean isSuggestionComplete(Context context, SharedPreferences prefs) {
+ return isSuggestionComplete(new AmbientDisplayConfiguration(context), prefs);
+ }
+
+ @VisibleForTesting
+ static boolean isSuggestionComplete(AmbientDisplayConfiguration config,
+ SharedPreferences prefs) {
+ return !screenOffUdfpsAvailable(config)
+ || prefs.getBoolean(ScreenOffUdfpsSettings.PREF_KEY_SUGGESTION_COMPLETE, false);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ // No hardware support for Screen-Off UDFPS
+ if (!screenOffUdfpsAvailable(mAmbientConfig)) {
+ return UNSUPPORTED_ON_DEVICE;
+ }
+
+ return AVAILABLE;
+ }
+
+ @Override
+ public boolean isSliceable() {
+ return TextUtils.equals(getPreferenceKey(), "gesture_screen_off_udfps");
+ }
+
+ @Override
+ public boolean isPublicSlice() {
+ return true;
+ }
+
+ @Override
+ public boolean setChecked(boolean isChecked) {
+ return Settings.Secure.putInt(mContext.getContentResolver(), SECURE_KEY,
+ isChecked ? ON : OFF);
+ }
+
+ @Override
+ protected String getVideoPrefKey() {
+ return PREF_KEY_VIDEO;
+ }
+
+ @Override
+ public boolean isChecked() {
+ return getAmbientConfig().screenOffUdfpsEnabled(mUserId);
+ }
+
+ private AmbientDisplayConfiguration getAmbientConfig() {
+ if (mAmbientConfig == null) {
+ mAmbientConfig = new AmbientDisplayConfiguration(mContext);
+ }
+ return mAmbientConfig;
+ }
+}
diff --git a/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java b/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java
new file mode 100644
index 0000000..751f0b3
--- /dev/null
+++ b/src/com/android/settings/gestures/ScreenOffUdfpsSettings.java
@@ -0,0 +1,73 @@
+/*
+ * Copyright (C) 2022 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.gestures;
+
+import android.app.settings.SettingsEnums;
+import android.content.Context;
+import android.content.SharedPreferences;
+import android.hardware.display.AmbientDisplayConfiguration;
+import android.provider.SearchIndexableResource;
+
+import com.android.settings.R;
+import com.android.settings.dashboard.DashboardFragment;
+import com.android.settings.dashboard.suggestions.SuggestionFeatureProvider;
+import com.android.settings.overlay.FeatureFactory;
+import com.android.settings.search.BaseSearchIndexProvider;
+import com.android.settingslib.search.SearchIndexable;
+
+import java.util.Arrays;
+import java.util.List;
+
+@SearchIndexable
+public class ScreenOffUdfpsSettings extends DashboardFragment {
+
+ private static final String TAG = "ScreenOffUdfps";
+
+ public static final String PREF_KEY_SUGGESTION_COMPLETE =
+ "pref_screen_off_udfps_suggestion_complete";
+
+ @Override
+ public void onAttach(Context context) {
+ super.onAttach(context);
+ SuggestionFeatureProvider suggestionFeatureProvider = FeatureFactory.getFactory(context)
+ .getSuggestionFeatureProvider(context);
+ SharedPreferences prefs = suggestionFeatureProvider.getSharedPrefs(context);
+ prefs.edit().putBoolean(PREF_KEY_SUGGESTION_COMPLETE, true).apply();
+
+ use(ScreenOffUdfpsPreferenceController.class)
+ .setConfig(new AmbientDisplayConfiguration(context));
+ }
+
+
+ @Override
+ public int getMetricsCategory() {
+ return SettingsEnums.PAGE_UNKNOWN;
+ }
+
+ @Override
+ protected String getLogTag() {
+ return TAG;
+ }
+
+ @Override
+ protected int getPreferenceScreenResId() {
+ return R.xml.screen_off_udfps_settings;
+ }
+
+ public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
+ new BaseSearchIndexProvider(R.xml.screen_off_udfps_settings);
+}
diff --git a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
index 0363d9e..9a44098 100644
--- a/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
+++ b/src/com/android/settings/gestures/SystemNavigationGestureSettings.java
@@ -56,6 +56,10 @@
import com.android.settingslib.widget.IllustrationPreference;
import com.android.settingslib.widget.SelectorWithWidgetPreference;
+import static com.android.systemui.shared.recents.utilities.Utilities.isLargeScreen;
+
+import lineageos.providers.LineageSettings;
+
import java.util.ArrayList;
import java.util.List;
@@ -186,6 +190,9 @@
final Context c = getContext();
List<CandidateInfoExtra> candidates = new ArrayList<>();
+ boolean isTaskbarEnabled = LineageSettings.System.getInt(getContext().getContentResolver(),
+ LineageSettings.System.ENABLE_TASKBAR, isLargeScreen(getContext()) ? 1 : 0) == 1;
+
if (SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
NAV_BAR_MODE_GESTURAL_OVERLAY)) {
candidates.add(new CandidateInfoExtra(
@@ -193,7 +200,7 @@
c.getText(R.string.edge_to_edge_navigation_summary),
KEY_SYSTEM_NAV_GESTURAL, true /* enabled */));
}
- if (SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
+ if (!isTaskbarEnabled && SystemNavigationPreferenceController.isOverlayPackageAvailable(c,
NAV_BAR_MODE_2BUTTON_OVERLAY)) {
candidates.add(new CandidateInfoExtra(
c.getText(R.string.swipe_up_to_switch_apps_title),
diff --git a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
index ab83a9d..c50be5c 100644
--- a/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
+++ b/src/com/android/settings/gestures/SystemNavigationPreferenceController.java
@@ -23,6 +23,10 @@
import android.content.Context;
import android.content.Intent;
import android.content.pm.PackageManager;
+import android.os.RemoteException;
+import android.view.Display;
+import android.view.IWindowManager;
+import android.view.WindowManagerGlobal;
import com.android.settings.R;
import com.android.settings.core.BasePreferenceController;
@@ -53,9 +57,19 @@
}
static boolean isGestureAvailable(Context context) {
+ boolean hasNavigationBar = false;
+ final boolean configEnabled = context.getResources().getBoolean(
+ com.android.internal.R.bool.config_swipe_up_gesture_setting_available);
+
+ try {
+ IWindowManager windowManager = WindowManagerGlobal.getWindowManagerService();
+ hasNavigationBar = windowManager.hasNavigationBar(Display.DEFAULT_DISPLAY);
+ } catch (RemoteException ex) {
+ // no window manager? good luck with that
+ }
// Skip if the swipe up settings are not available
- if (!context.getResources().getBoolean(
- com.android.internal.R.bool.config_swipe_up_gesture_setting_available)) {
+ // or if on-screen navbar is disabled (for devices with hardware keys)
+ if (!configEnabled || !hasNavigationBar) {
return false;
}
diff --git a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
index 808129f..8daf126 100644
--- a/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
+++ b/src/com/android/settings/inputmethod/PhysicalKeyboardFragment.java
@@ -60,6 +60,7 @@
KeyboardLayoutDialogFragment.OnSetupKeyboardLayoutsListener {
private static final String KEYBOARD_ASSISTANCE_CATEGORY = "keyboard_assistance_category";
+ private static final String KEYBOARD_EXTRAS_CATEGORY = "keyboard_extras_category";
private static final String SHOW_VIRTUAL_KEYBOARD_SWITCH = "show_virtual_keyboard_switch";
private static final String KEYBOARD_SHORTCUTS_HELPER = "keyboard_shortcuts_helper";
@@ -70,6 +71,8 @@
@NonNull
private PreferenceCategory mKeyboardAssistanceCategory;
@NonNull
+ private PreferenceCategory mKeyboardExtrasCategory;
+ @NonNull
private SwitchPreference mShowVirtualKeyboardSwitch;
private Intent mIntentWaitingForResult;
@@ -81,6 +84,8 @@
mIm = Preconditions.checkNotNull(activity.getSystemService(InputManager.class));
mKeyboardAssistanceCategory = Preconditions.checkNotNull(
(PreferenceCategory) findPreference(KEYBOARD_ASSISTANCE_CATEGORY));
+ mKeyboardExtrasCategory = Preconditions.checkNotNull(
+ (PreferenceCategory) findPreference(KEYBOARD_EXTRAS_CATEGORY));
mShowVirtualKeyboardSwitch = Preconditions.checkNotNull(
(SwitchPreference) mKeyboardAssistanceCategory.findPreference(
SHOW_VIRTUAL_KEYBOARD_SWITCH));
@@ -176,6 +181,8 @@
mKeyboardAssistanceCategory.setOrder(1);
preferenceScreen.addPreference(mKeyboardAssistanceCategory);
+ mKeyboardExtrasCategory.setOrder(99);
+ preferenceScreen.addPreference(mKeyboardExtrasCategory);
updateShowVirtualKeyboardSwitch();
}
diff --git a/src/com/android/settings/language/LanguageAndInputSettings.java b/src/com/android/settings/language/LanguageAndInputSettings.java
index 2d80da5..86c200b 100644
--- a/src/com/android/settings/language/LanguageAndInputSettings.java
+++ b/src/com/android/settings/language/LanguageAndInputSettings.java
@@ -39,6 +39,8 @@
import com.android.settingslib.core.lifecycle.Lifecycle;
import com.android.settingslib.search.SearchIndexable;
+import lineageos.hardware.LineageHardwareManager;
+
import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
@@ -53,6 +55,7 @@
private static final String KEY_ON_DEVICE_RECOGNITION = "odsr_settings";
private static final String KEY_TEXT_TO_SPEECH = "tts_settings_summary";
private static final String KEY_POINTER_CATEGORY = "pointer_category";
+ private static final String KEY_TOUCH_HOVERING = "feature_touch_hovering";
@Override
public int getMetricsCategory() {
@@ -156,6 +159,16 @@
new BaseSearchIndexProvider(R.xml.language_and_input) {
@Override
+ public List<String> getNonIndexableKeys(Context context) {
+ List<String> keys = super.getNonIndexableKeys(context);
+ LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
+ if (!hardware.isSupported(LineageHardwareManager.FEATURE_TOUCH_HOVERING)) {
+ keys.add(KEY_TOUCH_HOVERING);
+ }
+ return keys;
+ }
+
+ @Override
public List<AbstractPreferenceController> createPreferenceControllers(
Context context) {
return buildPreferenceControllers(context, null);
diff --git a/src/com/android/settings/location/AgpsPreferenceController.java b/src/com/android/settings/location/AgpsPreferenceController.java
new file mode 100755
index 0000000..8fed53a
--- /dev/null
+++ b/src/com/android/settings/location/AgpsPreferenceController.java
@@ -0,0 +1,74 @@
+/*
+ * Copyright (C) 2011 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.location;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.SwitchPreference;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceScreen;
+
+public class AgpsPreferenceController extends LocationBasePreferenceController {
+ private static final String KEY_ASSISTED_GPS = "assisted_gps";
+
+ private SwitchPreference mAgpsPreference;
+
+ public AgpsPreferenceController(Context context, String key) {
+ super(context, key);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_ASSISTED_GPS;
+ }
+
+ @AvailabilityStatus
+ public int getAvailabilityStatus() {
+ return AVAILABLE;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ mAgpsPreference = (SwitchPreference) screen.findPreference(KEY_ASSISTED_GPS);
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ if (mAgpsPreference != null) {
+ mAgpsPreference.setChecked(Settings.Global.getInt(
+ mContext.getContentResolver(), Settings.Global.ASSISTED_GPS_ENABLED, 1) == 1);
+ }
+ }
+
+ @Override
+ public boolean handlePreferenceTreeClick(Preference preference) {
+ if (KEY_ASSISTED_GPS.equals(preference.getKey())) {
+ final ContentResolver cr = mContext.getContentResolver();
+ final boolean switchState = mAgpsPreference.isChecked();
+ Settings.Global.putInt(cr, Settings.Global.ASSISTED_GPS_ENABLED,
+ switchState ? 1 : 0);
+ return true;
+ }
+ return false;
+ }
+
+ @Override
+ public void onLocationModeChanged(int mode, boolean restricted) {}
+}
diff --git a/src/com/android/settings/location/LocationSettings.java b/src/com/android/settings/location/LocationSettings.java
index ff8b4be..aac19a7 100644
--- a/src/com/android/settings/location/LocationSettings.java
+++ b/src/com/android/settings/location/LocationSettings.java
@@ -109,6 +109,7 @@
use(RecentLocationAccessSeeAllButtonPreferenceController.class).init(this);
use(LocationForWorkPreferenceController.class).init(this);
use(LocationSettingsFooterPreferenceController.class).init(this);
+ use(AgpsPreferenceController.class).init(this);
}
@Override
diff --git a/src/com/android/settings/network/NetworkProviderSettings.java b/src/com/android/settings/network/NetworkProviderSettings.java
index ae2cfbc..b8d8f9b 100644
--- a/src/com/android/settings/network/NetworkProviderSettings.java
+++ b/src/com/android/settings/network/NetworkProviderSettings.java
@@ -44,10 +44,12 @@
import android.util.Log;
import android.view.ContextMenu;
import android.view.ContextMenu.ContextMenuInfo;
+import android.view.LayoutInflater;
import android.view.Menu;
import android.view.MenuInflater;
import android.view.MenuItem;
import android.view.View;
+import android.view.ViewGroup;
import android.widget.Toast;
import androidx.annotation.Nullable;
@@ -94,6 +96,10 @@
import com.android.wifitrackerlib.WifiEntry.ConnectCallback;
import com.android.wifitrackerlib.WifiPickerTracker;
+import com.google.android.setupcompat.template.FooterButtonStyleUtils;
+import com.google.android.setupcompat.util.WizardManagerHelper;
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
import java.util.List;
import java.util.Optional;
@@ -167,6 +173,8 @@
// Enable the Next button when a Wi-Fi network is connected.
private boolean mEnableNextOnConnection;
+ private boolean mIsInSetupWizard;
+
// This string extra specifies a network to open the connect dialog on, so the user can enter
// network credentials. This is used by quick settings for secured networks, among other
// things.
@@ -271,6 +279,18 @@
return;
}
+ if (mIsInSetupWizard) {
+ GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+ layout.setDividerInsets(Integer.MAX_VALUE, 0);
+
+ layout.setIcon(getContext().getDrawable(R.drawable.ic_network_setup));
+ layout.setHeaderText(R.string.provider_internet_settings);
+ FooterButtonStyleUtils.applyPrimaryButtonPartnerResource(activity, getNextButton(),
+ true);
+
+ return;
+ }
+
setPinnedHeaderView(R.layout.progress_header);
setProgressBarVisible(false);
@@ -303,6 +323,9 @@
mIsRestricted = isUiRestricted();
mIsAdmin = isAdminUser();
+
+ final Intent intent = this.getIntent();
+ mIsInSetupWizard = WizardManagerHelper.isAnySetupWizard(intent);
}
private boolean isAdminUser() {
@@ -311,6 +334,17 @@
return userManager.isAdminUser();
}
+ @Override
+ public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
+ Bundle savedInstanceState) {
+ if (mIsInSetupWizard) {
+ GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
+ return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
+ } else {
+ return super.onCreateRecyclerView(inflater, parent, savedInstanceState);
+ }
+ }
+
private void addPreferences() {
addPreferencesFromResource(R.xml.network_provider_settings);
@@ -436,7 +470,12 @@
}
}
};
- setHasOptionsMenu(true);
+ if (mIsInSetupWizard) {
+ mConfigureWifiSettingsPreference.setVisible(false);
+ mDataUsagePreference.setVisible(false);
+ } else {
+ setHasOptionsMenu(true);
+ }
if (savedInstanceState != null) {
mDialogMode = savedInstanceState.getInt(SAVE_DIALOG_MODE);
@@ -981,7 +1020,9 @@
if (mClickedConnect) {
mClickedConnect = false;
- scrollToPreference(connectedWifiPreferenceCategory);
+ if (!mIsInSetupWizard) {
+ scrollToPreference(connectedWifiPreferenceCategory);
+ }
}
}
} else {
@@ -1107,10 +1148,12 @@
@VisibleForTesting
void setAdditionalSettingsSummaries() {
- mConfigureWifiSettingsPreference.setSummary(getString(
- isWifiWakeupEnabled()
- ? R.string.wifi_configure_settings_preference_summary_wakeup_on
- : R.string.wifi_configure_settings_preference_summary_wakeup_off));
+ if (!mIsInSetupWizard) {
+ mConfigureWifiSettingsPreference.setSummary(getString(
+ isWifiWakeupEnabled()
+ ? R.string.wifi_configure_settings_preference_summary_wakeup_on
+ : R.string.wifi_configure_settings_preference_summary_wakeup_off));
+ }
final int numSavedNetworks = mWifiPickerTracker == null ? 0 :
mWifiPickerTracker.getNumSavedNetworks();
@@ -1159,7 +1202,9 @@
}
protected void setProgressBarVisible(boolean visible) {
- showPinnedHeader(visible);
+ if (!mIsInSetupWizard) {
+ showPinnedHeader(visible);
+ }
}
@VisibleForTesting
diff --git a/src/com/android/settings/network/NetworkSetupActivity.java b/src/com/android/settings/network/NetworkSetupActivity.java
new file mode 100644
index 0000000..80290ed
--- /dev/null
+++ b/src/com/android/settings/network/NetworkSetupActivity.java
@@ -0,0 +1,67 @@
+/*
+ * Copyright (C) 2012 The Android Open Source Project
+ * Copyright (C) 2021 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+package com.android.settings.network;
+
+import android.content.Intent;
+import android.content.res.Resources;
+
+import androidx.preference.PreferenceFragmentCompat;
+
+import com.android.settings.ButtonBarHandler;
+import com.android.settings.network.NetworkProviderSettings;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.wifi.p2p.WifiP2pSettings;
+import com.android.settings.wifi.savedaccesspoints2.SavedAccessPointsWifiSettings2;
+
+public class NetworkSetupActivity extends SettingsActivity implements ButtonBarHandler {
+
+ @Override
+ public Intent getIntent() {
+ Intent modIntent = new Intent(super.getIntent());
+ if (!modIntent.hasExtra(EXTRA_SHOW_FRAGMENT)) {
+ modIntent.putExtra(EXTRA_SHOW_FRAGMENT, getNetworkProviderSettingsClass().getName());
+ modIntent.putExtra(EXTRA_SHOW_FRAGMENT_TITLE_RESID,
+ R.string.provider_internet_settings);
+ }
+ return modIntent;
+ }
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ final boolean isSavedAccessPointsWifiSettings =
+ SavedAccessPointsWifiSettings2.class.getName().equals(fragmentName);
+
+ if (NetworkProviderSettings.class.getName().equals(fragmentName)
+ || WifiP2pSettings.class.getName().equals(fragmentName)
+ || isSavedAccessPointsWifiSettings) {
+ return true;
+ }
+ return false;
+ }
+
+ /* package */ Class<? extends PreferenceFragmentCompat> getNetworkProviderSettingsClass() {
+ return NetworkProviderSettings.class;
+ }
+
+ @Override
+ protected void onApplyThemeResource(Resources.Theme theme, int resid, boolean first) {
+ final int new_resid = SetupWizardUtils.getTheme(this, getIntent());
+ super.onApplyThemeResource(theme, new_resid, first);
+ }
+}
diff --git a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
index 5c7c54e..66575c3 100644
--- a/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
+++ b/src/com/android/settings/network/PrivateDnsModeDialogPreference.java
@@ -72,9 +72,13 @@
// DNS_MODE -> RadioButton id
private static final Map<Integer, Integer> PRIVATE_DNS_MAP;
+ // Only used in Settings, update on additions to ConnectivitySettingsUtils
+ private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4;
+
static {
PRIVATE_DNS_MAP = new HashMap<>();
PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OFF, R.id.private_dns_mode_off);
+ PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_CLOUDFLARE, R.id.private_dns_mode_cloudflare);
PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_OPPORTUNISTIC, R.id.private_dns_mode_opportunistic);
PRIVATE_DNS_MAP.put(PRIVATE_DNS_MODE_PROVIDER_HOSTNAME, R.id.private_dns_mode_provider);
}
@@ -144,6 +148,15 @@
final ContentResolver contentResolver = context.getContentResolver();
mMode = ConnectivitySettingsManager.getPrivateDnsMode(context);
+ if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
+ final String privateDnsHostname =
+ ConnectivitySettingsManager.getPrivateDnsHostname(context);
+ final String cloudflareHostname =
+ context.getString(R.string.private_dns_hostname_cloudflare);
+ if (privateDnsHostname.equals(cloudflareHostname)) {
+ mMode = PRIVATE_DNS_MODE_CLOUDFLARE;
+ }
+ }
mEditText = view.findViewById(R.id.private_dns_mode_provider_hostname);
mEditText.addTextChangedListener(this);
@@ -156,6 +169,9 @@
// Initial radio button text
final RadioButton offRadioButton = view.findViewById(R.id.private_dns_mode_off);
offRadioButton.setText(R.string.private_dns_mode_off);
+ final RadioButton cloudflareRadioButton =
+ view.findViewById(R.id.private_dns_mode_cloudflare);
+ cloudflareRadioButton.setText(R.string.private_dns_mode_cloudflare);
final RadioButton opportunisticRadioButton =
view.findViewById(R.id.private_dns_mode_opportunistic);
opportunisticRadioButton.setText(R.string.private_dns_mode_opportunistic);
@@ -181,15 +197,21 @@
public void onClick(DialogInterface dialog, int which) {
if (which == DialogInterface.BUTTON_POSITIVE) {
final Context context = getContext();
+ int modeToSet = mMode;
if (mMode == PRIVATE_DNS_MODE_PROVIDER_HOSTNAME) {
// Only clickable if hostname is valid, so we could save it safely
ConnectivitySettingsManager.setPrivateDnsHostname(context,
mEditText.getText().toString());
+ } else if (mMode == PRIVATE_DNS_MODE_CLOUDFLARE) {
+ final String cloudflareHostname =
+ context.getString(R.string.private_dns_hostname_cloudflare);
+ ConnectivitySettingsManager.setPrivateDnsHostname(context, cloudflareHostname);
+ modeToSet = PRIVATE_DNS_MODE_PROVIDER_HOSTNAME;
}
FeatureFactory.getFactory(context).getMetricsFeatureProvider().action(context,
- SettingsEnums.ACTION_PRIVATE_DNS_MODE, mMode);
- ConnectivitySettingsManager.setPrivateDnsMode(context, mMode);
+ SettingsEnums.ACTION_PRIVATE_DNS_MODE, modeToSet);
+ ConnectivitySettingsManager.setPrivateDnsMode(context, modeToSet);
}
}
@@ -197,6 +219,8 @@
public void onCheckedChanged(RadioGroup group, int checkedId) {
if (checkedId == R.id.private_dns_mode_off) {
mMode = PRIVATE_DNS_MODE_OFF;
+ } else if (checkedId == R.id.private_dns_mode_cloudflare) {
+ mMode = PRIVATE_DNS_MODE_CLOUDFLARE;
} else if (checkedId == R.id.private_dns_mode_opportunistic) {
mMode = PRIVATE_DNS_MODE_OPPORTUNISTIC;
} else if (checkedId == R.id.private_dns_mode_provider) {
diff --git a/src/com/android/settings/network/PrivateDnsPreferenceController.java b/src/com/android/settings/network/PrivateDnsPreferenceController.java
index ed6f9ed..ca6a434 100644
--- a/src/com/android/settings/network/PrivateDnsPreferenceController.java
+++ b/src/com/android/settings/network/PrivateDnsPreferenceController.java
@@ -65,6 +65,9 @@
Settings.Global.getUriFor(PRIVATE_DNS_SPECIFIER),
};
+ // Only used in Settings, update on additions to ConnectivitySettingsUtils
+ private static final int PRIVATE_DNS_MODE_CLOUDFLARE = 4;
+
private final Handler mHandler;
private final ContentObserver mSettingsObserver;
private final ConnectivityManager mConnectivityManager;
@@ -89,7 +92,7 @@
return UNSUPPORTED_ON_DEVICE;
}
final UserManager userManager = mContext.getSystemService(UserManager.class);
- if (userManager.isGuestUser()) return DISABLED_FOR_USER;
+ if (!userManager.isAdminUser()) return DISABLED_FOR_USER;
return AVAILABLE;
}
@@ -129,13 +132,22 @@
switch (mode) {
case PRIVATE_DNS_MODE_OFF:
return res.getString(R.string.private_dns_mode_off);
+ case PRIVATE_DNS_MODE_CLOUDFLARE:
case PRIVATE_DNS_MODE_OPPORTUNISTIC:
return dnsesResolved ? res.getString(R.string.private_dns_mode_on)
: res.getString(R.string.private_dns_mode_opportunistic);
case PRIVATE_DNS_MODE_PROVIDER_HOSTNAME:
- return dnsesResolved
- ? PrivateDnsModeDialogPreference.getHostnameFromSettings(cr)
- : res.getString(R.string.private_dns_mode_provider_failure);
+ if (!dnsesResolved) {
+ return res.getString(R.string.private_dns_mode_provider_failure);
+ }
+ final String privateDnsHostname =
+ ConnectivitySettingsManager.getPrivateDnsHostname(mContext);
+ final String cloudflareHostname =
+ res.getString(R.string.private_dns_hostname_cloudflare);
+ if (privateDnsHostname.equals(cloudflareHostname)) {
+ return res.getString(R.string.private_dns_mode_cloudflare);
+ }
+ return PrivateDnsModeDialogPreference.getHostnameFromSettings(cr);
}
return "";
}
diff --git a/src/com/android/settings/network/telephony/NetworkScanHelper.java b/src/com/android/settings/network/telephony/NetworkScanHelper.java
index e0a9c5e..1961329 100644
--- a/src/com/android/settings/network/telephony/NetworkScanHelper.java
+++ b/src/com/android/settings/network/telephony/NetworkScanHelper.java
@@ -17,6 +17,7 @@
package com.android.settings.network.telephony;
import android.annotation.IntDef;
+import android.content.Context;
import android.telephony.AccessNetworkConstants.AccessNetworkType;
import android.telephony.CellInfo;
import android.telephony.NetworkScan;
@@ -31,6 +32,8 @@
import com.android.internal.telephony.CellNetworkScanResult;
+import com.android.settings.R;
+
import com.google.common.util.concurrent.FutureCallback;
import com.google.common.util.concurrent.Futures;
import com.google.common.util.concurrent.ListenableFuture;
@@ -129,6 +132,7 @@
private final TelephonyScanManager.NetworkScanCallback mInternalNetworkScanCallback;
private final Executor mExecutor;
+ private int mMaxSearchTimeSec = MAX_SEARCH_TIME_SEC;
private NetworkScan mNetworkScanRequester;
/** Callbacks for sync network scan */
@@ -141,6 +145,13 @@
mExecutor = executor;
}
+ public NetworkScanHelper(Context context, TelephonyManager tm, NetworkScanCallback callback,
+ Executor executor) {
+ this(tm, callback, executor);
+ mMaxSearchTimeSec = context.getResources().getInteger(
+ R.integer.config_network_scan_helper_max_search_time_sec);
+ }
+
@VisibleForTesting
NetworkScanRequest createNetworkScanForPreferredAccessNetworks() {
long networkTypeBitmap3gpp = mTelephonyManager.getPreferredNetworkTypeBitmask()
@@ -183,7 +194,7 @@
radioAccessSpecifiers.toArray(
new RadioAccessSpecifier[radioAccessSpecifiers.size()]),
SEARCH_PERIODICITY_SEC,
- MAX_SEARCH_TIME_SEC,
+ mMaxSearchTimeSec,
INCREMENTAL_RESULTS,
INCREMENTAL_RESULTS_PERIODICITY_SEC,
null /* List of PLMN ids (MCC-MNC) */);
diff --git a/src/com/android/settings/network/telephony/NetworkSelectSettings.java b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
index b26e783..64939dc 100644
--- a/src/com/android/settings/network/telephony/NetworkSelectSettings.java
+++ b/src/com/android/settings/network/telephony/NetworkSelectSettings.java
@@ -111,7 +111,7 @@
mSelectedPreference = null;
mTelephonyManager = getTelephonyManager(getContext(), mSubId);
mNetworkScanHelper = new NetworkScanHelper(
- mTelephonyManager, mCallback, mNetworkScanExecutor);
+ getContext(), mTelephonyManager, mCallback, mNetworkScanExecutor);
PersistableBundle bundle = getCarrierConfigManager(getContext())
.getConfigForSubId(mSubId);
if (bundle != null) {
diff --git a/src/com/android/settings/notification/IncreasingRingPreferenceController.java b/src/com/android/settings/notification/IncreasingRingPreferenceController.java
new file mode 100644
index 0000000..2152451
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingPreferenceController.java
@@ -0,0 +1,35 @@
+/*
+ * Copyright (C) 2017 The Android Open Source Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.Context;
+
+import com.android.settings.Utils;
+import com.android.settings.core.BasePreferenceController;
+
+public class IncreasingRingPreferenceController extends BasePreferenceController {
+ private static final String KEY_INCREASING_RING = "increasing_ring";
+
+ public IncreasingRingPreferenceController(Context context) {
+ super(context, KEY_INCREASING_RING);
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return Utils.isVoiceCapable(mContext) ? AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+}
diff --git a/src/com/android/settings/notification/IncreasingRingVolumePreference.java b/src/com/android/settings/notification/IncreasingRingVolumePreference.java
new file mode 100644
index 0000000..efa2614
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingVolumePreference.java
@@ -0,0 +1,257 @@
+/*
+ * Copyright (C) 2014 CyanogenMod Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification;
+
+import android.content.ContentResolver;
+import android.content.Context;
+import android.media.AudioAttributes;
+import android.media.AudioManager;
+import android.media.Ringtone;
+import android.media.RingtoneManager;
+import android.os.Handler;
+import android.os.HandlerThread;
+import android.os.Message;
+import android.provider.Settings;
+import android.text.format.Formatter;
+import android.util.AttributeSet;
+import android.util.Log;
+import android.widget.SeekBar;
+import android.widget.TextView;
+
+import androidx.core.content.res.TypedArrayUtils;
+import androidx.preference.Preference;
+import androidx.preference.PreferenceViewHolder;
+
+import com.android.settings.R;
+
+import lineageos.providers.LineageSettings;
+
+public class IncreasingRingVolumePreference extends Preference
+ implements Handler.Callback, SeekBar.OnSeekBarChangeListener {
+ private static final String TAG = "IncreasingRingMinVolumePreference";
+
+ public interface Callback {
+ void onSampleStarting(IncreasingRingVolumePreference pref);
+ }
+
+ private SeekBar mStartVolumeSeekBar;
+ private SeekBar mRampUpTimeSeekBar;
+ private TextView mRampUpTimeValue;
+
+ private Ringtone mRingtone;
+ private Callback mCallback;
+
+ private Handler mHandler;
+ private final Handler mMainHandler = new Handler(this);
+
+ private static final int MSG_START_SAMPLE = 1;
+ private static final int MSG_STOP_SAMPLE = 2;
+ private static final int MSG_INIT_SAMPLE = 3;
+ private static final int MSG_SET_VOLUME = 4;
+ private static final int CHECK_RINGTONE_PLAYBACK_DELAY_MS = 1000;
+
+ public IncreasingRingVolumePreference(Context context) {
+ this(context, null);
+ }
+
+ public IncreasingRingVolumePreference(Context context, AttributeSet attrs) {
+ this(context, attrs, TypedArrayUtils.getAttr(context,
+ R.attr.preferenceStyle, android.R.attr.preferenceStyle));
+ }
+
+ public IncreasingRingVolumePreference(Context context, AttributeSet attrs,
+ int defStyleAttr) {
+ this(context, attrs, defStyleAttr, 0);
+ }
+
+ public IncreasingRingVolumePreference(Context context, AttributeSet attrs,
+ int defStyleAttr, int defStyleRes) {
+ super(context, attrs, defStyleAttr, defStyleRes);
+ setLayoutResource(R.layout.preference_increasing_ring);
+ initHandler();
+ }
+
+ public void setCallback(Callback callback) {
+ mCallback = callback;
+ }
+
+ public void onActivityResume() {
+ initHandler();
+ }
+
+ public void onActivityStop() {
+ if (mHandler != null) {
+ postStopSample();
+ mHandler.getLooper().quitSafely();
+ mHandler = null;
+ }
+ }
+
+ @Override
+ public boolean handleMessage(Message msg) {
+ switch (msg.what) {
+ case MSG_START_SAMPLE:
+ onStartSample((float) msg.arg1 / 1000F);
+ break;
+ case MSG_STOP_SAMPLE:
+ onStopSample();
+ break;
+ case MSG_INIT_SAMPLE:
+ onInitSample();
+ break;
+ case MSG_SET_VOLUME:
+ onSetVolume((float) msg.arg1 / 1000F);
+ break;
+ }
+ return true;
+ }
+
+ @Override
+ public void onBindViewHolder(PreferenceViewHolder holder) {
+ super.onBindViewHolder(holder);
+
+ initHandler();
+
+ final SeekBar seekBar = (SeekBar) holder.findViewById(R.id.start_volume);
+ if (seekBar == mStartVolumeSeekBar) return;
+
+ mStartVolumeSeekBar = seekBar;
+ mRampUpTimeSeekBar = (SeekBar) holder.findViewById(R.id.ramp_up_time);
+ mRampUpTimeValue = (TextView) holder.findViewById(R.id.ramp_up_time_value);
+
+ final ContentResolver cr = getContext().getContentResolver();
+ float startVolume = LineageSettings.System.getFloat(cr,
+ LineageSettings.System.INCREASING_RING_START_VOLUME, 0.1f);
+ int rampUpTime = LineageSettings.System.getInt(cr,
+ LineageSettings.System.INCREASING_RING_RAMP_UP_TIME, 10);
+
+ mStartVolumeSeekBar.setProgress(Math.round(startVolume * 1000F));
+ mStartVolumeSeekBar.setOnSeekBarChangeListener(this);
+ mRampUpTimeSeekBar.setOnSeekBarChangeListener(this);
+ mRampUpTimeSeekBar.setProgress((rampUpTime / 5) - 1);
+ mRampUpTimeValue.setText(
+ Formatter.formatShortElapsedTime(getContext(), rampUpTime * 1000));
+ }
+
+ @Override
+ public void onStartTrackingTouch(SeekBar seekBar) {
+ }
+
+ @Override
+ public void onStopTrackingTouch(SeekBar seekBar) {
+ if (seekBar == mStartVolumeSeekBar) {
+ postStartSample(seekBar.getProgress());
+ }
+ }
+
+ @Override
+ public void onProgressChanged(SeekBar seekBar, int progress, boolean fromTouch) {
+ ContentResolver cr = getContext().getContentResolver();
+ if (fromTouch && seekBar == mStartVolumeSeekBar) {
+ LineageSettings.System.putFloat(cr,
+ LineageSettings.System.INCREASING_RING_START_VOLUME, (float) progress / 1000F);
+ } else if (seekBar == mRampUpTimeSeekBar) {
+ int seconds = (progress + 1) * 5;
+ mRampUpTimeValue.setText(
+ Formatter.formatShortElapsedTime(getContext(), seconds * 1000));
+ if (fromTouch) {
+ LineageSettings.System.putInt(cr,
+ LineageSettings.System.INCREASING_RING_RAMP_UP_TIME, seconds);
+ }
+ }
+ }
+
+ private void initHandler() {
+ if (mHandler != null) return;
+
+ HandlerThread thread = new HandlerThread(TAG + ".CallbackHandler");
+ thread.start();
+
+ mHandler = new Handler(thread.getLooper(), this);
+ mHandler.sendEmptyMessage(MSG_INIT_SAMPLE);
+ }
+
+ private void onInitSample() {
+ mRingtone = RingtoneManager.getRingtone(getContext(),
+ Settings.System.DEFAULT_RINGTONE_URI);
+ if (mRingtone != null) {
+ mRingtone.setStreamType(AudioManager.STREAM_RING);
+ mRingtone.setAudioAttributes(
+ new AudioAttributes.Builder(mRingtone.getAudioAttributes())
+ .setFlags(AudioAttributes.FLAG_BYPASS_INTERRUPTION_POLICY |
+ AudioAttributes.FLAG_BYPASS_MUTE)
+ .build());
+ }
+ }
+
+ private void postStartSample(int progress) {
+ boolean playing = isSamplePlaying();
+ mHandler.removeMessages(MSG_START_SAMPLE);
+ mHandler.removeMessages(MSG_SET_VOLUME);
+ mHandler.sendMessageDelayed(mHandler.obtainMessage(MSG_START_SAMPLE, progress, 0),
+ playing ? CHECK_RINGTONE_PLAYBACK_DELAY_MS : 0);
+ if (playing) {
+ mHandler.sendMessage(mHandler.obtainMessage(MSG_SET_VOLUME, progress, 0));
+ }
+ }
+
+ private void onStartSample(float volume) {
+ if (mRingtone == null) {
+ return;
+ }
+ if (!isSamplePlaying()) {
+ if (mCallback != null) {
+ mCallback.onSampleStarting(this);
+ }
+ try {
+ mRingtone.play();
+ } catch (Throwable e) {
+ Log.w(TAG, "Error playing ringtone", e);
+ }
+ }
+ mRingtone.setVolume(volume);
+ }
+
+ private void onSetVolume(float volume) {
+ if (mRingtone != null) {
+ mRingtone.setVolume(volume);
+ }
+ }
+
+ private boolean isSamplePlaying() {
+ return mRingtone != null && mRingtone.isPlaying();
+ }
+
+ public void stopSample() {
+ if (mHandler != null) {
+ postStopSample();
+ }
+ }
+
+ private void postStopSample() {
+ // remove pending delayed start messages
+ mHandler.removeMessages(MSG_START_SAMPLE);
+ mHandler.removeMessages(MSG_STOP_SAMPLE);
+ mHandler.sendEmptyMessage(MSG_STOP_SAMPLE);
+ }
+
+ private void onStopSample() {
+ if (mRingtone != null) {
+ mRingtone.stop();
+ }
+ }
+}
diff --git a/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java b/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java
new file mode 100644
index 0000000..78da248
--- /dev/null
+++ b/src/com/android/settings/notification/IncreasingRingVolumePreferenceController.java
@@ -0,0 +1,109 @@
+/*
+ * 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.notification;
+
+import android.content.Context;
+
+import androidx.preference.PreferenceScreen;
+
+import com.android.settings.Utils;
+import com.android.settings.slices.SliceData;
+import com.android.settingslib.core.lifecycle.LifecycleObserver;
+import com.android.settingslib.core.lifecycle.events.OnResume;
+import com.android.settingslib.core.lifecycle.events.OnStop;
+
+/**
+ * Base class for preference controller that handles VolumeSeekBarPreference
+ */
+public class IncreasingRingVolumePreferenceController
+ extends AdjustVolumeRestrictedPreferenceController
+ implements LifecycleObserver, OnResume, OnStop {
+
+ private static final String KEY_INCREASING_RING_VOLUME = "increasing_ring_volume";
+
+ private IncreasingRingVolumePreference mPreference;
+ private IncreasingRingVolumePreference.Callback mCallback;
+ private AudioHelper mHelper;
+
+ public IncreasingRingVolumePreferenceController(Context context) {
+ super(context, KEY_INCREASING_RING_VOLUME);
+ mHelper = new AudioHelper(context);
+ }
+
+ public void setCallback(IncreasingRingVolumePreference.Callback callback) {
+ mCallback = callback;
+ }
+
+ @Override
+ public void displayPreference(PreferenceScreen screen) {
+ super.displayPreference(screen);
+ if (isAvailable()) {
+ mPreference = screen.findPreference(getPreferenceKey());
+ mPreference.setCallback(mCallback);
+ }
+ }
+
+ @Override
+ public void onResume() {
+ if (mPreference != null) {
+ mPreference.onActivityResume();
+ }
+ }
+
+ @Override
+ public void onStop() {
+ if (mPreference != null) {
+ mPreference.onActivityStop();
+ }
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_INCREASING_RING_VOLUME;
+ }
+
+ @Override
+ public int getSliderPosition() {
+ return 0;
+ }
+
+ @Override
+ public boolean setSliderPosition(int position) {
+ return false;
+ }
+
+ @Override
+ public int getMin() {
+ return 0;
+ }
+
+ @Override
+ public int getMax() {
+ return 0;
+ }
+
+ @Override
+ public int getAvailabilityStatus() {
+ return Utils.isVoiceCapable(mContext) && !mHelper.isSingleVolume() ?
+ AVAILABLE : UNSUPPORTED_ON_DEVICE;
+ }
+
+ @Override
+ public int getSliceType() {
+ return SliceData.SliceType.INTENT;
+ }
+}
diff --git a/src/com/android/settings/notification/NotificationBackend.java b/src/com/android/settings/notification/NotificationBackend.java
index 68f5d08..9a35695 100644
--- a/src/com/android/settings/notification/NotificationBackend.java
+++ b/src/com/android/settings/notification/NotificationBackend.java
@@ -102,6 +102,7 @@
row.userId = UserHandle.getUserId(row.uid);
row.blockedChannelCount = getBlockedChannelCount(row.pkg, row.uid);
row.channelCount = getChannelCount(row.pkg, row.uid);
+ row.soundTimeout = getNotificationSoundTimeout(row.pkg, row.uid);
recordAggregatedUsageEvents(context, row);
return row;
}
@@ -659,6 +660,25 @@
sINM = inm;
}
+ public long getNotificationSoundTimeout(String pkg, int uid) {
+ try {
+ return sINM.getNotificationSoundTimeout(pkg, uid);
+ } catch (Exception e) {
+ Log.w(TAG, "Error calling NoMan", e);
+ return 0;
+ }
+ }
+
+ public boolean setNotificationSoundTimeout(String pkg, int uid, long timeout) {
+ try {
+ sINM.setNotificationSoundTimeout(pkg, uid, timeout);
+ return true;
+ } catch (Exception e) {
+ Log.w(TAG, "Error calling NoMan", e);
+ return false;
+ }
+ }
+
/**
* NotificationsSentState contains how often an app sends notifications and how recently it sent
* one.
@@ -692,6 +712,7 @@
public int userId;
public int blockedChannelCount;
public int channelCount;
+ public long soundTimeout;
public Map<String, NotificationsSentState> sentByChannel;
public NotificationsSentState sentByApp;
}
diff --git a/src/com/android/settings/notification/SoundSettings.java b/src/com/android/settings/notification/SoundSettings.java
index 2cc1b1c..6586688 100644
--- a/src/com/android/settings/notification/SoundSettings.java
+++ b/src/com/android/settings/notification/SoundSettings.java
@@ -63,6 +63,8 @@
@VisibleForTesting
final VolumePreferenceCallback mVolumeCallback = new VolumePreferenceCallback();
+ private final IncreasingRingVolumePreferenceCallback mIncreasingRingVolumeCallback =
+ new IncreasingRingVolumePreferenceCallback();
@VisibleForTesting
final Handler mHandler = new Handler(Looper.getMainLooper()) {
@Override
@@ -70,6 +72,7 @@
switch (msg.what) {
case STOP_SAMPLE:
mVolumeCallback.stopSample();
+ mIncreasingRingVolumeCallback.stopSample();
break;
}
}
@@ -113,6 +116,7 @@
public void onPause() {
super.onPause();
mVolumeCallback.stopSample();
+ mIncreasingRingVolumeCallback.stopSample();
}
@Override
@@ -201,6 +205,11 @@
controller.setCallback(mVolumeCallback);
getSettingsLifecycle().addObserver(controller);
}
+
+ IncreasingRingVolumePreferenceController irvpc =
+ use(IncreasingRingVolumePreferenceController.class);
+ irvpc.setCallback(mIncreasingRingVolumeCallback);
+ getLifecycle().addObserver(irvpc);
}
// === Volumes ===
@@ -210,6 +219,7 @@
@Override
public void onSampleStarting(SeekBarVolumizer sbv) {
+ mIncreasingRingVolumeCallback.stopSample();
if (mCurrent != null) {
mHandler.removeMessages(STOP_SAMPLE);
mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
@@ -240,6 +250,26 @@
}
}
+ final class IncreasingRingVolumePreferenceCallback implements
+ IncreasingRingVolumePreference.Callback {
+ private IncreasingRingVolumePreference mPlayingPref;
+
+ @Override
+ public void onSampleStarting(IncreasingRingVolumePreference pref) {
+ mPlayingPref = pref;
+ mVolumeCallback.stopSample();
+ mHandler.removeMessages(STOP_SAMPLE);
+ mHandler.sendEmptyMessageDelayed(STOP_SAMPLE, SAMPLE_CUTOFF);
+ }
+
+ public void stopSample() {
+ if (mPlayingPref != null) {
+ mPlayingPref.stopSample();
+ mPlayingPref = null;
+ }
+ }
+ };
+
private static List<AbstractPreferenceController> buildPreferenceControllers(Context context,
SoundSettings fragment, Lifecycle lifecycle) {
final List<AbstractPreferenceController> controllers = new ArrayList<>();
@@ -250,6 +280,8 @@
controllers.add(new PhoneRingtonePreferenceController(context));
controllers.add(new AlarmRingtonePreferenceController(context));
controllers.add(new NotificationRingtonePreferenceController(context));
+ controllers.add(new IncreasingRingPreferenceController(context));
+ controllers.add(new IncreasingRingVolumePreferenceController(context));
// === Other Sound Settings ===
final DialPadTonePreferenceController dialPadTonePreferenceController =
diff --git a/src/com/android/settings/notification/VibrateIconPreferenceController.java b/src/com/android/settings/notification/VibrateIconPreferenceController.java
index d772b47..e538dd1 100644
--- a/src/com/android/settings/notification/VibrateIconPreferenceController.java
+++ b/src/com/android/settings/notification/VibrateIconPreferenceController.java
@@ -40,6 +40,6 @@
@Override
public boolean isAvailable() {
- return mHasVibrator;
+ return false;
}
}
diff --git a/src/com/android/settings/notification/app/AppNotificationSettings.java b/src/com/android/settings/notification/app/AppNotificationSettings.java
index ebcd261..ff104e9 100644
--- a/src/com/android/settings/notification/app/AppNotificationSettings.java
+++ b/src/com/android/settings/notification/app/AppNotificationSettings.java
@@ -82,6 +82,7 @@
mControllers.add(new HeaderPreferenceController(context, this));
mControllers.add(new BlockPreferenceController(context, mDependentFieldListener, mBackend));
mControllers.add(new BadgePreferenceController(context, mBackend));
+ mControllers.add(new SoundTimeoutPreferenceController(context, mBackend));
mControllers.add(new AllowSoundPreferenceController(
context, mDependentFieldListener, mBackend));
mControllers.add(new ImportancePreferenceController(
diff --git a/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java b/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java
new file mode 100644
index 0000000..1fb9a21
--- /dev/null
+++ b/src/com/android/settings/notification/app/SoundTimeoutPreferenceController.java
@@ -0,0 +1,79 @@
+/*
+ * Copyright (C) 2019 The LineageOS Project
+ *
+ * Licensed under the Apache License, Version 2.0 (the "License");
+ * you may not use this file except in compliance with the License.
+ * You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing, software
+ * distributed under the License is distributed on an "AS IS" BASIS,
+ * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ * See the License for the specific language governing permissions and
+ * limitations under the License.
+ */
+
+package com.android.settings.notification.app;
+
+import android.content.Context;
+import android.provider.Settings;
+
+import androidx.preference.Preference;
+
+import com.android.settings.RestrictedListPreference;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settings.notification.NotificationBackend;
+
+public class SoundTimeoutPreferenceController extends NotificationPreferenceController
+ implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+ private static final String TAG = "SoundTimeoutPreferenceController";
+ private static final String KEY_SOUND_TIMEOUT = "sound_timeout";
+
+ public SoundTimeoutPreferenceController(Context context,
+ NotificationBackend backend) {
+ super(context, backend);
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_SOUND_TIMEOUT;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ if (!super.isAvailable()) {
+ return false;
+ }
+ if (mAppRow == null) {
+ return false;
+ }
+ return true;
+ }
+
+ @Override
+ boolean isIncludedInFilter() {
+ return false;
+ }
+
+ public void updateState(Preference preference) {
+ if (mAppRow != null) {
+ RestrictedListPreference pref = (RestrictedListPreference) preference;
+ pref.setDisabledByAdmin(mAdmin);
+
+ pref.setSummary("%s");
+ pref.setValue(Long.toString(mAppRow.soundTimeout));
+ }
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ if (mAppRow != null) {
+ mAppRow.soundTimeout = Long.valueOf((String) newValue);
+ mBackend.setNotificationSoundTimeout(mAppRow.pkg, mAppRow.uid, mAppRow.soundTimeout);
+ }
+ return true;
+ }
+
+}
diff --git a/src/com/android/settings/password/ChooseLockPattern.java b/src/com/android/settings/password/ChooseLockPattern.java
index c0342d1..e545680 100644
--- a/src/com/android/settings/password/ChooseLockPattern.java
+++ b/src/com/android/settings/password/ChooseLockPattern.java
@@ -105,7 +105,8 @@
private final Intent mIntent;
public IntentBuilder(Context context) {
- mIntent = new Intent(context, ChooseLockPattern.class);
+ mIntent = new Intent(context, ChooseLockPatternSize.class);
+ mIntent.putExtra("className", ChooseLockPattern.class.getName());
mIntent.putExtra(EncryptionInterstitial.EXTRA_REQUIRE_PASSWORD, false);
mIntent.putExtra(ChooseLockGeneric.CONFIRM_CREDENTIALS, false);
}
@@ -214,19 +215,14 @@
protected FooterButton mSkipOrClearButton;
protected FooterButton mNextButton;
@VisibleForTesting protected LockscreenCredential mChosenPattern;
+ private byte mPatternSize = LockPatternUtils.PATTERN_SIZE_DEFAULT;
private ColorStateList mDefaultHeaderColorList;
private View mSudContent;
/**
* The patten used during the help screen to show how to draw a pattern.
*/
- private final List<LockPatternView.Cell> mAnimatePattern =
- Collections.unmodifiableList(Lists.newArrayList(
- LockPatternView.Cell.of(0, 0),
- LockPatternView.Cell.of(0, 1),
- LockPatternView.Cell.of(1, 1),
- LockPatternView.Cell.of(2, 1)
- ));
+ private List<LockPatternView.Cell> mAnimatePattern;
@Override
public void onActivityResult(int requestCode, int resultCode,
@@ -276,7 +272,7 @@
if (mChosenPattern == null) throw new IllegalStateException(
"null chosen pattern in stage 'need to confirm");
try (LockscreenCredential confirmPattern =
- LockscreenCredential.createPattern(pattern)) {
+ LockscreenCredential.createPattern(pattern, mPatternSize)) {
if (mChosenPattern.equals(confirmPattern)) {
updateStage(Stage.ChoiceConfirmed);
} else {
@@ -287,7 +283,8 @@
if (pattern.size() < LockPatternUtils.MIN_LOCK_PATTERN_SIZE) {
updateStage(Stage.ChoiceTooShort);
} else {
- mChosenPattern = LockscreenCredential.createPattern(pattern);
+ mChosenPattern = LockscreenCredential.createPattern(
+ pattern, mPatternSize);
updateStage(Stage.FirstChoiceValid);
}
} else {
@@ -471,7 +468,7 @@
w.setBlocking(true);
w.setListener(this);
w.start(mLockPatternUtils, required, false /* requestGatekeeperPassword */, current,
- current, mUserId);
+ current, mUserId, mPatternSize);
}
mForFingerprint = intent.getBooleanExtra(
ChooseLockSettingsHelper.EXTRA_KEY_FOR_FINGERPRINT, false);
@@ -546,6 +543,16 @@
mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
0);
+ mPatternSize = getActivity().getIntent().getByteExtra("pattern_size",
+ LockPatternUtils.PATTERN_SIZE_DEFAULT);
+ LockPatternView.Cell.updateSize(mPatternSize);
+ mAnimatePattern = Collections.unmodifiableList(Lists.newArrayList(
+ LockPatternView.Cell.of(0, 0, mPatternSize),
+ LockPatternView.Cell.of(0, 1, mPatternSize),
+ LockPatternView.Cell.of(1, 1, mPatternSize),
+ LockPatternView.Cell.of(2, 1, mPatternSize)
+ ));
+
return layout;
}
@@ -559,6 +566,8 @@
mLockPatternView = (LockPatternView) view.findViewById(R.id.lockPattern);
mLockPatternView.setOnPatternListener(mChooseNewLockPatternListener);
mLockPatternView.setFadePattern(false);
+ mLockPatternView.setLockPatternUtils(mLockPatternUtils);
+ mLockPatternView.setLockPatternSize(mPatternSize);
mFooterText = (TextView) view.findViewById(R.id.footerText);
@@ -602,6 +611,9 @@
// restore from previous state
mChosenPattern = savedInstanceState.getParcelable(KEY_PATTERN_CHOICE);
mCurrentCredential = savedInstanceState.getParcelable(KEY_CURRENT_PATTERN);
+ mLockPatternView.setPattern(DisplayMode.Correct,
+ LockPatternUtils.byteArrayToPattern(
+ mChosenPattern.getCredential(), mPatternSize));
updateStage(Stage.values()[savedInstanceState.getInt(KEY_UI_STAGE)]);
@@ -861,7 +873,8 @@
}
}
mSaveAndFinishWorker.start(mLockPatternUtils, required,
- mRequestGatekeeperPassword, mChosenPattern, mCurrentCredential, mUserId);
+ mRequestGatekeeperPassword, mChosenPattern, mCurrentCredential, mUserId,
+ mPatternSize);
}
@Override
@@ -890,16 +903,18 @@
private LockscreenCredential mChosenPattern;
private LockscreenCredential mCurrentCredential;
private boolean mLockVirgin;
+ private byte mPatternSize;
public void start(LockPatternUtils utils, boolean credentialRequired,
boolean requestGatekeeperPassword, LockscreenCredential chosenPattern,
- LockscreenCredential currentCredential, int userId) {
+ LockscreenCredential currentCredential, int userId, byte patternSize) {
prepare(utils, credentialRequired, requestGatekeeperPassword, userId);
mCurrentCredential = currentCredential != null ? currentCredential
: LockscreenCredential.createNone();
mChosenPattern = chosenPattern;
mUserId = userId;
+ mPatternSize = patternSize;
mLockVirgin = !mUtils.isPatternEverChosen(mUserId);
@@ -909,6 +924,7 @@
@Override
protected Pair<Boolean, Intent> saveAndVerifyInBackground() {
final int userId = mUserId;
+ mUtils.setLockPatternSize(mPatternSize, userId);
final boolean success = mUtils.setLockCredential(mChosenPattern, mCurrentCredential,
userId);
if (success) {
diff --git a/src/com/android/settings/password/ChooseLockPatternSize.java b/src/com/android/settings/password/ChooseLockPatternSize.java
new file mode 100644
index 0000000..0db35ef
--- /dev/null
+++ b/src/com/android/settings/password/ChooseLockPatternSize.java
@@ -0,0 +1,142 @@
+/*
+ * Copyright (C) 2012-2013 The CyanogenMod 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.password;
+
+import android.content.Intent;
+import android.content.res.Resources.Theme;
+import android.os.Bundle;
+import android.view.LayoutInflater;
+import android.view.View;
+import android.view.ViewGroup;
+
+import androidx.preference.Preference;
+import androidx.recyclerview.widget.RecyclerView;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.internal.widget.LockscreenCredential;
+import com.android.settings.EncryptionInterstitial;
+import com.android.settings.R;
+import com.android.settings.SettingsActivity;
+import com.android.settings.SetupWizardUtils;
+import com.android.settings.SettingsPreferenceFragment;
+import com.android.settings.utils.SettingsDividerItemDecoration;
+
+import com.google.android.setupdesign.GlifPreferenceLayout;
+
+import org.lineageos.internal.logging.LineageMetricsLogger;
+
+public class ChooseLockPatternSize extends SettingsActivity {
+
+ @Override
+ public Intent getIntent() {
+ Intent modIntent = new Intent(super.getIntent());
+ modIntent.putExtra(EXTRA_SHOW_FRAGMENT, ChooseLockPatternSizeFragment.class.getName());
+ return modIntent;
+ }
+
+ @Override
+ protected void onApplyThemeResource(Theme theme, int resid, boolean first) {
+ resid = SetupWizardUtils.getTheme(this, getIntent());
+ super.onApplyThemeResource(theme, resid, first);
+ }
+
+ @Override
+ protected boolean isValidFragment(String fragmentName) {
+ if (ChooseLockPatternSizeFragment.class.getName().equals(fragmentName)) return true;
+ return false;
+ }
+
+ @Override
+ protected boolean isToolbarEnabled() {
+ return false;
+ }
+
+ @Override
+ protected void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ findViewById(R.id.content_parent).setFitsSystemWindows(false);
+ }
+
+ public static class ChooseLockPatternSizeFragment extends SettingsPreferenceFragment {
+ @Override
+ public void onCreate(Bundle savedInstanceState) {
+ super.onCreate(savedInstanceState);
+ if (!(getActivity() instanceof ChooseLockPatternSize)) {
+ throw new SecurityException("Fragment contained in wrong activity");
+ }
+ addPreferencesFromResource(R.xml.security_settings_pattern_size);
+ }
+
+ @Override
+ public boolean onPreferenceTreeClick(Preference preference) {
+ final String key = preference.getKey();
+
+ byte patternSize;
+ if ("lock_pattern_size_4".equals(key)) {
+ patternSize = 4;
+ } else if ("lock_pattern_size_5".equals(key)) {
+ patternSize = 5;
+ } else if ("lock_pattern_size_6".equals(key)) {
+ patternSize = 6;
+ } else {
+ patternSize = 3;
+ }
+
+ Bundle extras = getActivity().getIntent().getExtras();
+ Intent intent = new Intent();
+ intent.setClassName(getActivity(), extras.getString("className"));
+ intent.putExtras(extras);
+ intent.putExtra("pattern_size", patternSize);
+ intent.addFlags(Intent.FLAG_ACTIVITY_FORWARD_RESULT);
+ startActivity(intent);
+
+ finish();
+ return true;
+ }
+
+ @Override
+ public void onViewCreated(View view, Bundle savedInstanceState) {
+ super.onViewCreated(view, savedInstanceState);
+ GlifPreferenceLayout layout = (GlifPreferenceLayout) view;
+ layout.setDividerItemDecoration(new SettingsDividerItemDecoration(getContext()));
+
+ layout.setIcon(getContext().getDrawable(R.drawable.ic_lock));
+
+ if (getActivity() != null) {
+ getActivity().setTitle(R.string.lock_settings_picker_pattern_size_message);
+ }
+
+ layout.setHeaderText(R.string.lock_settings_picker_pattern_size_message);
+
+ // Use the dividers in SetupWizardRecyclerLayout. Suppress the dividers in
+ // PreferenceFragment.
+ setDivider(null);
+ }
+
+ @Override
+ public RecyclerView onCreateRecyclerView(LayoutInflater inflater, ViewGroup parent,
+ Bundle savedInstanceState) {
+ GlifPreferenceLayout layout = (GlifPreferenceLayout) parent;
+ return layout.onCreateRecyclerView(inflater, parent, savedInstanceState);
+ }
+
+ @Override
+ public int getMetricsCategory() {
+ return LineageMetricsLogger.CHOOSE_LOCK_PATTERN_SIZE;
+ }
+ }
+}
diff --git a/src/com/android/settings/password/ChooseLockSettingsHelper.java b/src/com/android/settings/password/ChooseLockSettingsHelper.java
index e4d52ba..62c470d 100644
--- a/src/com/android/settings/password/ChooseLockSettingsHelper.java
+++ b/src/com/android/settings/password/ChooseLockSettingsHelper.java
@@ -313,7 +313,9 @@
switch (mLockPatternUtils.getKeyguardStoredPasswordQuality(effectiveUserId)) {
case DevicePolicyManager.PASSWORD_QUALITY_SOMETHING:
launched = launchConfirmationActivity(request, title, header, description,
- returnCredentials || forceVerifyPath
+ userId == LockPatternUtils.USER_FRP
+ ? ChooseLockPatternSize.class
+ : returnCredentials || forceVerifyPath
? ConfirmLockPattern.InternalActivity.class
: ConfirmLockPattern.class, returnCredentials, external,
forceVerifyPath, userId, alternateButton, allowAnyUser,
@@ -362,6 +364,9 @@
intent.setClassName(SETTINGS_PACKAGE_NAME, activityClass.getName());
intent.putExtra(SettingsBaseActivity.EXTRA_PAGE_TRANSITION_TYPE,
SettingsTransitionHelper.TransitionType.TRANSITION_SLIDE);
+ if (userId == LockPatternUtils.USER_FRP) {
+ intent.putExtra("className", ConfirmLockPattern.class.getName());
+ }
Intent inIntent = mFragment != null ? mFragment.getActivity().getIntent() :
mActivity.getIntent();
diff --git a/src/com/android/settings/password/ConfirmLockPattern.java b/src/com/android/settings/password/ConfirmLockPattern.java
index b4f0aa3..be39e70 100644
--- a/src/com/android/settings/password/ConfirmLockPattern.java
+++ b/src/com/android/settings/password/ConfirmLockPattern.java
@@ -110,6 +110,7 @@
private DisappearAnimationUtils mDisappearAnimationUtils;
private boolean mIsManagedProfile;
+ private byte mPatternSize;
// required constructor for fragments
public ConfirmLockPatternFragment() {
@@ -135,6 +136,7 @@
mSudContent.setPadding(mSudContent.getPaddingLeft(), 0, mSudContent.getPaddingRight(),
0);
mIsManagedProfile = UserManager.get(getActivity()).isManagedProfile(mEffectiveUserId);
+ mPatternSize = mLockPatternUtils.getLockPatternSize(mEffectiveUserId);
// make it so unhandled touch events within the unlock screen go to the
// lock pattern view.
@@ -148,6 +150,7 @@
ConfirmDeviceCredentialBaseFragment.HEADER_TEXT);
mDetailsText = intent.getCharSequenceExtra(
ConfirmDeviceCredentialBaseFragment.DETAILS_TEXT);
+ mPatternSize = intent.getByteExtra("pattern_size", mPatternSize);
}
if (TextUtils.isEmpty(mHeaderText) && mIsManagedProfile) {
mHeaderText = mDevicePolicyManager.getOrganizationNameForUser(mUserId);
@@ -155,6 +158,7 @@
mLockPatternView.setInStealthMode(!mLockPatternUtils.isVisiblePatternEnabled(
mEffectiveUserId));
+ mLockPatternView.setLockPatternSize(mPatternSize);
mLockPatternView.setOnPatternListener(mConfirmExistingLockPatternListener);
mLockPatternView.setOnTouchListener((v, event) -> {
if (event.getAction() == MotionEvent.ACTION_DOWN) {
@@ -452,7 +456,8 @@
mLockPatternView.setEnabled(false);
- final LockscreenCredential credential = LockscreenCredential.createPattern(pattern);
+ final LockscreenCredential credential = LockscreenCredential.createPattern(pattern,
+ mPatternSize);
// TODO(b/161956762): Sanitize this
Intent intent = new Intent();
if (mReturnGatekeeperPassword) {
diff --git a/src/com/android/settings/password/SetupChooseLockPattern.java b/src/com/android/settings/password/SetupChooseLockPattern.java
index 09ecda4..8a60faf 100644
--- a/src/com/android/settings/password/SetupChooseLockPattern.java
+++ b/src/com/android/settings/password/SetupChooseLockPattern.java
@@ -42,7 +42,8 @@
public class SetupChooseLockPattern extends ChooseLockPattern {
public static Intent modifyIntentForSetup(Context context, Intent chooseLockPatternIntent) {
- chooseLockPatternIntent.setClass(context, SetupChooseLockPattern.class);
+ chooseLockPatternIntent.setClass(context, ChooseLockPatternSize.class);
+ chooseLockPatternIntent.putExtra("className", SetupChooseLockPattern.class.getName());
return chooseLockPatternIntent;
}
diff --git a/src/com/android/settings/security/LockscreenDashboardFragment.java b/src/com/android/settings/security/LockscreenDashboardFragment.java
index 2e4a1f2..cbd7edf 100644
--- a/src/com/android/settings/security/LockscreenDashboardFragment.java
+++ b/src/com/android/settings/security/LockscreenDashboardFragment.java
@@ -37,6 +37,7 @@
import com.android.settings.display.AmbientDisplayNotificationsPreferenceController;
import com.android.settings.gestures.DoubleTapScreenPreferenceController;
import com.android.settings.gestures.PickupGesturePreferenceController;
+import com.android.settings.gestures.ScreenOffUdfpsPreferenceController;
import com.android.settings.notification.LockScreenNotificationPreferenceController;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.security.screenlock.LockScreenPreferenceController;
@@ -113,6 +114,7 @@
use(AmbientDisplayNotificationsPreferenceController.class).setConfig(getConfig(context));
use(DoubleTapScreenPreferenceController.class).setConfig(getConfig(context));
use(PickupGesturePreferenceController.class).setConfig(getConfig(context));
+ use(ScreenOffUdfpsPreferenceController.class).setConfig(getConfig(context));
mControlsContentObserver = new ContentObserver(
new Handler(Looper.getMainLooper())) {
diff --git a/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java b/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java
new file mode 100644
index 0000000..e2102aa
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/AbstractPatternSwitchPreferenceController.java
@@ -0,0 +1,72 @@
+/*
+ * 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.security.screenlock;
+
+import android.content.Context;
+
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+public abstract class AbstractPatternSwitchPreferenceController
+ extends AbstractPreferenceController
+ implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+ private final String mKey;
+ private final int mUserId;
+ private final LockPatternUtils mLockPatternUtils;
+
+ public AbstractPatternSwitchPreferenceController(Context context, String key,
+ int userId, LockPatternUtils lockPatternUtils) {
+ super(context);
+ mKey = key;
+ mUserId = userId;
+ mLockPatternUtils = lockPatternUtils;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return isPatternLock();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return mKey;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ ((TwoStatePreference) preference).setChecked(isEnabled(mLockPatternUtils, mUserId));
+ }
+
+ private boolean isPatternLock() {
+ return mLockPatternUtils.getCredentialTypeForUser(mUserId)
+ == LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ setEnabled(mLockPatternUtils, mUserId, (Boolean) newValue);
+ return true;
+ }
+
+ protected abstract boolean isEnabled(LockPatternUtils utils, int userId);
+ protected abstract void setEnabled(LockPatternUtils utils, int userId, boolean enabled);
+}
diff --git a/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java
new file mode 100644
index 0000000..8da044d
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PatternDotsVisiblePreferenceController.java
@@ -0,0 +1,41 @@
+/*
+ * 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.security.screenlock;
+
+import android.content.Context;
+
+import com.android.internal.widget.LockPatternUtils;
+
+public class PatternDotsVisiblePreferenceController
+ extends AbstractPatternSwitchPreferenceController {
+ private static final String PREF_KEY = "visibledots";
+
+ public PatternDotsVisiblePreferenceController(Context context, int userId,
+ LockPatternUtils lockPatternUtils) {
+ super(context, PREF_KEY, userId, lockPatternUtils);
+ }
+
+ @Override
+ protected boolean isEnabled(LockPatternUtils utils, int userId) {
+ return utils.isVisibleDotsEnabled(userId);
+ }
+
+ @Override
+ protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+ utils.setVisibleDotsEnabled(enabled, userId);
+ }
+}
diff --git a/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java
new file mode 100644
index 0000000..b9a18c1
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PatternErrorVisiblePreferenceController.java
@@ -0,0 +1,41 @@
+/*
+ * 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.security.screenlock;
+
+import android.content.Context;
+
+import com.android.internal.widget.LockPatternUtils;
+
+public class PatternErrorVisiblePreferenceController
+ extends AbstractPatternSwitchPreferenceController {
+ private static final String PREF_KEY = "visible_error_pattern";
+
+ public PatternErrorVisiblePreferenceController(Context context, int userId,
+ LockPatternUtils lockPatternUtils) {
+ super(context, PREF_KEY, userId, lockPatternUtils);
+ }
+
+ @Override
+ protected boolean isEnabled(LockPatternUtils utils, int userId) {
+ return utils.isShowErrorPath(userId);
+ }
+
+ @Override
+ protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+ utils.setShowErrorPath(enabled, userId);
+ }
+}
diff --git a/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java b/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
index ea3403b..2f8b641 100644
--- a/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
+++ b/src/com/android/settings/security/screenlock/PatternVisiblePreferenceController.java
@@ -18,52 +18,23 @@
import android.content.Context;
-import androidx.preference.Preference;
-import androidx.preference.TwoStatePreference;
-
import com.android.internal.widget.LockPatternUtils;
-import com.android.settings.core.PreferenceControllerMixin;
-import com.android.settingslib.core.AbstractPreferenceController;
-public class PatternVisiblePreferenceController extends AbstractPreferenceController
- implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
-
+public class PatternVisiblePreferenceController extends AbstractPatternSwitchPreferenceController {
private static final String PREF_KEY = "visiblepattern";
- private final int mUserId;
- private final LockPatternUtils mLockPatternUtils;
-
public PatternVisiblePreferenceController(Context context, int userId,
LockPatternUtils lockPatternUtils) {
- super(context);
- mUserId = userId;
- mLockPatternUtils = lockPatternUtils;
+ super(context, PREF_KEY, userId, lockPatternUtils);
}
@Override
- public boolean isAvailable() {
- return isPatternLock();
+ protected boolean isEnabled(LockPatternUtils utils, int userId) {
+ return utils.isVisiblePatternEnabled(userId);
}
@Override
- public String getPreferenceKey() {
- return PREF_KEY;
- }
-
- @Override
- public void updateState(Preference preference) {
- ((TwoStatePreference) preference).setChecked(
- mLockPatternUtils.isVisiblePatternEnabled(mUserId));
- }
-
- private boolean isPatternLock() {
- return mLockPatternUtils.getCredentialTypeForUser(mUserId)
- == LockPatternUtils.CREDENTIAL_TYPE_PATTERN;
- }
-
- @Override
- public boolean onPreferenceChange(Preference preference, Object newValue) {
- mLockPatternUtils.setVisiblePatternEnabled((Boolean) newValue, mUserId);
- return true;
+ protected void setEnabled(LockPatternUtils utils, int userId, boolean enabled) {
+ utils.setVisiblePatternEnabled(enabled, userId);
}
}
diff --git a/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java b/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java
new file mode 100644
index 0000000..6d7ae8a
--- /dev/null
+++ b/src/com/android/settings/security/screenlock/PinScramblePreferenceController.java
@@ -0,0 +1,78 @@
+/*
+ * Copyright (C) 2018 The LineageOS 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.security.screenlock;
+
+import android.app.admin.DevicePolicyManager;
+import android.content.Context;
+import androidx.preference.Preference;
+import androidx.preference.TwoStatePreference;
+
+import com.android.internal.widget.LockPatternUtils;
+import com.android.settings.core.PreferenceControllerMixin;
+import com.android.settingslib.core.AbstractPreferenceController;
+
+import lineageos.providers.LineageSettings;
+
+public class PinScramblePreferenceController extends AbstractPreferenceController
+ implements PreferenceControllerMixin, Preference.OnPreferenceChangeListener {
+
+ static final String KEY_LOCKSCREEN_SCRAMBLE_PIN_LAYOUT = "lockscreen_scramble_pin_layout";
+
+ private final int mUserId;
+ private final LockPatternUtils mLockPatternUtils;
+
+ public PinScramblePreferenceController(Context context, int userId,
+ LockPatternUtils lockPatternUtils) {
+ super(context);
+ mUserId = userId;
+ mLockPatternUtils = lockPatternUtils;
+ }
+
+ @Override
+ public boolean isAvailable() {
+ return isPinLock();
+ }
+
+ @Override
+ public String getPreferenceKey() {
+ return KEY_LOCKSCREEN_SCRAMBLE_PIN_LAYOUT;
+ }
+
+ @Override
+ public void updateState(Preference preference) {
+ ((TwoStatePreference) preference).setChecked(LineageSettings.System.getInt(
+ mContext.getContentResolver(),
+ LineageSettings.System.LOCKSCREEN_PIN_SCRAMBLE_LAYOUT,
+ 0) == 1);
+ }
+
+ private boolean isPinLock() {
+ int quality = mLockPatternUtils.getKeyguardStoredPasswordQuality(mUserId);
+ boolean hasPin = quality == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC ||
+ quality == DevicePolicyManager.PASSWORD_QUALITY_NUMERIC_COMPLEX;
+ return mLockPatternUtils.isSecure(mUserId) && hasPin;
+ }
+
+ @Override
+ public boolean onPreferenceChange(Preference preference, Object newValue) {
+ LineageSettings.System.putInt(
+ mContext.getContentResolver(),
+ LineageSettings.System.LOCKSCREEN_PIN_SCRAMBLE_LAYOUT,
+ (Boolean) newValue ? 1 : 0);
+ return true;
+ }
+}
diff --git a/src/com/android/settings/security/screenlock/ScreenLockSettings.java b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
index 8c9dacb..ec6f91f 100644
--- a/src/com/android/settings/security/screenlock/ScreenLockSettings.java
+++ b/src/com/android/settings/security/screenlock/ScreenLockSettings.java
@@ -72,12 +72,18 @@
final List<AbstractPreferenceController> controllers = new ArrayList<>();
controllers.add(new PatternVisiblePreferenceController(
context, MY_USER_ID, lockPatternUtils));
+ controllers.add(new PatternErrorVisiblePreferenceController(
+ context, MY_USER_ID, lockPatternUtils));
+ controllers.add(new PatternDotsVisiblePreferenceController(
+ context, MY_USER_ID, lockPatternUtils));
controllers.add(new PinPrivacyPreferenceController(
context, MY_USER_ID, lockPatternUtils));
controllers.add(new PowerButtonInstantLockPreferenceController(
context, MY_USER_ID, lockPatternUtils));
controllers.add(new LockAfterTimeoutPreferenceController(
context, MY_USER_ID, lockPatternUtils));
+ controllers.add(new PinScramblePreferenceController(
+ context, MY_USER_ID, lockPatternUtils));
controllers.add(new OwnerInfoPreferenceController(context, parent));
return controllers;
}
diff --git a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
index 89ee19b..17f3fe5 100644
--- a/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
+++ b/src/com/android/settings/shortcut/CreateShortcutPreferenceController.java
@@ -152,7 +152,7 @@
intent = new Intent();
}
intent.putExtra(Intent.EXTRA_SHORTCUT_ICON_RESOURCE,
- Intent.ShortcutIconResource.fromContext(mContext, R.mipmap.ic_launcher_settings))
+ Intent.ShortcutIconResource.fromContext(mContext, R.drawable.ic_launcher_settings))
.putExtra(Intent.EXTRA_SHORTCUT_INTENT, shortcutIntent)
.putExtra(Intent.EXTRA_SHORTCUT_NAME, label);
diff --git a/src/com/android/settings/vpn2/ConfigDialog.java b/src/com/android/settings/vpn2/ConfigDialog.java
index bf0dfc9..5657416 100644
--- a/src/com/android/settings/vpn2/ConfigDialog.java
+++ b/src/com/android/settings/vpn2/ConfigDialog.java
@@ -524,25 +524,7 @@
PackageManager.FEATURE_IPSEC_TUNNELS)) {
Log.wtf(TAG, "FEATURE_IPSEC_TUNNELS missing from system");
}
- // If the vpn is new or is not already a legacy type,
- // don't allow the user to set the type to a legacy option.
- // Set the mProfile.type to TYPE_IKEV2_IPSEC_USER_PASS if the VPN not exist
- if (!mExists) {
- mProfile.type = VpnProfile.TYPE_IKEV2_IPSEC_USER_PASS;
- }
-
- // Remove all types which are legacy types from the typesList
- if (!VpnProfile.isLegacyType(mProfile.type)) {
- for (int i = mAllowedTypes.size() - 1; i >= 0; i--) {
- // This must be removed from back to front in order to ensure index consistency
- if (VpnProfile.isLegacyType(i)) {
- mAllowedTypes.remove(i);
- }
- }
-
- types = mAllowedTypes.toArray(new String[0]);
- }
final ArrayAdapter<String> adapter = new ArrayAdapter<String>(
getContext(), android.R.layout.simple_spinner_item, types);
adapter.setDropDownViewResource(android.R.layout.simple_spinner_dropdown_item);
diff --git a/src/com/android/settings/wifi/WifiConfigController2.java b/src/com/android/settings/wifi/WifiConfigController2.java
index e55ea16..ab13405 100644
--- a/src/com/android/settings/wifi/WifiConfigController2.java
+++ b/src/com/android/settings/wifi/WifiConfigController2.java
@@ -315,7 +315,7 @@
: NOT_HIDDEN_NETWORK);
final int prefMacValue = WifiPrivacyPreferenceController2
- .translateMacRandomizedValueToPrefValue(config.macRandomizationSetting);
+ .translateMacRandomizedValueToPrefValue(mWifiEntry.getPrivacy());
mPrivacySettingsSpinner.setSelection(prefMacValue);
if (config.getIpConfiguration().getIpAssignment() == IpAssignment.STATIC) {
diff --git a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java b/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
deleted file mode 100644
index 280b8d4..0000000
--- a/tests/robotests/src/com/android/settings/connecteddevice/usb/UsbDetailsHeaderControllerTest.java
+++ /dev/null
@@ -1,116 +0,0 @@
-/*
- * Copyright (C) 2018 The Android Open Source Project
- *
- * Licensed under the Apache License, Version 2.0 (the "License");
- * you may not use this file except in compliance with the License.
- * You may obtain a copy of the License at
- *
- * http://www.apache.org/licenses/LICENSE-2.0
- *
- * Unless required by applicable law or agreed to in writing, software
- * distributed under the License is distributed on an "AS IS" BASIS,
- * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
- * See the License for the specific language governing permissions and
- * limitations under the License.
- */
-
-package com.android.settings.connecteddevice.usb;
-
-import static android.hardware.usb.UsbPortStatus.DATA_ROLE_DEVICE;
-import static android.hardware.usb.UsbPortStatus.POWER_ROLE_SINK;
-
-import static org.mockito.ArgumentMatchers.argThat;
-import static org.mockito.Mockito.verify;
-import static org.mockito.Mockito.when;
-
-import android.content.Context;
-import android.graphics.drawable.Drawable;
-import android.hardware.usb.UsbManager;
-import android.hardware.usb.UsbPort;
-
-import androidx.fragment.app.FragmentActivity;
-import androidx.lifecycle.LifecycleOwner;
-import androidx.preference.PreferenceManager;
-import androidx.preference.PreferenceScreen;
-
-import com.android.settings.R;
-import com.android.settings.testutils.shadow.ShadowEntityHeaderController;
-import com.android.settings.widget.EntityHeaderController;
-import com.android.settingslib.core.lifecycle.Lifecycle;
-import com.android.settingslib.testutils.DrawableTestHelper;
-import com.android.settingslib.widget.LayoutPreference;
-
-import org.junit.After;
-import org.junit.Before;
-import org.junit.Test;
-import org.junit.runner.RunWith;
-import org.mockito.Answers;
-import org.mockito.ArgumentMatcher;
-import org.mockito.Mock;
-import org.mockito.MockitoAnnotations;
-import org.robolectric.RobolectricTestRunner;
-import org.robolectric.RuntimeEnvironment;
-import org.robolectric.annotation.Config;
-
-@RunWith(RobolectricTestRunner.class)
-@Config(shadows = ShadowEntityHeaderController.class)
-public class UsbDetailsHeaderControllerTest {
-
- private UsbDetailsHeaderController mDetailsHeaderController;
- private Context mContext;
- private Lifecycle mLifecycle;
- private LifecycleOwner mLifecycleOwner;
- private LayoutPreference mPreference;
- private PreferenceManager mPreferenceManager;
- private PreferenceScreen mScreen;
-
- @Mock
- private UsbBackend mUsbBackend;
- @Mock
- private UsbDetailsFragment mFragment;
- @Mock
- private FragmentActivity mActivity;
- @Mock(answer = Answers.RETURNS_DEEP_STUBS)
- private EntityHeaderController mHeaderController;
-
- @Before
- public void setUp() {
- MockitoAnnotations.initMocks(this);
-
- mContext = RuntimeEnvironment.application;
- mLifecycleOwner = () -> mLifecycle;
- mLifecycle = new Lifecycle(mLifecycleOwner);
- mPreferenceManager = new PreferenceManager(mContext);
- mScreen = mPreferenceManager.createPreferenceScreen(mContext);
-
- when(mFragment.getActivity()).thenReturn(mActivity);
- when(mActivity.getApplicationContext()).thenReturn(mContext);
- when(mFragment.getContext()).thenReturn(mContext);
- when(mFragment.getPreferenceManager()).thenReturn(mPreferenceManager);
- when(mFragment.getPreferenceScreen()).thenReturn(mScreen);
-
- ShadowEntityHeaderController.setUseMock(mHeaderController);
- mDetailsHeaderController = new UsbDetailsHeaderController(mContext, mFragment, mUsbBackend);
- mPreference = new LayoutPreference(mContext, R.layout.settings_entity_header);
- mPreference.setKey(mDetailsHeaderController.getPreferenceKey());
- mScreen.addPreference(mPreference);
- }
-
- @After
- public void tearDown() {
- ShadowEntityHeaderController.reset();
- }
-
- @Test
- public void displayRefresh_charging_shouldSetHeader() {
- mDetailsHeaderController.displayPreference(mScreen);
- mDetailsHeaderController.refresh(true, UsbManager.FUNCTION_NONE, POWER_ROLE_SINK,
- DATA_ROLE_DEVICE);
- verify(mHeaderController).setLabel(mContext.getString(R.string.usb_pref));
- verify(mHeaderController).setIcon(argThat((ArgumentMatcher<Drawable>) t -> {
- DrawableTestHelper.assertDrawableResId(t, R.drawable.ic_usb);
- return true;
- }));
- verify(mHeaderController).done(mActivity, true);
- }
-}
diff --git a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
index 057b6cb..285c102 100644
--- a/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
+++ b/tests/robotests/src/com/android/settings/network/PrivateDnsPreferenceControllerTest.java
@@ -179,8 +179,8 @@
}
@Test
- public void getAvailabilityStatus_disabledForGuestUser() {
- doReturn(true).when(mUserManager).isGuestUser();
+ public void getAvailabilityStatus_disabledForNonAdminUser() {
+ doReturn(false).when(mUserManager).isAdminUser();
assertThat(mController.getAvailabilityStatus()).isEqualTo(DISABLED_FOR_USER);
}