197 Commits
dec ... 111

Author SHA1 Message Date
StarkDroid
ca84402338 [2/2] Enable Statusbar Clock background chip
Signed-off-by: StarkDroid <gamerprince.exp@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-08-22 23:23:48 +07:00
strwbrry143
968cd1560d Cherish: Resizeable QS date [2/2]
Signed-off-by: strwbrry143 <alexfinhart@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-08-22 23:20:09 +07:00
StarkDroid
42aa4ba440 Cherish: Clock Size Settings
Signed-off-by: strwbrry143 <alexfinhart@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-08-22 23:17:51 +07:00
Ali B
25c1e4f684 Cherish: Add QS System Info [2/2]
Change-Id: Idb3c59814aac350a93ea16501de96ca1490b252a
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-08-22 23:12:00 +07:00
Beanstown
8620bfc9e7 UDFPS Settings: Fingerprint authentication vibration [2/2] 2022-08-18 19:18:20 +07:00
Hưng Phan
b2c5220f4a New translations cherish_strings.xml (French) (#147) 2022-08-15 21:53:30 +07:00
Hưng Phan
8815858fea New Crowdin updates (#146)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* New translations cherish_strings.xml (Vietnamese)
2022-08-14 18:53:53 +07:00
Pranav Vashi
b4e783fad4 Cherish: Allow disabling ripple effect on unlock [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-08-11 17:09:28 +07:00
Hưng Phan
3d2a45382d New Crowdin updates (#144)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* New translations cherish_strings.xml (Vietnamese)
2022-08-11 09:35:06 +07:00
maxwen
525508e637 Cherish: qs tiles/layout customizations
Signed-off-by: minarypenguin <alexfinhart@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-08-11 09:00:30 +07:00
masarou
ce81cf90ff Cherish: Update picasso maintainer name (#143) 2022-08-05 11:52:38 +07:00
strwbrrylvr143
7c9e18e3fc Cherish: Secondary color for lockscreen clock toggle [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-08-02 19:31:58 +07:00
ReallySnow
4c62e26f12 Cherish: Import Wi-Fi standard icon [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-31 21:15:32 +07:00
Hưng Phan
6b52d23e39 Cherish:update OnePlus 6/6T maintainer name
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-22 09:56:03 +07:00
Hưng Phan
5c86e22ce9 New translations cherish_strings.xml (Portuguese) (#141) 2022-07-22 09:29:39 +07:00
Hưng Phan
5bfe6758af Cherish:Fix reticker not active
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-20 18:25:36 +07:00
Hưng Phan
d81ab92f2b New translations cherish_strings.xml (Chinese Simplified) (#140) 2022-07-20 17:49:31 +07:00
Hưng Phan
e8a35177a5 New Crowdin updates (#139)
* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (French)
2022-07-19 17:11:57 +07:00
Hưng Phan
4a0e121c25 New Crowdin updates (#138)
* Update source file cherish_strings.xml

* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* Update cherish_strings.xml
2022-07-18 10:39:40 +07:00
LibXZR
51e39f9475 Cherish: Add force background freezer
Change-Id: Ic0c119282c295db9b7d4dc03c037828b02c5a9e4

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-18 10:39:24 +07:00
LibXZR
326c047131 Cherish: Add strict standby policy
Change-Id: I8a8b86dba5ff5aa6a31106af5f93a250de76e91f

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-18 01:28:33 +07:00
jhonboy121
207910ba53 Cherish: better fade filter and encapsulate artwork settings in a data class
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-18 01:28:25 +07:00
Hưng Phan
f6b926e2c4 New translations cherish_strings.xml (Ukrainian) 2022-07-18 00:38:41 +07:00
Iris0411
50f75c76eb ysl: Update device maintainer for ysl
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-15 22:56:10 +07:00
moonitime
8e8a0a70f6 Cherish: lavender Maintainer Update
Signed-off-by: Moonitime: Ultra Romantic <moonitimeultraromantic@gmail.com>
2022-07-14 06:19:31 +07:00
Hưng Phan
bfa3781d81 New Crowdin updates (#133)
* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Japanese)
2022-07-12 00:11:47 +07:00
Hưng Phan
0cededf07d New Crowdin updates (#132)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (Vietnamese)
2022-07-11 23:57:19 +07:00
Hưng Phan
a681007420 Cherish:fix-up: Transparent QS customization
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-07-11 16:26:36 +07:00
Hưng Phan
38033d7b78 New translations cherish_strings.xml (Chinese Simplified) 2022-07-08 00:48:11 +07:00
Hưng Phan
5425f01135 New translations cherish_strings.xml (Turkish) 2022-07-08 00:47:59 +07:00
jhonboy121
b49bf9ea71 Cherish: Make notification artwork toggleable [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-22 23:13:25 +07:00
Cykeek
63a5a89085 RMX1851 maintainer Update
Nikhil7001 --> Cykeek
2022-06-22 09:43:21 +07:00
kota
844cadf8d7 Add venus maintainer.
Device Name : Xiaomi Mi 11
2022-06-22 09:43:10 +07:00
Hưng Phan
6826706a92 Cherish:fix the problem date format not work in clock settings
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-13 09:43:56 +07:00
spkal01
aa6e52b5fb Cherish: Qs Transparency Settings
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-12 18:48:19 +07:00
Hưng Phan
d805bea51e New translations cherish_strings.xml (Chinese Simplified)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-12 10:10:26 +07:00
Xeesan
6652975954 Cherish:Update Maintainer
Update Device Maintainer for beryllium

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-12 10:10:26 +07:00
travarilo
0b8b88244d Cherish: Toggle data usage view on QS footer [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-12 10:10:25 +07:00
Hưng Phan
606ad03529 Revert"Cherish: Allow customizing footer text [2/2]"
this commit fdc85e21ef.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-12 10:10:25 +07:00
Dil3mm4
11d0e4e52d Feature: reticker [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-06-12 10:10:25 +07:00
Hưng Phan
cbc17ee7f5 New translations cherish_strings.xml (Turkish) 2022-06-10 11:19:40 +07:00
Hưng Phan
14008e6474 New translations cherish_strings.xml
New translations cherish_strings.xml (Romanian)

New translations cherish_strings.xml (Indonesian)

New translations cherish_strings.xml (Turkish)

New translations cherish_strings.xml (Ukrainian)

New translations cherish_strings.xml (Chinese Simplified)

New translations cherish_strings.xml (Chinese Traditional)

New translations cherish_strings.xml (English)

New translations cherish_strings.xml (Vietnamese)

New translations cherish_strings.xml (Portuguese, Brazilian)

New translations cherish_strings.xml (Persian)

New translations cherish_strings.xml (Serbian (Cyrillic))

New translations cherish_strings.xml (Hindi)

New translations cherish_strings.xml (Malayalam)

New translations cherish_strings.xml (Latin)

New translations cherish_strings.xml (Nepali)

New translations cherish_strings.xml (Kurmanji (Kurdish))

New translations cherish_strings.xml (Sorani (Kurdish))

New translations cherish_strings.xml (Lao)

New translations cherish_strings.xml (Swedish)

New translations cherish_strings.xml (Russian)

New translations cherish_strings.xml (French)

New translations cherish_strings.xml (Hebrew)

New translations cherish_strings.xml (Spanish)

New translations cherish_strings.xml (Arabic)

New translations cherish_strings.xml (Czech)

New translations cherish_strings.xml (Danish)

New translations cherish_strings.xml (German)

New translations cherish_strings.xml (Greek)

New translations cherish_strings.xml (Finnish)

New translations cherish_strings.xml (Hungarian)

New translations cherish_strings.xml (Portuguese)

New translations cherish_strings.xml (Italian)

New translations cherish_strings.xml (Japanese)

New translations cherish_strings.xml (Korean)

New translations cherish_strings.xml (Kurdish)

New translations cherish_strings.xml (Dutch)

New translations cherish_strings.xml (Norwegian)

New translations cherish_strings.xml (Polish)

New translations cherish_strings.xml (Turkish, Cyprus)

Update source file cherish_strings.xml

New translations cherish_strings.xml (Romanian)

New translations cherish_strings.xml (Indonesian)

New translations cherish_strings.xml (Turkish)

New translations cherish_strings.xml (Ukrainian)

New translations cherish_strings.xml (Chinese Simplified)

New translations cherish_strings.xml (Chinese Traditional)

New translations cherish_strings.xml (English)

New translations cherish_strings.xml (Vietnamese)

New translations cherish_strings.xml (Portuguese, Brazilian)

New translations cherish_strings.xml (Persian)

New translations cherish_strings.xml (Serbian (Cyrillic))

New translations cherish_strings.xml (Hindi)

New translations cherish_strings.xml (Malayalam)

New translations cherish_strings.xml (Latin)

New translations cherish_strings.xml (Nepali)

New translations cherish_strings.xml (Kurmanji (Kurdish))

New translations cherish_strings.xml (Sorani (Kurdish))

New translations cherish_strings.xml (Lao)

New translations cherish_strings.xml (Swedish)

New translations cherish_strings.xml (Russian)

New translations cherish_strings.xml (French)

New translations cherish_strings.xml (Hebrew)

New translations cherish_strings.xml (Spanish)

New translations cherish_strings.xml (Arabic)

New translations cherish_strings.xml (Czech)

New translations cherish_strings.xml (Danish)

New translations cherish_strings.xml (German)

New translations cherish_strings.xml (Greek)

New translations cherish_strings.xml (Finnish)

New translations cherish_strings.xml (Hungarian)

New translations cherish_strings.xml (Portuguese)

New translations cherish_strings.xml (Italian)

New translations cherish_strings.xml (Japanese)

New translations cherish_strings.xml (Korean)

New translations cherish_strings.xml (Kurdish)

New translations cherish_strings.xml (Dutch)

New translations cherish_strings.xml (Norwegian)

New translations cherish_strings.xml (Polish)

New translations cherish_strings.xml (Turkish, Cyprus)

New translations cherish_strings.xml (Chinese Traditional)

New translations cherish_strings.xml (Portuguese, Brazilian)

New translations cherish_strings.xml (Indonesian)

New translations cherish_strings.xml (Turkish)

New translations cherish_strings.xml (Turkish)

New translations cherish_strings.xml (Russian)

New translations cherish_strings.xml (Turkish)

New translations cherish_strings.xml (Chinese Traditional)

New translations cherish_strings.xml (Vietnamese)

New translations cherish_strings.xml (Japanese)
2022-06-06 22:09:47 +07:00
Hưng Phan
0bc5cd377c New translations cherish_strings.xml (Indonesian) 2022-05-28 12:20:25 +07:00
Hưng Phan
004d57a319 New translations cherish_strings.xml (Japanese) 2022-05-28 12:20:25 +07:00
Hưng Phan
e8b091e2d7 New translations cherish_strings.xml
New translations cherish_strings.xml (Romanian)

New translations cherish_strings.xml (Indonesian)

New translations cherish_strings.xml (Turkish)

New translations cherish_strings.xml (Ukrainian)

New translations cherish_strings.xml (Chinese Simplified)

New translations cherish_strings.xml (Chinese Traditional)

New translations cherish_strings.xml (English)

New translations cherish_strings.xml (Vietnamese)

New translations cherish_strings.xml (Portuguese, Brazilian)

New translations cherish_strings.xml (Persian)

New translations cherish_strings.xml (Serbian (Cyrillic))

New translations cherish_strings.xml (Hindi)

New translations cherish_strings.xml (Malayalam)

New translations cherish_strings.xml (Latin)

New translations cherish_strings.xml (Nepali)

New translations cherish_strings.xml (Kurmanji (Kurdish))

New translations cherish_strings.xml (Sorani (Kurdish))

New translations cherish_strings.xml (Lao)

New translations cherish_strings.xml (Swedish)

New translations cherish_strings.xml (Russian)

New translations cherish_strings.xml (French)

New translations cherish_strings.xml (Hebrew)

New translations cherish_strings.xml (Spanish)

New translations cherish_strings.xml (Arabic)

New translations cherish_strings.xml (Czech)

New translations cherish_strings.xml (Danish)

New translations cherish_strings.xml (German)

New translations cherish_strings.xml (Greek)

New translations cherish_strings.xml (Finnish)

New translations cherish_strings.xml (Hungarian)

New translations cherish_strings.xml (Portuguese)

New translations cherish_strings.xml (Italian)

New translations cherish_strings.xml (Japanese)

New translations cherish_strings.xml (Korean)

New translations cherish_strings.xml (Kurdish)

New translations cherish_strings.xml (Dutch)

New translations cherish_strings.xml (Norwegian)

New translations cherish_strings.xml (Polish)

New translations cherish_strings.xml (Turkish, Cyprus)

New translations cherish_strings.xml (Vietnamese)
2022-05-28 12:20:25 +07:00
Pranav Vashi
2bad22b704 Cherish:Switch to GameSpace
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:20:24 +07:00
Stallix
6d47b7ee00 Cherish:User toggle for unlimited photos storage [2/2]
User toggle for StreamProp [2/2]
User toggle for GamesProp [2/2]

Co-authored-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:20:24 +07:00
spkal01
ec836d4606 Cherish: Settings Customization
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:20:18 +07:00
Hưng Phan
9dedf283bc "Revert "TopLevelSettings: custom settings layout [3/3]"
This reverts commit 837e5f2d0c.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>

Revert "Revert "TopLevelSettings: custom settings layout [3/3]""

This reverts commit 2a3921c969.

Revert "TopLevelSettings: custom settings layout [3/3]"

This reverts commit 42d357e1a2.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:19:05 +07:00
R15Hi
086c474e2a Cherish: Add 14 New VoLTE icon [2/2]
Thankful to
1. Flowder:- https://t.me/flowdor
2. Iconic icon:- https://t.me/IconicIcons
3. Acherus:- https://t.me/acherussubstratum

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:19:04 +07:00
R15Hi
4b6b57e542 Battery Styles: Added 9 more battery styles [2/2]
Thanks to Another substratum theme for many icons:- https://t.me/AnotherTheme
Thanks to @Fakeriz for battery icon style A.
Thanks to @Ndikarizki for battery icon style B.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:19:04 +07:00
703joko
b4e9642307 Cherish: Introduce Battery Landscape [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:19:04 +07:00
Hưng Phan
06a4878375 Cherish:Fix preference lockscreen Media Art
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-28 12:19:03 +07:00
UNIVERSE
c31525c836 Update cherish_maintainers.xml 2022-05-28 12:19:03 +07:00
Hưng Phan
2966b6b5b5 fix path LineageHardwareManager 2022-05-28 12:19:03 +07:00
spkal01
3cd6053ffe Cherish:Color coded battery indication [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-05-01 17:20:26 +07:00
Hưng Phan
a0929c9482 Cherish:Update Maintainer
Updated device maintainer for OnePlus Nord

Signed-off-by: Sandeep-FED <sandymankara11@gmail.com>

Renamed device name

santoni: Update Maintainer in xml

Signed-off-by: Ansh <singhansh64321@gmail.com>

Add chef Maintainer
Motorola One Power
2022-05-01 11:01:48 +07:00
Hưng Phan
28f55b61e6 New translations cherish_strings.xml (Chinese Simplified) (#108) 2022-04-27 18:45:44 +07:00
Hưng Phan
96c10293a9 New Crowdin updates (#107)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Indonesian)
2022-04-25 19:02:57 +07:00
LibXZR
ca2b51a603 Cherish:Add application downgrade feature and window ignore secure feature
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-23 19:28:06 +07:00
Hưng Phan
57867f8e99 New translations cherish_strings.xml (Italian) (#106) 2022-04-23 06:32:29 +07:00
Hưng Phan
f6c2d3136e Cherish: Add 2 Button background styles in clear all notifications
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-19 09:12:50 +07:00
Hưng Phan
ce2bf8e1b6 New translations cherish_strings.xml (Indonesian) (#105) 2022-04-18 12:52:20 +07:00
Bishwo
67ebc19c7a Update Maintainer for Redmi Note 8 Pro (#104)
* Update Maintainer for Redmi Note 8 Pro

* Update Maintainer for Redmi Note 8 Pro
2022-04-15 15:46:46 +07:00
Hưng Phan
a74e9bb4c7 New translations cherish_strings.xml (Czech) (#101) 2022-04-15 12:51:19 +07:00
Hưng Phan
06d58bda91 New translations cherish_strings.xml (Turkish) 2022-04-13 05:48:08 +07:00
Hưng Phan
2e09e64a00 New Crowdin updates (#99)
* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (Indonesian)
2022-04-12 09:06:35 +07:00
Hưng Phan
4806c5dfd4 New Crowdin updates (#98)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* New translations cherish_strings.xml (Vietnamese)
2022-04-10 16:43:40 +07:00
spkal01
a0f038c40f Cherish[SQUASH]:Clear all button styles[2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-08 17:41:32 +07:00
SagarMakhar
3291a3d767 Cherish: Black theme [2/3]
Change-Id: I6f3c722349e13fc8c44acd67fd168b3a32673ba5
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-07 13:10:54 +07:00
Joey Huab
581bbbb03d Cherish: Bring back Monet settings
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-07 13:10:46 +07:00
Hưng Phan
d8d0f91858 New translations cherish_strings.xml (Turkish, Cyprus) (#97)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-07 09:52:06 +07:00
Hưng Phan
1a10a775bd New translations cherish_strings.xml (Russian) (#96)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-07 09:52:06 +07:00
Hưng Phan
088d537d21 New Crowdin updates (#95)
* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Indonesian)

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-04-07 09:52:06 +07:00
Hưng Phan
77104f5445 Revert "Cherish:Hide extended qs brightness slider"
This reverts commit ae82e06f22.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-31 20:58:40 +07:00
Hưng Phan
3c365eaecd Revert "Cherish: Clean hide clock"
This reverts commit 6326cc1ab8.
2022-03-30 11:57:45 +07:00
Hưng Phan
837e5f2d0c Revert "Revert "TopLevelSettings: custom settings layout [3/3]""
This reverts commit 2a3921c969.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-29 19:31:26 +07:00
Hưng Phan
9628d55a7a New Crowdin updates (#94)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)
2022-03-29 19:24:06 +07:00
Hưng Phan
c1ec859a65 New Crowdin updates (#93)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* New translations cherish_strings.xml (Vietnamese)
2022-03-29 09:28:18 +07:00
Hưng Phan
202cdc1d67 Revert some commits
Revert "Cherish: Black theme [2/3]"

This reverts commit 41392e2a62.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>

Revert "Cherish: Bring back Monet settings"

This reverts commit c2cf740c03.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-29 09:28:18 +07:00
Alex
9b1b715f48 Navbar: Add navbar layout custom
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>

Navbar: Add navbar layout preference

Change-Id: Id092c83daa490f29e04bc5b88e52508b1dc53f9c
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>

Navbar: Add navbar arrow keys switch

Change-Id: I9e15f7737559b169e3f58d70999779a1e7109577
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-29 09:28:17 +07:00
Pranav Vashi
4d53fbb8d2 Cherish: Allow toggling camera/mic privacy indicator [2/2]
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-26 13:52:56 +07:00
Vachounet
23549703f6 Cherish: Custom FOD Icon [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-26 13:42:53 +07:00
SuperDroidBond
35e75fc2d6 UDFPS Settings: beautifications
Move all UDFPS Settings to separate menu for ease of removal
for non-udfps devices

Signed-off-by: SuperDroidBond <superdroidbond@yahoo.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-26 13:42:53 +07:00
SagarMakhar
72f3241d7d [SQUASH] Bring back Udfps icons and Animations [2/3]
Change-Id: I21db60139dceaa595324a2a35f05ed39006eec66
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>

Bring back icon shapes, icon packs, fonts Customisation

Signed-off-by: sb6596 <shubhamprince111@gmail.com>
Change-Id: I0a80a90faa83d94ec8652fc48faee8e1ae710f09
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: SuperDroidBond <superdroidbond@yahoo.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-26 13:42:52 +07:00
Hưng Phan
ae82e06f22 Cherish:Hide extended qs brightness slider
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-26 13:42:52 +07:00
Ansh
8566c9d4a2 Update santoni Maintainer Name 2022-03-24 18:48:15 +07:00
Hưng Phan
2a3921c969 Revert "TopLevelSettings: custom settings layout [3/3]"
This reverts commit 42d357e1a2.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-23 08:59:38 +07:00
Hưng Phan
6326cc1ab8 Cherish: Clean hide clock
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-23 00:01:26 +07:00
Pranav Vashi
2bfaef6a10 Cherish:Add tunable to disable QS date [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-23 00:01:16 +07:00
Hưng Phan
aab1b43000 New Crowdin updates (#89)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)
2022-03-22 22:31:47 +07:00
SagarMakhar
41392e2a62 Cherish: Black theme [2/3]
Change-Id: I6f3c722349e13fc8c44acd67fd168b3a32673ba5
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
Signed-off-by: doandc701 <88759481+doandc701@users.noreply.github.com>
2022-03-22 18:50:35 +07:00
Hưng Phan
64f449abbb New Crowdin updates (#88)
* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* Update source file cherish_strings.xml

* New translations cherish_strings.xml (Vietnamese)
2022-03-22 10:00:03 +07:00
Joey Huab
c2cf740c03 Cherish: Bring back Monet settings
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-22 09:40:01 +07:00
SagarMakhar
85dbfac97f Cherish:[SQUASH] Port brightness slider changes [2/2]
Squashed commit of the following:

commit 8857e6bb1f68c85af995bb29964e11f68990de44
Author: SagarMakhar <sagarmakhar@gmail.com>
Date:   Sat Aug 21 17:04:31 2021 +0000

    Quick QS brightness slider [2/2]

    Change-Id: Ib3990781d5a438b2159fa5a383ba16d64bd42bb6
    Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>

commit a1d31fc792df8fc598c7c2017505b36626afdf9d
Author: Dhina17 <dhinalogu@gmail.com>
Date:   Wed Jul 1 12:53:00 2020 +0530

    qs: Enable adaptive brightness button by default

    Signed-off-by: Dhina17 <dhinalogu@gmail.com>
    Change-Id: Ia241688a6ed87d846b3ab0466b0833106ab6433f
    Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>

commit 6242c12181a7acfb384308e22d8a41d16f7588d5
Author: Adarsh-MR <adarshmr1998@gmail.com>
Date:   Thu Dec 13 18:48:55 2018 +0530

    Extensions: Add QS brightness buttons options [2/2]

    Signed-off-by: Adarsh-MR <adarshmr1998@gmail.com>
    Signed-off-by: Vol Zhdanov <wight554@gmail.com>
    Signed-off-by: Shubham Singh <coolsks94@gmail.com>
    Change-Id: I093b6dc6f43193b9713ee9f0d18fcf299c340573
    Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>

commit 88b397eb849810f361c7149340cfddd2510beed1
Author: xyyx <xyyx@mail.ru>
Date:   Fri Aug 31 14:02:12 2018 +0800

    Extensions: add prefs for qs brightness slider (2/2)

    Change-Id: I1cf1ae866af39dca7f40165674fc6066471da679
    Signed-off-by: Shubham Singh <coolsks94@gmail.com>
    Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>

Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 09:39:38 +07:00
Hưng Phan
c85a922ac1 New Crowdin updates (#87)
* Update source file cherish_strings.xml

* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* Update source file cherish_strings.xml

* New translations cherish_strings.xml (Vietnamese)
2022-03-21 08:38:26 +07:00
TikkiTikki
dbe5b516ec Cherish: Solid render: Round lines [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 08:18:20 +07:00
Pranav Vashi
8bd5be5eda Cherish:Pulse initial checkin for Android 12 [2/2]
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 08:17:47 +07:00
Pranav Vashi
5161803844 Cherish:Add Lockscreen album art filter [2/2]
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 08:16:50 +07:00
beanstown106
75ce7364b4 Cherish:Allow to enable Lockscreen Media Art [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 08:15:51 +07:00
Hưng Phan
0273d9a638 New Crowdin updates (#84)
* Update source file cherish_strings.xml

* New translations cherish_strings.xml (Romanian)

* New translations cherish_strings.xml (Indonesian)

* New translations cherish_strings.xml (Turkish)

* New translations cherish_strings.xml (Ukrainian)

* New translations cherish_strings.xml (Chinese Simplified)

* New translations cherish_strings.xml (Chinese Traditional)

* New translations cherish_strings.xml (English)

* New translations cherish_strings.xml (Vietnamese)

* New translations cherish_strings.xml (Portuguese, Brazilian)

* New translations cherish_strings.xml (Persian)

* New translations cherish_strings.xml (Serbian (Cyrillic))

* New translations cherish_strings.xml (Hindi)

* New translations cherish_strings.xml (Malayalam)

* New translations cherish_strings.xml (Latin)

* New translations cherish_strings.xml (Nepali)

* New translations cherish_strings.xml (Kurmanji (Kurdish))

* New translations cherish_strings.xml (Sorani (Kurdish))

* New translations cherish_strings.xml (Lao)

* New translations cherish_strings.xml (Swedish)

* New translations cherish_strings.xml (Russian)

* New translations cherish_strings.xml (French)

* New translations cherish_strings.xml (Hebrew)

* New translations cherish_strings.xml (Spanish)

* New translations cherish_strings.xml (Arabic)

* New translations cherish_strings.xml (Czech)

* New translations cherish_strings.xml (Danish)

* New translations cherish_strings.xml (German)

* New translations cherish_strings.xml (Greek)

* New translations cherish_strings.xml (Finnish)

* New translations cherish_strings.xml (Hungarian)

* New translations cherish_strings.xml (Portuguese)

* New translations cherish_strings.xml (Italian)

* New translations cherish_strings.xml (Japanese)

* New translations cherish_strings.xml (Korean)

* New translations cherish_strings.xml (Kurdish)

* New translations cherish_strings.xml (Dutch)

* New translations cherish_strings.xml (Norwegian)

* New translations cherish_strings.xml (Polish)

* New translations cherish_strings.xml (Turkish, Cyprus)

* Update source file cherish_strings.xml

* New translations cherish_strings.xml (Vietnamese)

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 08:14:22 +07:00
spkal01
42d357e1a2 TopLevelSettings: custom settings layout [3/3]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 08:14:17 +07:00
Hưng Phan
0aab504f62 Cherish:[SQUASH]Add tunables for clock position
Cherish: Add tunables for clock position
Author: Hendrik Hagendorn <git@finnq.de>
Date:   Sun Jan 15 10:00:12 2017 +0100
    Tuner: Move clock seconds option to status bar settings

    Change-Id: I532c179f06b934009d48433e50b69660247ee295

Author: Luca Stefani <luca.stefani.ge1@gmail.com>
Date:   Sun Jul 29 14:19:08 2018 +0200
    SystemUI: Fix default clock blacklist value

    Change-Id: Ibdc4f6a707569ddb417854760cf579daca989ebb

Author: LuK1337 <priv.luk@gmail.com>
Date:   Wed Aug 1 18:10:39 2018 +0200
    SystemUI: Initialize mClockVisibleByUser to android:visibility

    * Fixes ~ triple clock ~ after leaving from Google SUW.

    Change-Id: I3ceea4400b3057e2b6b1f221f9074b1d451133ea

Author: LuK1337 <priv.luk@gmail.com>
Date:   Thu Sep 27 12:24:19 2018 +0200
    SystemUI: Fix clock icon blacklist handling

    * This makes sure clock isn't on blacklist before
      calling showClock(animate);

    Change-Id: I7f77a83aa6c109e1682d764fb22701375ae5ba1e

Author: LuK1337 <priv.luk@gmail.com>
Date:   Tue Apr 2 20:56:25 2019 +0200
    SystemUI: Don't hide right clock when heads up is visible

    * https://gitlab.com/LineageOS/issues/android/issues/436

    Change-Id: I85a6cd2dff79e6b97d8a7db552c22d611bf25dbd

Author: LuK1337 <priv.luk@gmail.com>
Date:   Wed Oct 30 15:48:38 2019 +0100
    SystemUI: Fix up right clock handling when showing heads up

    * Oops, we somehow forgot to import this code from 16.0 ;-;

    Change-Id: Ic4195a30da2870f569f07fc323e4b939320ab6c8

Author: Michael W <baddaemon87@gmail.com>
Date:   Mon Jun 1 14:43:31 2020 +0200
    SystemUI: Make clock truly invisible

    * When the clock is set to left and then hidden, the notification
      icons, which would appear on the left first transition to the
      right to make place for the clock then finally snap into place
    * The same happens when the clock was set to show right and then
      is hidden: The battery, wifi, etc. icons do leave space for the
      (not displayed) clock and then snap to the right
    * This patch fixes the behavior

    Change-Id: Ic68b1001becb91da6f1aeaca95a7312b36e1d2a1

Author: LuK1337 <priv.luk@gmail.com>
Date:   Sat Apr 10 22:52:25 2021 +0200
    SystemUI: Make center clock layout safe insets aware

    This effectively fixes wrongly centered clock layout on
    devices with side notch / hole punch.

    Change-Id: I7cb8cbbe628397c50d37e23ba1853368e61a1fc9

Author: LuK1337 <priv.luk@gmail.com>
Date:   Sun Apr 11 09:47:17 2021 +0200
    SystemUI: Move network traffic monitor under same layout as clock

    This effectively fixes wrongly network monitor layout on
    devices with side notch / hole punch.

    Change-Id: I217b886d8da75eab7636066f4822f5fd6dbc9aff

Author: Volodymyr Zhdanov <wight554@gmail.com>
Date:   Tue Nov 9 20:53:56 2021 +0200
    SystemUI: fix clock dark/light mode switching

    * move ClockController init to PhoneStatusBarView
    * move add/remove dark receiver logic to ClockController

    Change-Id: I6464af6e8aa130ea54fe7bfa19858c8930a29b1e

Change-Id: Icdc039d13fd2676c1eb979a81fb77f9a6ec59b4a
Signed-off-by: Volodymyr Zhdanov <wight554@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>

Cherish:Add tunables for clock AM/PM style
Conflicts:
	packages/SystemUI/src/com/android/systemui/statusbar/policy/Clock.java

Cherish: Add support for clock auto-hiding
Hide statusbar clock when launcher is visible. Useful when you already have a clock as widget.

Change-Id: I03dfc81bc055f2f865ac704e3bf9d9d104fac272
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>

CherishAdd separate tunable for clock seconds
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
Co-authored-by: LuK1337 <priv.luk@gmail.com>
Co-authored-by: Michael Bestas <mkbestas@lineageos.org>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-21 08:13:17 +07:00
Hưng Phan
ee4fb9ccbe Cleanup clock position[2/2]
Revert "Cherish:fix-up: statusbar clock date customization (2/2)"

This reverts commit 0b61f74039.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>

Revert "Cherish: Add option to auto hide status-bar clock [2/2]"

This reverts commit 6bc14947d6.

Revert "Cherish:Status bar clock/date customizations [2/2]"

This reverts commit eb7d3bf5c1.

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-18 17:21:37 +07:00
bigrushdog
7db326c976 Cherish: Screen off animations [2/2]
Change-Id: Idcba49c5e8389314412457269f9b2577469d29d2
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 21:31:59 +07:00
bigrushdog
4720f3c724 Hardware key disable support
Change-Id: I42f8b3b9423e218eb612bb8ff57baa58280392e6
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 21:31:39 +07:00
maxwen
2960d8c445 Custom button light [2/2]
*DU Edits*

- Adapt to our custom seekbar
- Wrap preferences/seekbar with a category / update strings
- Add check to remove preferences depending on bool (config_button_brightness_support)

Change-Id: I90531723f8751a92766e96f5409d979a2f5bd524
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 20:17:35 +07:00
GodfatherX64
6c28bcff30 Hardware key: Enable single tap rebinding for hwkey back and home
Initially, this policy was put in place to safeguard
the UX by preventing a usecase where the device could
be put in a state without back or home available. However,
if a user puts the device in this state, it is easy enough
to navigate to button settings to fix it

Change-Id: I6b71f9e54fcb99356e07f236e9ed926ac5fc017e
Signed-off-by: mhkjahromi <m.h.k.jahromi@gmail.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 20:17:35 +07:00
bigrushdog
54a5962b6e Hardware key: Customization support [2/2]
Based on DUI

jhenrique09 edits: make it DUI independent

Original commit message:
Same robust action library as used on software navigation. Supports
single tap, double tap, and long press. As a precautionary measure,
single tap back and single tap home are fixed and can not be changed.
Camera button actions are not supported at this time. We will bring
in wake key support at a later time.

Also includes:

Change-Id: I29ff38678821ca80db36d49d3b10d8ac29a6b4de
DUI: Initial checkin for Oreo [4/7]
Signed-off-by: Shubham Singh <coolsks94@gmail.com>
Signed-off-by: mhkjahromi <m.h.k.jahromi@gmail.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 20:17:28 +07:00
Myself5
7a11dc7e80 Cherish: Introduce full circle battery style[2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 09:33:02 +07:00
Hưng Phan
841c59487b Cherish:fix overlay reset after reboot in preview
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:37 +07:00
Pranav Vashi
eaff2938c5 Cherish: Add signal and wifi icon style theming
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:36 +07:00
SagarMakhar
773e46b857 Cherish: Bring back icon shapes, icon packs, fonts customization
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:36 +07:00
Hưng Phan
20b79ae45c Cherish:Hide LS shortcuts now
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:36 +07:00
Aston-Martinn
39307c0279 Introduce Custom Statusbar Signal & Wi-Fi icons [2/3]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:36 +07:00
Pranav Vashi
09d27c829b Cherish: Add adaptive icon shape customization
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:35 +07:00
Hưng Phan
77f38037b3 Cherish:move all theming stuffs to our Theme Settings
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:35 +07:00
Hưng Phan
2d189d84ae Add string for PackageListPreference
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:35 +07:00
spezi77
4c5cdef705 NetworkTraffic: Cleanup and align to the new implementation.
* Also port "Show single traffic and allow custom font size [2/2]"
* Thanks to neobuddy for showing how the code can be slimmed down:
  https://github.com/crdroidandroid/android_packages_apps_crDroidSettings/commit/cab6d64

Signed-off-by: spezi77 <spezi7713@gmx.net>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:34 +07:00
spezi77
8118c376c5 NetworkTraffic: Fix flawed logic when de-/activating controls.
Introduced in commit https://github.com/pixeldust-project-caf/android_packages_apps_PixelDustSettings/commit/575da06

Signed-off-by: spezi77 <spezi7713@gmx.net>
Change-Id: I316096eb94c1611998500f9c9a1e931e896b1bfc
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:34 +07:00
SKULSHADY
3b1960c6ea NetworkTraffic: Show single traffic for statusbar & allow custom font size [2/2].
Based on commits by idoybh, SKULSHADY and SDB:
* https://github.com/pixeldust-project-caf/android_packages_apps_PixelDustSettings/commit/8f52988
* https://github.com/pixeldust-project-caf/android_packages_apps_PixelDustSettings/commit/0a5424b

Co-authored-by: Ido Ben-Hur <idoybh2@gmail.com>
Co-authored-by: SuperDroidBond <superdroidbond@yahoo.com>
Signed-off-by: spezi77 <spezi7713@gmx.net>
Change-Id: I26c826066569af2cb07c2a9e6c03f6c71f8a18f7
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:34 +07:00
Genkzsz11
a855197418 Cherish: Interval net visibility
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:34 +07:00
SKULSHADY
f083d98042 Cherish: Improve Network traffic
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:33 +07:00
Anushek Prasal
22a871caa2 Network Traffic: Allow to choose display mode [1/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:33 +07:00
neobuddy89
b299c5a50d Cherish: Network Traffic: Customize refresh interval [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:33 +07:00
Anushek Prasal
02f68e76af Cherish: Add Network traffic location
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:33 +07:00
Jon Haus
bc63f10c90 Cherish: Network Traffic [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:32 +07:00
xyyx
1185608377 Cherish: add dotted circle style (2/2)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:32 +07:00
Danesh M
b0292b2445 BatteryMeterDrawable: add text style (2/2)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:32 +07:00
xyyx
580e5cf28a BatterySettings: Move to androidx
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:31 +07:00
Sven Dawitz
3a3df7da3b Forward Port Battery Styles
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:31 +07:00
Danesh M
2ff574b8c7 Implement battery percent styles (2/2)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:31 +07:00
Pranav Vashi
4987963079 Cherish: Add Game Space shortcut pref
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:31 +07:00
idoybh
5166864ba5 Cherish: Allow hiding notification headers [2/2]
Gimme back my space, thank you

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:34:25 +07:00
Ido Ben-Hur
fdc85e21ef Cherish: Allow customizing footer text [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-17 00:33:16 +07:00
kufikugel
0b61f74039 Cherish:fix-up: statusbar clock date customization (2/2)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 01:46:36 +07:00
spkal01
b981ed252e Cherish: Make colored Statusbar Icons optional [2/2]
Change-Id: Icfedf5bf56a2645dca28bcebaee1d7b4cc5c0b09
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 01:46:35 +07:00
jhonboy121
2d21c38699 Cherish: improve location privacy indicator toggle [2/2]
Signed-off-by: jhonboy121 <alfredmathew05@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 01:46:30 +07:00
Meticulus
7b87237cfd Cherish: allow toggling location privacy indicator [2/2]
Signed-off-by: SuperDroidBond <superdroidbond@yahoo.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 01:45:32 +07:00
Meticulus
ba9728d512 Cherish: Live Volume Steps [2/2]
Change-Id: I1e4ced6a7b7c963419fe1656e25b76f596a61959
Signed-off-by: Jason Edson <jaysonedson@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 01:44:39 +07:00
jhonboy121
4be12dabd3 Cherish: Allow toggling screen off FOD [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:37 +07:00
Ido Ben-Hur
a0c75390da Cherish: Conditionally hide screen off FOD
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:37 +07:00
Pranav Vashi
499b0c728f Cherish: Ambient Music Ticker - Allow to pulse on new tracks [2/2]
Signed-off-by: Pranav Vashi <neobuddy89@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:37 +07:00
Ido Ben-Hur
d4994c66d9 Cherish: Show the summary for flash on call
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:36 +07:00
SuperDroidBond
2b68764181 Cherish: Ambient Pulse Light: add layout style for top n bottom [2/2]
Co-Authored-By: bezke <1642612+bezke@users.noreply.github.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:36 +07:00
Michele Bono
adbe867abc Cherish: Add light width [2/2]
Co-Authored-By: bezke <1642612+bezke@users.noreply.github.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:36 +07:00
AnkitGourav
32b8f56a92 Cherish: Ambient Edge Pulse style [2/2]
Co-Authored-By: bezke <1642612+bezke@users.noreply.github.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:35 +07:00
AnkitGourav
8db67ec20d Cherish: Add reverse animation direction [2/2]
Co-Authored-By: bezke <1642612+bezke@users.noreply.github.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:35 +07:00
Ido Ben-Hur
db164e78ab Cherish: Pulse edge light for all doze triggers [2/2]
Co-Authored-By: bezke <1642612+bezke@users.noreply.github.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:35 +07:00
idoybh
fb5f6fa3ca Cherish:Add ambient edge lightning settings
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:34 +07:00
idoybh
39d8d998eb AODSchedule: Correctly display summary
Properly support all locales and time formats
and improve some code

Signed-off-by: Sagarrokade006 <Sagarrokade006@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:34 +07:00
idoybh
81a02dd369 AODSchedule: Add support for mixed time & sun modes [2/2]
Also make the code a bit more readable

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:34 +07:00
idoybh
9d7a94864c Cherish: Allow scheduling always on display [2/2]
From sunset to sunrise or at a custom time

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:33 +07:00
Pranav Vashi
6bc14947d6 Cherish: Add option to auto hide status-bar clock [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:33 +07:00
SKULSHADY
155598b3c7 Cherish: Add toggle to disable battery estimates in QS [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:32 +07:00
acras01
fc1572674a Cherish: Complete Allow toggling combined signal icons [2/2]
Change-Id: I5b39d5000fc3b1af94f88a5f8dbc62b82e400388

Co-authored-by: jhonboy121 <alfredmathew05@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:32 +07:00
Ido Ben-Hur
6c7b5019b2 Cherish: Add DND & Rate settings to flash on call [3/3]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:32 +07:00
Ido Ben-Hur
e2c957756f Cherish: Allow to flash on call only when entirely silent [3/3]
In addition improve the strings

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:31 +07:00
PMS22
3a4a64be72 Cherish: Add Flashlight blink on incoming calls [3/3]
- Thanks to Shripal17 for suggesting list preference
  instead of a toggle
- Add a device specific flashlight check

idoybh edits: The current check is for isRingerAudiable and
not for DND - change var names and strings so it'll not mislead any
future developer or any user

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:30 +07:00
Nico60
382eeb9172 Cherish: Add interpolators to qs tiles animation [2/2]
Change-Id: I702fdb87ed821290b5a895381f7b987e3a36a58d
Signed-off-by: mydongistiny <jaysonedson@gmail.com>
Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:30 +07:00
Nico60
f802e64457 Cherish: Add animations to quick settings tiles [2/2]
Change-Id: I2e4009027d35a519a8e8b3b17e41b4dcd829c307
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:28 +07:00
Anushek Prasal
d93c85d6bc Cherish: Add toggle to disable charging animation [2/2]
Change-Id: I0b6c2f4bf75eef8a8a6a5fabf729c4cfa80c327d
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:27 +07:00
xyyx
8cd3e04aab LockscreenCharging: squashed (3/3)
Change-Id: I1ea4c7fc351908d14a7fef0c2ea58e0f30d7dac8
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:26 +07:00
maxwen
05f4f9271b Cherish: bring back old style mobile data indicators
Change-Id: Iff218eee7425964bca53d7dd2d6da0ffdb3a7c69
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:25 +07:00
SagarMakhar
fd6fee840d Double tap to wake on doze [2/2]
Change-Id: I1711adb96085057c847a69ed9f07bc8b88648b57
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:25 +07:00
SpiritCroc
cfabfb3297 Cherish: Add kill button to notification guts [2/2]
Signed-off-by: AmolAmrit <amol.amrit03@outlook.com>
Change-Id: I9f64a620e8e829850542561fb717a92d3f4b0b74
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:24 +07:00
ezio84
616663bf8e Less boring heads up option [2/2]
Signed-off-by: AmolAmrit <amol.amrit03@outlook.com>
Change-Id: I1bbc7cce848b890c76a145f86f55ee3c232d457b
Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:23 +07:00
xyyx
943d2fd0dd Battery: Add option to disable led after full charging (2/2)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:23 +07:00
ezio84
ddecafb3db Battery led customization: activate led light preview
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:22 +07:00
ezio84
9589ea8c3c Battery light colors: show reset to default button
Signed-off-by: xyyx <xyyx@mail.ru>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:22 +07:00
ezio84
c7daff0974 Disable useless alphaslider for battery led customization
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:22 +07:00
ezio84
66e90b9a7f Cherish:Battery light customization [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:21 +07:00
DennySPB
34b5dd698a Cherish: Add volte and vowifi options
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:21 +07:00
calebcabob
25cab71ee6 Heads-up: Fix up layout for blacklisted/stoplisted app lists
When apps were added to blacklist/stoplist, there was nothing
in place to help things look halfway decent. We added a layout
in order to accomplish a nicer, cleaner looking list.

Before: https://i.imgur.com/7muwWZ7.jpg

After:  https://i.imgur.com/DzgVOjX.jpg

Signed-off-by: calebcabob <calphonic@gmail.com>
Change-Id: Ic853817f7cf1765a282324a23af11f72666e2670
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:21 +07:00
Hưng Phan
ed637852d0 Cherish:Remove Utils
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:20 +07:00
Hưng Phan
42b2e8bd63 Cherish:Add strings missing in custom seekbar preference
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:20 +07:00
Pranav Vashi
619dc96ce6 Cherish:Make roaming indicator optional [2/2]
Change-Id: I632fd55d508128949b66553a8d05ce90d31e3529
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:20 +07:00
varund7726
ab389ba2a6 Cherish:Option to Display Data Disabled Indicator Icon [2/2]
Change-Id: I5b3138976392acb34a161cf781020450f495fdf2
Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:19 +07:00
beanstown106
578c823a31 Cherish:incall vibration options [3/3]
*allow setting vibration when call is connected
*allow setting vibration when call is disconnected
*allow setting vibration for call waiting
*this works with google and aosp dialer :)

Change-Id: Id1a431124174571f8d0091825af2418971cfe35d
Signed-off-by: AmolAmrit <amol.amrit03@outlook.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:19 +07:00
Lars Greiss
eb7d3bf5c1 Cherish:Status bar clock/date customizations [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:19 +07:00
Roman Birg
8392239373 Cherish:Add QS pull down with one finger [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:18 +07:00
Lokesh Chamane
eae80f6e34 Cherish: HeadsUp snooze function [2/2]
5.1 introduced a snooze feature which activates when swiping up.
Default snooze time is 1 minute. Let's make it configurable!

Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Change-Id: Ieac7f6182597c2285c1ddf40e2e75cce680682e7
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:18 +07:00
Lars Greiss
5ddc665991 HeadsUp: add timeout option (2/2)
Forward ported to marshmallow/nougat By: @BeansTown106
removed the none option as we now have a headsup minimum time of 2seconds
added 5sec option as that is the new default in marshmallow

Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Change-Id: I6af7fef23f1cdb62390bd4bf8b81b5ca9bdb2a8d
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:17 +07:00
Adnan
cc455a06ed Cherish: HeadsUp blacklists (2/2)
@xyyx: delete app with one tap and some diff in code)

Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Change-Id: I9f762362229787f3dc41a6a49191105c03f17f34
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:17 +07:00
xyyx
3c47bc086e HeadsUp: Stop showing notifications when selected applications on top [2/2]
Thanks to Decad3nce for idea and code
And credits to old CM's team

Change-Id: Icc9edc05df695dfe2bb77ea7a6d71d06a5215bee
Signed-off-by: Shubham Singh <coolsks94@gmail.com>
Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:16 +07:00
LorDClockaN
9efc044c70 Cherish:Toast icon switch [2/2]
Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Change-Id: I65094566e6f5bdbfccf2a8361632780f3502d3a9
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:16 +07:00
Altaf-Mahdi
1876009def Cherish:Hide power menu on secure lockscreen [2/2]
Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Change-Id: Iec13c2601e8b2265858aaee6cfeeca26e7df30c1
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:15 +07:00
maxwen
750178f83c Cherish:allow to swap volume buttons rotation based [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:15 +07:00
SagarMakhar
7134f483c4 Add VOLTE icon toggle [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:15 +07:00
Pranav Vashi
70ca748afe Allow using 4G icon instead LTE [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:15 +07:00
ezio84
6be9e8b3f3 Allow doubletap/longpress power to toggle torch [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-15 00:41:06 +07:00
rascarlo
9be12c499b Volume Rocker Wake [2/2]
Change-Id: Ib83943373ad5dabeda65466b3d4b84eb5aa3e61e
Signed-off-by: mydongistiny <jaysonedson@gmail.com>
Signed-off-by: Arghya Chanda <arghyac35@gmail.com>
Signed-off-by: SagarMakhar <sagarmakhar@gmail.com>
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-14 23:38:13 +07:00
ezio84
8d6e660501 Double tap to sleep on statusbar [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-14 23:38:12 +07:00
Altaf-Mahdi
6ce237a539 Double tap to sleep on the lock screen (2/2)
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-14 23:38:12 +07:00
Alex Cruz
8e4a68807d Pimp the power menu out [2/2]
sagarmakhar: migrate to androidx

Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-14 23:38:12 +07:00
Evisceration
ec8d49118f QuickSettings: Add Haptic Feedback to tiles [2/2]
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-14 23:38:11 +07:00
xyyx
42c5d4d25f Cherish: Launch Statusbar items and LS shortcut editor
Signed-off-by: Hưng Phan <phandinhhungvp2001@gmail.com>
2022-03-14 23:38:11 +07:00
130 changed files with 25476 additions and 26760 deletions

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android"
android:shape="rectangle">
<corners android:radius="6dp" />
</shape>

View File

@@ -1,5 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<shape xmlns:android="http://schemas.android.com/apk/res/android">
<corners android:radius="5dp" />
<gradient android:type="linear" />
</shape>

View File

@@ -1,11 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<ripple xmlns:android="http://schemas.android.com/apk/res/android"
android:color="#FFFFFF">
<item>
<shape android:shape="oval">
<solid android:color="?android:attr/colorPrimaryDark" />
<size android:width="20dp"
android:height="20dp" />
</shape>
</item>
</ripple>

View File

@@ -25,11 +25,11 @@
android:id="@+id/icon"
android:layout_width="48dp"
android:layout_height="48dp"
android:layout_marginVertical="4dp"
android:layout_marginTop="4dp"
android:layout_marginBottom="4dp"
android:scaleType="centerInside"
settings:layout_constraintStart_toStartOf="parent"
settings:layout_constraintTop_toTopOf="parent"
settings:layout_constraintBottom_toBottomOf="parent" />
settings:layout_constraintTop_toTopOf="parent" />
<TextView
android:id="@+id/label"
@@ -38,26 +38,23 @@
android:layout_marginStart="@dimen/default_margin"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textColor="?android:attr/textColorPrimary"
android:maxLines="1"
settings:layout_constraintStart_toEndOf="@id/icon"
settings:layout_constraintEnd_toStartOf="@id/check_box"
settings:layout_constraintTop_toTopOf="@id/icon"
settings:layout_constraintBottom_toTopOf="@id/package_name" />
settings:layout_constraintEnd_toStartOf="@id/checkBox"
settings:layout_constraintTop_toTopOf="@id/icon" />
<TextView
android:id="@+id/package_name"
android:id="@+id/packageName"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:textAppearance="?android:attr/textAppearanceSmall"
android:textColor="?android:attr/textColorSecondary"
android:maxLines="2"
settings:layout_constraintStart_toStartOf="@id/label"
settings:layout_constraintEnd_toEndOf="@id/label"
settings:layout_constraintTop_toBottomOf="@id/label"
settings:layout_constraintBottom_toBottomOf="@id/icon" />
<CheckBox
android:id="@+id/check_box"
android:id="@+id/checkBox"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:focusable="false"

View File

@@ -1,135 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 FlamingoOS 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.
-->
<androidx.constraintlayout.widget.ConstraintLayout xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res-auto"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:paddingTop="@dimen/default_padding"
android:paddingBottom="@dimen/default_padding">
<View
android:id="@+id/color_preview"
android:layout_width="0dp"
android:layout_height="@dimen/color_picker_preview_height"
android:layout_marginStart="@dimen/default_margin"
android:layout_marginEnd="@dimen/default_margin"
android:background="@drawable/color_picker_preview_background"
settings:layout_constraintEnd_toEndOf="parent"
settings:layout_constraintStart_toStartOf="parent"
settings:layout_constraintTop_toTopOf="parent" />
<EditText
android:id="@+id/color_input"
style="@style/ColorPickerEditTextStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
settings:layout_constraintStart_toStartOf="@id/color_preview"
settings:layout_constraintTop_toTopOf="@id/color_preview"
settings:layout_constraintEnd_toEndOf="@id/color_preview"
settings:layout_constraintBottom_toBottomOf="@id/color_preview" />
<SeekBar
android:id="@+id/seekBar1"
style="@style/ColorPickerSeekBarStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
settings:layout_constraintBottom_toTopOf="@id/seekBar2"
settings:layout_constraintEnd_toEndOf="parent"
settings:layout_constraintStart_toStartOf="parent"
settings:layout_constraintTop_toBottomOf="@id/color_preview" />
<SeekBar
android:id="@+id/seekBar2"
style="@style/ColorPickerSeekBarStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
settings:layout_constraintBottom_toTopOf="@id/seekBar3"
settings:layout_constraintEnd_toEndOf="parent"
settings:layout_constraintStart_toStartOf="parent"
settings:layout_constraintTop_toBottomOf="@id/seekBar1" />
<SeekBar
android:id="@+id/seekBar3"
style="@style/ColorPickerSeekBarStyle"
android:layout_width="0dp"
android:layout_height="wrap_content"
android:layout_marginBottom="@dimen/default_margin"
settings:layout_constraintBottom_toTopOf="@id/barrier"
settings:layout_constraintEnd_toEndOf="parent"
settings:layout_constraintStart_toStartOf="parent"
settings:layout_constraintTop_toBottomOf="@id/seekBar2" />
<RadioGroup
android:id="@+id/color_model_group"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginStart="@dimen/default_margin"
android:orientation="horizontal"
settings:layout_constraintBottom_toBottomOf="@id/confirm_button"
settings:layout_constraintStart_toStartOf="parent"
settings:layout_constraintTop_toTopOf="@id/confirm_button">
<RadioButton
android:id="@+id/rgb_button"
style="@style/ColorPickerRadioButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:checked="true"
android:text="@string/rgb" />
<RadioButton
android:id="@+id/hsl_button"
style="@style/ColorPickerRadioButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hsl" />
<RadioButton
android:id="@+id/hsv_button"
style="@style/ColorPickerRadioButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:text="@string/hsv" />
</RadioGroup>
<Button
android:id="@+id/cancel_button"
style="@style/ColorPickerButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="12dp"
android:text="@string/cancel"
settings:layout_constraintBottom_toBottomOf="@id/confirm_button"
settings:layout_constraintEnd_toStartOf="@id/confirm_button"
settings:layout_constraintTop_toTopOf="@id/confirm_button" />
<Button
android:id="@+id/confirm_button"
style="@style/ColorPickerButtonStyle"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_marginEnd="@dimen/default_margin"
android:text="@string/confirm"
settings:layout_constraintBottom_toBottomOf="parent"
settings:layout_constraintEnd_toEndOf="parent" />
<androidx.constraintlayout.widget.Barrier
android:id="@+id/barrier"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
settings:barrierDirection="top"
settings:constraint_referenced_ids="color_model_group, confirm_button" />
</androidx.constraintlayout.widget.ConstraintLayout>

View File

@@ -0,0 +1,70 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<LinearLayout xmlns:android="http://schemas.android.com/apk/res/android"
android:layout_width="match_parent"
android:layout_height="wrap_content"
android:gravity="center_vertical"
android:orientation="horizontal"
android:background="?android:attr/selectableItemBackground"
android:paddingStart="@dimen/switchbar_subsettings_margin_start"
android:paddingEnd="@dimen/switchbar_subsettings_margin_end"
android:paddingTop="8dp"
android:paddingBottom="8dp"
android:dividerHeight="0dp"
android:clipToPadding="false">
<!-- Icon view for Heads-up BlackListing/StopListing app lists -->
<LinearLayout
android:id="@+id/icon_container"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:gravity="start|center_vertical"
android:dividerHeight="0dp"
android:orientation="horizontal">
<com.android.internal.widget.PreferenceImageView
android:id="@android:id/icon"
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:scaleType="centerInside"
android:maxWidth="26dp"
android:maxHeight="26dp"/>
</LinearLayout>
<!-- Text view for Heads-up BlackListing/StopListing app lists -->
<RelativeLayout
android:layout_width="wrap_content"
android:layout_height="wrap_content"
android:layout_weight="1"
android:dividerHeight="0dp">
<TextView xmlns:android="http://schemas.android.com/apk/res/android"
android:id="@android:id/title"
android:layout_width="wrap_content"
android:layout_height="match_parent"
android:paddingStart="14dp"
android:gravity="center_vertical"
android:textAppearance="?android:attr/textAppearanceListItem"
android:textColor="?android:attr/textColorSecondary"
android:textStyle="bold"
android:layout_marginBottom="8dip" />
</RelativeLayout>
</LinearLayout>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,22 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2010 The Android Open Source Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<resources>
<style name="ColorPickerStyle" parent="Theme.MaterialComponents.BottomSheetDialog">
<item name="colorPrimary">@*android:color/primary_device_default_settings</item>
<item name="colorPrimaryDark">@*android:color/primary_device_default_settings_light</item>
<item name="colorAccent">@*android:color/accent_device_default_dark</item>
<item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
<item name="android:textColorPrimary">#FFFFFF</item>
</style>
</resources>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -1,769 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2019 CherishOS
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">
<!-- App Title -->
<string name="cherish_settings_title">Cherish Settings</string>
<!-- Categories -->
<string name="button_title">Buttons</string>
<string name="button_summary">Hardware keys, Navigation bar</string>
<string name="gestures_title">Gestures</string>
<string name="gestures_summary">Jump to camera, swipe to screenshot</string>
<string name="lockscreen_title">Lock screen</string>
<string name="lockscreen_summary">Music visualizer, charging animation, clock style</string>
<string name="misc_title">Miscellaneous</string>
<string name="misc_summary">Gaming mode, volume controls</string>
<string name="animations_title">Animations</string>
<string name="animations_summary">System animations</string>
<string name="powermenu_title">Power menu</string>
<string name="powermenu_summary">Advanced restart, power menu opacity</string>
<string name="theme_title">Themes</string>
<string name="theme_summary">System theme, rounded, switch theme</string>
<string name="quicksettings_title">Quick Settings</string>
<string name="quicksettings_summary">Tile layout, blur</string>
<string name="recents_title">Recents apps</string>
<string name="recents_summary">Slim recents</string>
<string name="statusbar_title">Status bar</string>
<string name="statusbar_summary">Clock, carrier, status icons</string>
<string name="volume_title">Volume rockers</string>
<string name="volume_summary">Volume rockers</string>
<string name="notifications_title">Notifications</string>
<string name="notifications_summary">Battery light, notifications header</string>
<string name="about_summary">Learn more about CherishOS</string>
<string name="device_part_title">Device features</string>
<string name="qs_category">QS category</string>
<string name="navbar_title">Navigation bar</string>
<string name="volume_keys_title">Volume keys</string>
<string name="udfps_category">UDFPS</string>
<!-- General strings -->
<string name="ok">OK</string>
<string name="reset">Reset</string>
<string name="cancel">Cancel</string>
<string name="save">Save</string>
<string name="none_string">None</string>
<string name="default_string">Default</string>
<string name="disabled">Disabled</string>
<!-- Color Picker -->
<string name="dialog_color_picker">Color Picker</string>
<string name="press_color_to_apply">Press on color below to apply</string>
<string name="arrow_right"></string>
<string name="arrow_down"></string>
<string name="hex">Hex:</string>
<string name="hex_hint">#ff000000</string>
<string name="set">Set</string>
<string name="color_default">Default</string>
<string name="led_color_green">Green</string>
<string name="led_color_red">Red</string>
<!-- Custom seekbar -->
<string name="custom_seekbar_value">Value: <xliff:g id="v">%s</xliff:g></string>
<string name="custom_seekbar_default_value">Default</string>
<string name="custom_seekbar_default_value_to_set">Default value: <xliff:g id="v">%s</xliff:g>\nLong press to set</string>
<string name="custom_seekbar_default_value_is_set">Default value is set</string>
<string name="add_package_to_title">Add application</string>
<string name="profile_choose_app">Choose app</string>
<string name="dialog_delete_title">Delete</string>
<string name="dialog_delete_message">Remove selected item?</string>
<!-- Units -->
<string name="unit_milliseconds">milliseconds</string>
<string name="unit_seconds">seconds</string>
<!-- QS settings -->
<string name="qs_title">Quick settings</string>
<!-- Lock screen visualizer -->
<string name="visualizer_title">Display music visualizer</string>
<!-- Power menu and dialogs opacity -->
<!-- AOKP custom system animations -->
<!-- Power menu Animations -->
<string name="power_menu_animation">Power menu</string>
<!-- QS header image -->
<!-- Lockscreen -->
<string name="lockscreen_category">Lockscreen</string>
<!-- Themes -->
<string name="theme_type_title">System theme</string>
<string name="theme_type_summary">Select theme</string>
<!--Accenter -->
<string name="themes_hub_title">Themes</string>
<string name="themes_hub_summary">Accents-Gradients-Themes</string>
<string name="rgb_accent_picker_title_dark">Accent Picker</string>
<string name="rgb_accent_picker_summary">Choose the accent color yourself</string>
<string name="theme_option_reset_title">Reset Theme Options</string>
<string name="theme_option_reset_message">Are you sure you want to reset themes-accent to default?</string>
<!--ThemePicker-->
<string name="theme_select_title">Styles and Wallpapers</string>
<string name="theme_select_summary">Browse and select installed themes</string>
<string name="notification_light_settings">Notifications light</string>
<string name="search">Search</string>
<string name="search_apps">Search apps</string>
<!-- Themeing -->
<string name="dark_ui_mode_summary">Browse the dark theme options</string>
<!-- [CHAR_LIMIT=NONE] Developer Settings: Title of the settings category for theme overlays. -->
<string name="theme_customization_category">Theming</string>
<!-- [CHAR_LIMIT=NONE] Developer Settings: Title of the setting which enables overlays to customize the adaptive icon shape (e.g. launcher and quick settings icons). -->
<string name="theme_customization_icon_shape_title">Icon shape</string>
<!-- [CHAR_LIMIT=NONE] Developer Settings: Title of the setting which enables overlays to customize accent color. -->
<string name="theme_customization_icon_shape_summary">Set system icon shape style</string>
<!-- [CHAR_LIMIT=NONE] Developer Settings: Title of the setting which enables overlays to customize headline and body fonts. -->
<string name="theme_customization_font_title">Headline / Body font</string>
<string name="theme_customization_font_summary">Set system font style</string>
<!-- [CHAR_LIMIT=NONE] Developer Settings: Title of the setting which enables overlays to customize the system wide icon pack. -->
<string name="theme_customization_icon_pack_title">Icon pack</string>
<string name="theme_customization_icon_pack_summary">Set custom icon pack style</string>
<string name="theme_customization_signal_icon_title">Signal icon style</string>
<string name="theme_customization_signal_icon_summary">Set custom signal icon style</string>
<string name="theme_customization_wifi_icon_title">WiFi icon style</string>
<string name="theme_customization_wifi_icon_summary">Set custom wifi icon style</string>
<!-- Custom Signal bar icons -->
<string name="custom_signal_bar_title">Signal</string>
<!-- Custom Wi-Fi bar icons -->
<string name="custom_wifi_bar_title">Wi-Fi</string>
<!-- Battery light -->
<string name="battery_light_settings">Battery charging light</string>
<string name="battery_light_enable">Enable</string>
<string name="battery_full_light_enabled">Battery light when full charged</string>
<string name="battery_light_allow_on_dnd_title">Battery light in Do Not Disturb mode</string>
<string name="battery_light_low_blinking_title">Blinking light on low battery</string>
<string name="battery_light_cat">Battery light color when charging</string>
<string name="battery_light_low_color">Low battery</string>
<string name="battery_light_medium_color">Medium battery</string>
<string name="battery_light_full_color">Almost full battery</string>
<string name="battery_light_reallyfull_color">Full (100) battery</string>
<string name="status_bar_quick_qs_pulldown">Quick QS pulldown</string>
<string name="quick_pulldown_none">Disabled</string>
<string name="quick_pulldown_right">Pulldown status bar from right side</string>
<string name="quick_pulldown_left">Pulldown status bar from left side</string>
<string name="quick_pulldown_always">Always show quick settings on status bar pull down</string>
<!-- Statusbar double tap to sleep -->
<string name="double_tap_to_sleep_title">Status bar double tap to sleep</string>
<string name="double_tap_to_sleep_summary">Double tap on the status bar to put the device to sleep</string>
<!-- Lockscreen double tap to sleep -->
<string name="lockscreen_gesture_title">Gestures</string>
<string name="double_tap_sleep_lockscreen_title">Lockscreen double tap to sleep</string>
<string name="double_tap_sleep_lockscreen_summary">Double tap anywhere on the lockscreen to put the device to sleep</string>
<string name="notification_sound_vib_screen_on_title">Noisy notifications if screen on</string>
<string name="notification_sound_vib_screen_on_summary">Disable to block notifications sound and vibration when the screen is awake</string>
<!-- Heads up options -->
<string name="notifications_category_title">Annoying notifications protection</string>
<string name="less_boring_heads_up_title">Make heads up less annoying</string>
<string name="less_boring_heads_up_summary">Show heads up only for dialer or messaging app if they are not in foreground</string>
<!-- Incall vibrate options -->
<string name="incall_vibration_category">In-call vibration options</string>
<string name="incall_vibrate_connect_title">Vibrate on connect</string>
<string name="incall_vibrate_call_wait_title">Vibrate on call waiting</string>
<string name="incall_vibrate_disconnect_title">Vibrate on disconnect</string>
<!-- Launch music player when headset is connected -->
<string name="headset_connect_player_title">Launch music app on headset connection</string>
<string name="headset_connect_player_summary">Launch the default music app when headset is connected</string>
<!-- Network traffic -->
<string name="network_traffic_title">Network traffic indicator</string>
<string name="network_traffic_summary">Enable or disable network speed indicator in status bar</string>
<string name="network_traffic_master_switch_title">Use Network Traffic Indicator</string>
<string name="network_options_title">Options</string>
<string name="network_traffic_autohide_title">Hide network traffic indicator if inactive</string>
<string name="network_traffic_autohide_summary">Hide when network traffic indicator is below 1 KB/s</string>
<!-- NavBar Inverse -->
<string name="navigation_bar_inverse_title">Invert 3 button navigation bar</string>
<string name="status_bar_icons_category_title">Icons</string>
<!-- Status bar - icon blocklist -->
<string name="status_bar_icons_title">Status bar icons</string>
<string name="status_bar_icons_summary">Choose which status bar icons can be shown</string>
<!-- Data disabled icon -->
<string name="data_disabled_icon_title">Show data disabled icon</string>
<string name="data_disabled_icon_summary">Display the cross sign next to signal bar when data is disabled</string>
<!-- Show old style mobile data icon -->
<string name="use_old_mobiletype_title">Use old style mobile data icons</string>
<string name="use_old_mobiletype_summary">Show mobile type icon on top of the signal indicator</string>
<!-- Show LTE/4G switch -->
<string name="show_fourg_icon_title">Show 4G instead of LTE</string>
<string name="show_fourg_icon_summary">Replace LTE indicator with 4G</string>
<!-- Roaming indicator icon -->
<string name="roaming_indicator_icon_title">Roaming indicator</string>
<string name="roaming_indicator_icon_summary">Display roaming indicator when in roaming mode</string>
<!-- Lock screen media artwork -->
<string name="lockscreen_media_art_options_title">Lock screen media art</string>
<!-- Media art -->
<string name="media_art_title">Media cover art</string>
<string name="media_art_summary">Display media cover art when available</string>
<!-- Lock screen album art filter -->
<string name="lockscreen_albumart_filter_title">Media cover art filter</string>
<string name="lockscreen_albumart_filter_grayscale">Grayscale</string>
<string name="lockscreen_albumart_filter_tint">Accent tinted</string>
<string name="lockscreen_albumart_filter_blur">Blur</string>
<string name="lockscreen_albumart_filter_grayblur">Grayscale and blurred</string>
<string name="lockscreen_albumart_filter_blur_radius_title">Blur amount for lockscreen media artwork</string>
<!-- Show VoLTE icon on statusbar -->
<string name="volte_switch_title">VoLTE icon</string>
<string name="volte_switch_summary">Display VoLTE icon</string>
<string name="volte_icon_title">VoLTE icon</string>
<string name="volte_icon_summary">Display VoLTE icon</string>
<string name="volte_icon_style_title">Select VoLTE Icon</string>
<string name="volte_icon_asus">VoLTE Asus Icon</string>
<string name="volte_icon_vo">Vo Only Icon</string>
<string name="volte_icon_volte">VoLTE Icon</string>
<string name="volte_icon_oos">VoLTE OOS Icon</string>
<string name="volte_icon_hd">HD Icon</string>
<string name="volte_icon_hd2">HD CAF Icon</string>
<string name="volte_icon_miui">MIUI 11 Icon</string>
<string name="volte_icon_emui">EMUI Icon</string>
<string name="volte_icon_margaritov">HD Filled Icon</string>
<string name="volte_icon_margaritov2">Margaritov VoLTE Icon</string>
<string name="volte_icon_vivo">Vivo Icon</string>
<string name="volte_icon_aris">Aris Icon</string>
<string name="volte_icon_beast">Aww Icon</string>
<string name="volte_icon_ios">Ios Icon</string>
<string name="volte_icon_lr">Livenge Icon</string>
<string name="volte_icon_realme">Realme Icon</string>
<string name="volte_icon_typeA">Mild Icon</string>
<string name="volte_icon_typeB">Filth Icon</string>
<string name="volte_icon_typeC">Mue Icon</string>
<string name="volte_icon_typeD">Sus Icon</string>
<string name="volte_icon_typeE">Acherus Icon</string>
<string name="volte_icon_vcircle">Circle Icon</string>
<string name="volte_icon_vimeo">Vimeo Icon</string>
<string name="volte_icon_volit">Volit Icon</string>
<string name="volte_icon_zirco">Ziroc Icon</string>
<!-- Statusbar Battery -->
<string name="battery_style_title">Battery icon style</string>
<string name="battery_style_summary">Customize battery icons, hide or show percentage</string>
<string name="battery_style_category_title">Battery icon</string>
<string name="status_bar_battery_category_title">In Status Bar</string>
<string name="status_bar_battery_percent_title">Battery percentage</string>
<string name="status_bar_battery_style_title">Battery style</string>
<string name="status_bar_battery_style_icon_portrait">Icon portrait (default)</string>
<string name="status_bar_battery_style_icon_rlandscape">Icon landscape (Right)</string>
<string name="status_bar_battery_style_icon_landscape">Icon landscape (Left)</string>
<string name="status_bar_battery_style_icon_rlandscape_style_a">Landscape R Style A</string>
<string name="status_bar_battery_style_icon_landscape_style_a">Landscape L Style A</string>
<string name="status_bar_battery_style_icon_rlandscape_style_b">Landscape R Style B</string>
<string name="status_bar_battery_style_icon_landscape_style_b">Landscape L Style B</string>
<string name="status_bar_battery_style_icon_landscape_pill">Portrait Mx</string>
<string name="status_bar_battery_style_icon_landscape_line">Landscape Lorn</string>
<string name="status_bar_battery_style_icon_landscape_musku">Portrait IOS</string>
<string name="status_bar_battery_style_icon_landscape_signal">Landscape Airoo</string>
<string name="status_bar_battery_style_icon_landscape_buddy">Landscape Capsule</string>
<string name="status_bar_battery_style_circle">Circle</string>
<string name="status_bar_battery_style_dotted_circle">Circle (Dotted)</string>
<string name="status_bar_battery_style_filled_circle">Circle (Filled)</string>
<string name="status_bar_battery_style_big_circle">Big circle</string>
<string name="status_bar_battery_style_big_dotted_circle">Big dotted circle</string>
<string name="status_bar_battery_style_text">Text</string>
<string name="status_bar_battery_style_hidden">Hidden</string>
<string name="status_bar_battery_percentage_default">Hidden (default)</string>
<string name="status_bar_battery_percentage_text_inside">Inside the icon</string>
<string name="status_bar_battery_percent_text_next_right">Next to the icon (right)</string>
<string name="status_bar_battery_percent_text_next_left">Next to the icon (left)</string>
<string name="status_bar_battery_text_charging_title">Battery percentage when charging</string>
<string name="status_bar_battery_text_charging_summary">Always display battery percentage when charging</string>
<!-- QS battery -->
<string name="qs_battery_category_title">In QS Panel</string>
<string name="qs_use_status_bar_battery_style">Follow status bar style</string>
<!-- Statusbar Clock background chip -->
<string name="statusbar_clock_chip_title">Background chip</string>
<string name="statusbar_clock_chip_summary">Display accented chip behind clock</string>
<!-- Quick Settings brightness slider -->
<string name="qs_show_brightness_slider_title">Brightness slider</string>
<string name="qs_show_brightness_slider_never">Never show</string>
<string name="qs_show_brightness_slider_expanded">Show when expanded</string>
<string name="qs_show_brightness_slider_always">Show always</string>
<string name="qs_show_brightness_slider_not_expanded">Show when not expanded</string>
<string name="qs_brightness_slider_position_title">Position</string>
<string name="qs_brightness_slider_position_top">Top</string>
<string name="qs_brightness_slider_position_bottom">Bottom</string>
<!-- Quick Settings brightness icon -->
<string name="qs_show_auto_brightness_title">Auto brightness icon</string>
<string name="qs_show_auto_brightness_summary">Show toggle for adaptive brightness near the slider</string>
<!-- Laboratory - Ignore window secure -->
<string name="laboratory_ignore_window_secure_title">Ignore window secure flags</string>
<string name="laboratory_ignore_window_secure_summary">This removes the screenshots and screenrecords limits for all applications. Normally, special applications are replaced with black areas in records. This can be convenient in some cases but may lead to privacy leaks. After changing this toggle, you may need to restart applications for the change to take effect.</string>
<!-- Lockscreen battery info -->
<string name="lockscreen_charging_info_title">Show charging info in lockscreen</string>
<string name="lockscreen_charging_info_summary">Shows temperature, charging current and more while plugged in</string>
<!-- QS Transparency -->
<string name="qs_transparency_title">Background transparency</string>
<string name="qs_transparency_summary">Set transparency level for QS background</string>
<string name="click_partial_screenshot_title">Click to partial screenshot</string>
<string name="click_partial_screenshot_summary">Short click Volume Down and Power to take partial screenshot</string>
<!-- Brightness control -->
<string name="status_bar_brightness_control_title">Brightness control</string>
<string name="status_bar_brightness_control_summary">Adjust brightness by sliding across the status bar</string>
<!-- Power menu on lockscreen -->
<string name="power_menu_hide_on_secure_title">Hide power menu on lock screen</string>
<string name="power_menu_hide_on_secure_summary">This will hide the power menu only on a secure lock screen</string>
<!-- Hide Status bar on lock screen -->
<string name="hide_lockscreen_status_bar_title">Hide status bar</string>
<string name="hide_lockscreen_status_bar_summary">Touch status bar to toggle visibility</string>
<!-- Navigation bar -->
<string name="navigation_bar_category">Navigation bar</string>
<string name="navigation_bar_title">On-screen navigation bar</string>
<string name="navigation_bar_summary">Enable on-screen navigation keys</string>
<string name="navigation_bar_arrow_keys_title">Show arrow keys while typing</string>
<string name="navigation_bar_arrow_keys_summary">Display left and right cursor buttons in navigation bar while typing</string>
<string name="navigation_bar_compact_layout_title">Compact layout</string>
<string name="navigation_bar_compact_layout_summary">Use a compact layout in the navigation bar</string>
<string name="system_navigation_summary">Choose which system navigation style to use</string>
<string name="navbar_layout_category_title">Layout</string>
<!-- Volume rocker wake -->
<string name="volume_rocker_wake_title">Volume rocker wake</string>
<string name="volume_rocker_wake_summary">Pressing the volume keys will wake your device</string>
<string name="volume_category">Volume rocker</string>
<!-- Volume Steps Fragment -->
<string name="volume_steps_fragment_title">Volume steps</string>
<string name="volume_steps_summary">Customize volume steps</string>
<string name="volume_steps_alarm_title">Volume steps: Alarm</string>
<string name="volume_steps_dtmf_title">Volume steps: DTMF</string>
<string name="volume_steps_music_title">Volume steps: Media</string>
<string name="volume_steps_notification_title">Volume steps: Notification</string>
<string name="volume_steps_ring_title">Volume steps: Ringer</string>
<string name="volume_steps_system_title">Volume steps: System</string>
<string name="volume_steps_voice_call_title">Volume steps: Voice Call</string>
<string name="volume_steps_reset">Reset</string>
<!-- Buttons - Enable navbar -->
<string name="disable_navkeys_title">Enable on-screen nav bar</string>
<string name="disable_navkeys_summary">Enable on-screen navigation bar and disable hardware buttons</string>
<!-- Buttons - Swap capacitive keys -->
<string name="swap_capacitive_keys_title">Swap capacitive buttons</string>
<string name="swap_capacitive_keys_summary">Swap the order of recents and back buttons</string>
<!-- HW keys -->
<string name="hardware_keys_title">Buttons</string>
<string name="hardware_keys_category">Hardware navigation buttons</string>
<string name="hardware_keys_disable_title">Disable hardware buttons</string>
<string name="hardware_keys_disable_summary">Use the device hardware keys for navigation</string>
<string name="hardware_keys_volume_keys_title">Volume rocker</string>
<!-- Hardware button navigation -->
<string name="picker_activities">Activities</string>
<string name="select_custom_app_title">Select custom app</string>
<string name="select_custom_activity_title">Select custom activity</string>
<string name="profile_applist_title">Applications</string>
<string name="choose_action_title">Choose action</string>
<string name="action_entry_default_action">Default settings</string>
<string name="action_entry_select_app">Select application</string>
<string name="action_entry_custom_action">Select custom action</string>
<string name="hardware_keys_home_key_title">Home button</string>
<string name="hardware_keys_back_key_title">Back button</string>
<string name="hardware_keys_menu_key_title">Menu button</string>
<string name="hardware_keys_assist_key_title">Search button</string>
<string name="hardware_keys_appswitch_key_title">Recents button</string>
<string name="hardware_keys_camera_key_title">Camera button</string>
<string name="hardware_keys_short_press_title">Short press action</string>
<string name="hardware_keys_double_tap_summary">Set double tap action</string>
<string name="hardware_keys_single_tap_summary">Set single tap action</string>
<string name="hardware_keys_long_press_summary">Set long press action</string>
<string name="hardware_keys_single_tap_title">Single tap action</string>
<string name="hardware_keys_long_press_title">Long press action</string>
<string name="hardware_keys_double_tap_title">Double tap action</string>
<string name="hardware_keys_action_nothing">No action</string>
<string name="hardware_keys_action_menu">Open/close menu</string>
<string name="hardware_keys_action_app_switch">Recent apps switcher</string>
<string name="hardware_keys_action_search">Search assistant</string>
<string name="hardware_keys_action_voice_search">Voice search</string>
<string name="hardware_keys_action_in_app_search">In-app search</string>
<string name="hardware_keys_action_launch_camera">Launch camera</string>
<string name="hardware_keys_action_sleep">Turn screen off</string>
<string name="hardware_keys_action_split_screen">Split screen</string>
<string name="hardware_keys_action_close_app">Kill app</string>
<string name="hardware_keys_action_torch">Flashlight</string>
<string name="hardware_keys_action_screenshot">Screenshot</string>
<string name="hardware_keys_action_volume_panel">Toggle volume panel</string>
<string name="hardware_keys_action_clear_all_notifications">Clear all notifications</string>
<string name="hardware_keys_action_notifications_panel">Toggle notifications panel</string>
<string name="hardware_keys_action_toggle_qs_panel">Toggle QS panel</string>
<string name="hardware_keys_action_ringer_modes">Ringer modes</string>
<string name="hardware_keys_swipe_right_key_title">Swipe right</string>
<string name="hardware_keys_swipe_left_key_title">Swipe left</string>
<string name="hardware_keys_long_tap_key_title">Long tap</string>
<string name="hardware_keys_swipe_tap_title">Swipe action</string>
<string name="hardware_keys_long_tap_title">Long tap action</string>
<string name="button_wake_title">Wake device</string>
<string name="button_wake_summary">Wake device by pressing the button</string>
<string name="camera_sleep_on_release_title">Screen peek</string>
<string name="camera_sleep_on_release_summary">A half press will keep the screen on only while the button is held down</string>
<string name="camera_launch_title">Launch camera</string>
<string name="camera_launch_summary">A longpress and release will launch camera</string>
<string name="cursor_section_header">Cursor</string>
<string name="volume_key_cursor_control_title">Keyboard cursor control</string>
<string name="volume_key_cursor_control_off">Disabled</string>
<string name="volume_key_cursor_control_on">Volume Up/Down - Cursor Left/Right</string>
<string name="volume_key_cursor_control_on_reverse">Volume Up/Down - Cursor Right/Left</string>
<string name="swap_volume_buttons_title">Reorient</string>
<string name="swap_volume_buttons_summary">Swap volume buttons when the screen is rotated</string>
<string name="volume_panel_on_left_title">Show volume panel on left</string>
<string name="volume_panel_on_left_summary">Display volume panel on the left side of the screen</string>
<!-- Alert Slider Notifications (OnePlus devices) -->
<string name="alert_slider_notifications_title">Alert slider notifications</string>
<string name="alert_slider_notifications_summary">Display notification when changing alert slider position</string>
<!-- Power Menu -->
<string name="power_menu_title">Power menu</string>
<string name="power_menu_title_summary">View or change power menu entries</string>
<string name="powermenu_screenshot">Screenshot</string>
<string name="powermenu_power">Power</string>
<string name="powermenu_advanced">Advanced reboot options</string>
<string name="powermenu_restart">Restart</string>
<string name="powermenu_airplane">Airplane</string>
<string name="powermenu_settings">Settings</string>
<string name="powermenu_lockdown">Lock Down</string>
<string name="powermenu_soundpanel">Sound Panel</string>
<string name="powermenu_users">Users</string>
<string name="powermenu_logout">Logout</string>
<string name="powermenu_emergency">Emergency</string>
<!-- Unlock FPS for specific games -->
<string name="use_games_spoof_title">Unlock higher FPS in games</string>
<string name="use_games_spoof_summary">Spoof your device as a different model for specific games to unlock higher FPS</string>
<!-- Unlimited google photos storage -->
<string name="use_photos_spoof_title">Unlimited Photos storage</string>
<string name="use_photos_spoof_summary">Spoof your device as Pixel XL for Google Photos app only to provide unlimited storage for backup</string>
<!-- Notification guts kill app button -->
<string name="notification_guts_kill_app_button_title">Force stop button</string>
<string name="notification_guts_kill_app_button_summary">Show force stop button in the notification\'s longpress menu</string>
<!-- Toast app icon -->
<string name="toast_icon_title">Toast app icon</string>
<string name="toast_icon_summary">Display the app\'s icon corresponding with the toast</string>
<!-- AOD Schedule -->
<string name="always_on_display_schedule_title">Always on display schedule</string>
<string name="always_on_display_schedule_sunset">Sunset</string>
<string name="always_on_display_schedule_sunrise">Sunrise</string>
<string name="always_on_display_schedule_mixed_sunset">Turns on from sunset till a time</string>
<string name="always_on_display_schedule_mixed_sunrise">Turns on from a time till sunrise</string>
<!-- Status bar - Clock -->
<string name="status_bar_clock_title">Clock &amp; date</string>
<string name="status_bar_clock_summary">Customize clock &amp; date</string>
<string name="status_bar_clock_seconds_title">Clock seconds</string>
<string name="status_bar_clock_seconds_summary">Display seconds next to clock in status bar</string>
<string name="status_bar_clock_position_title">Clock style</string>
<string name="status_bar_clock_position_right">Right</string>
<string name="status_bar_clock_position_left">Left</string>
<string name="status_bar_clock_position_center">Center</string>
<string name="status_bar_clock_position_hidden">Hidden</string>
<string name="status_bar_clock_auto_hide_title">Auto hide</string>
<string name="status_bar_clock_auto_hide_launcher_summary">Hide clock if launcher is visible</string>
<string name="status_bar_clock_auto_hide_summary">Hide clock at regular interval</string>
<string name="status_bar_clock_auto_hide_hdur_title">Hide duration</string>
<string name="status_bar_clock_auto_hide_hdur_summary">Number of seconds to hide clock</string>
<string name="status_bar_clock_auto_hide_sdur_title">Show duration</string>
<string name="status_bar_clock_auto_hide_sdur_summary">Number of seconds to wait before hiding clock</string>
<string name="status_bar_am_pm_title">AM/PM style</string>
<string name="status_bar_am_pm_info">24-hour clock is enabled</string>
<string name="status_bar_am_pm_normal">Normal</string>
<string name="status_bar_am_pm_small">Small</string>
<string name="status_bar_am_pm_hidden">Hidden</string>
<string name="status_bar_date_title">Date</string>
<string name="status_bar_date_none">Hidden</string>
<string name="status_bar_date_small">Small</string>
<string name="status_bar_date_normal">Normal</string>
<string name="status_bar_date_format_title">Date format</string>
<string name="status_bar_date_style">Date style</string>
<string name="status_bar_date_style_normal">Normal</string>
<string name="status_bar_date_style_lowercase">Lowercase</string>
<string name="status_bar_date_style_uppercase">Uppercase</string>
<string name="status_bar_date_format_custom">Custom java format</string>
<string name="status_bar_date_string_edittext_title">Must be in DateFormat eg. MM/dd/yy</string>
<string name="status_bar_date_string_edittext_summary">Enter string</string>
<string name="clock_date_position">Date position</string>
<string name="clock_date_right">Right of time</string>
<string name="clock_date_left">Left of time</string>
<string name="clock_font_size_title">Clock font size</string>
<!-- QS clock -->
<string name="qs_clock_title">Clock</string>
<string name="qs_clock_summary">Display clock in quick status bar header</string>
<!-- QS date -->
<string name="qs_date_title">Date</string>
<string name="qs_date_summary">Display date in quick status bar header</string>
<!-- Footer -->
<string name="qs_footer_category">QS Footer</string>
<string name="qs_footer_datausage_title">Data usage</string>
<string name="qs_footer_datausage_summary">Display data usage summary in quick settings footer</string>
<!-- Edge light -->
<string name="edge_light_title">Edge light</string>
<string name="enable_edge_light">Enable Edge Light</string>
<string name="edge_light_intro_text">Display an animation along the edges of the screen when pulsing</string>
<string name="edge_light_always_trigger_on_pulse_title">Always trigger on pulse</string>
<string name="edge_light_always_trigger_on_pulse_summary">Whether to show edge light whenever ambient display is shown and not just for notifications</string>
<string name="edge_light_repeat_animation_title">Repeat animation</string>
<string name="edge_light_repeat_animation_summary_on">Repeat until timeout</string>
<string name="edge_light_repeat_animation_summary_off">Show only once</string>
<string name="edge_light_color_mode_title">Edge light color mode</string>
<string name="accent_color">Accent color (Default)</string>
<string name="notification_color">Notification color</string>
<string name="wallpaper_color">Wallpaper color</string>
<string name="custom_color">Custom color</string>
<string name="edge_light_custom_color_title">Custom color</string>
<!-- Custom settings dashboard style -->
<string name="settings_dashboard_style_title">Settings layout</string>
<string name="settings_dashboard_style_aosp">Aosp</string>
<string name="settings_dashboard_style_oos11">OxygenOS 11</string>
<string name="settings_dashboard_style_oos12">OxygenOS 12</string>
<string name="settings_dashboard_style_cherish">Cherish</string>
<string name="settings_dashboard_style_cherish_clean">Cherish Clean</string>
<string name="settings_layout_category_title">Settings UI interface</string>
<string name="settings_base_style_title">Settings Base layout</string>
<string name="settings_base_style_summary">Use an alternative layout for setting menus</string>
<string name="settings_home_style_title">Settings Home layout</string>
<string name="settings_home_style_summary">Use stock aosp layout for homepage</string>
<string name="disable_usercard_title">Settings UserCard</string>
<string name="disable_usercard_summary">Toggle in order not to show the usercard on main settings page</string>
<!-- Lockscreen Clocks -->
<string name="lock_screen_custom_clock_face_category">Lockscreen Clock</string>
<string name="lock_screen_custom_clock_face_title">Lockscreen clock style</string>
<string name="lock_screen_custom_clock_face_default">Default</string>
<string name="lock_screen_custom_clock_face_sfunny">Sfuny</string>
<string name="lock_screen_custom_clock_face_oos">OOS</string>
<string name="lock_screen_custom_clock_face_clockertino">Clockertino</string>
<string name="lock_screen_custom_clock_face_spark">Spark</string>
<string name="lock_screen_custom_clock_face_spark_circle">Spark Circle</string>
<!-- UDFPS Haptic Feedback -->
<string name="udfps_haptic_feedback_title">UDFPS haptic feedback</string>
<string name="udfps_haptic_feedback_summary">Vibrate when touching UDFPS icon</string>
<!-- Udfps authentication / error vibration -->
<string name="udfps_success_vib_title">Udfps authentication vibration</string>
<string name="udfps_success_vib_summary">Vibrate on successful fingerprint authentication</string>
<string name="udfps_error_vib_title">Udfps error vibration</string>
<string name="udfps_error_vib_summary">Vibrate on unsuccessful fingerprint authentication</string>
<!-- UDFPS Recog Animation -->
<string name="udfps_customization">UDFPS customization</string>
<string name="udfps_recog_animation">UDFPS animation</string>
<string name="udfps_recog_animation_summary">Shows an animation while reading your finger</string>
<string name="udfps_recog_animation_effect_title">UDFPS custom animation</string>
<string name="udfps_recog_animation_effect_summary">Choose animation effect</string>
<string name="udfps_settings_title">UDFPS settings</string>
<string name="udfps_settings_summary">Settings for customizing the UDFPS</string>
<!-- UDFPS icon picker -->
<string name="udfps_icon_picker_title">UDFPS icon picker</string>
<string name="udfps_icon_picker_summary">Choose your favorite fingerprint icon</string>
<!-- Custom FOD Icon -->
<string name="custom_fp_icon_title">Custom UDFPS Icon</string>
<string name="custom_fp_icon_summary">Enable custom UDFPS Icon from files</string>
<string name="custom_fp_select_title">Select Custom UDFPS Icon</string>
<string name="custom_fp_select_summary">Select custom image from your saved files or gallery</string>
<!-- UDFPS pressed color -->
<string name="udfps_pressed_color_title">Udfps pressed color</string>
<string name="udfps_pressed_color_summary">Choose your favorite udfps pressed color</string>
<!-- Fingerprint Ripple Effect -->
<string name="enable_fingerprint_ripple_effect_title">Ripple effect</string>
<string name="enable_fingerprint_ripple_effect_summary">Show ripple effect on unlock with fingerprint</string>
<!-- reTicker -->
<string name="reticker_title">reTicker</string>
<string name="reticker_summary">Replace heads-up notification with slim and less invasive version of redesigned ticker</string>
<string name="new_reticker_title">Alternative reTicker</string>
<string name="new_reticker_summary">Use an alternative layout for reticker that is inspired from ios</string>
<string name="new_reticker_animation_title">Alternative reTicker animation</string>
<string name="new_reticker_animation_summary">Use a different animation for reticker (enabled by default on alternative reTicker)</string>
<string name="reticker_colored_title">Use app colored background</string>
<string name="reticker_colored_summary">Replace reTicker background color using notification app main color</string>
<!-- VoWiFi icon -->
<string name="vowifi_icon_title">VoWiFi icon</string>
<string name="vowifi_icon_enabled">VoWiFi icon enabled</string>
<string name="vowifi_icon_disabled">VoWiFi icon disabled</string>
<string name="vowifi_icon_enabled_volte_disabled">VoWiFi instead of VoLTE icon</string>
<string name="vowifi_icon_style_title">VoWiFi icon style</string>
<string name="vowifi_icon_default">Default Icon</string>
<string name="vowifi_icon_emui">EMUI Icon</string>
<string name="vowifi_icon_asus">Asus Icon</string>
<string name="vowifi_icon_oneplus">OOS Icon</string>
<string name="vowifi_icon_moto">Motorola Icon</string>
<string name="vowifi_icon_simple1">Simple1 Icon</string>
<string name="vowifi_icon_simple2">Simple2 Icon</string>
<string name="vowifi_icon_simple3">Simple3 Icon</string>
<string name="vowifi_icon_vivo">Vivo Icon</string>
<string name="vowifi_icon_margaritov">Margaritov Icon</string>
<!-- Privacy Indicator -->
<string name="mic_camera_privacy_indicator_title">Mic and camera privacy indicator</string>
<string name="mic_camera_privacy_indicator_summary">Show indicator when any app uses mic or camera</string>
<string name="location_privacy_indicator_title">Location privacy indicator</string>
<string name="location_privacy_indicator_summary">Show indicator when any app uses location</string>
<string name="projection_privacy_indicator_title">Media projection privacy indicator</string>
<string name="projection_privacy_indicator_summary">Show indicator when device screen is projected</string>
<!-- Notification count -->
<string name="statusbar_notif_count_title">Show notification count</string>
<string name="statusbar_notif_count_summary">Display the number of pending notifications</string>
<!-- Statusbar colored icons -->
<string name="statusbar_colored_icons_title">Colored icons</string>
<string name="statusbar_colored_icons_summary">Use proper app icons for notification icons in statusbar</string>
<!-- Bluetooth status -->
<string name="bluetooth_battery_title">Bluetooth battery status</string>
<string name="bluetooth_battery_summary">Display battery status for the connected bluetooth device, if available</string>
<!-- Torch Power button gestures -->
<string name="torch_power_button_gesture_title">Toggle torch when screen off</string>
<string name="torch_power_button_gesture_none">Disabled</string>
<string name="torch_power_button_gesture_dt">Double tap power button (slower single tap response), Disables double power tap for camera.</string>
<string name="torch_power_button_gesture_dt_toast">Jump to camera gesture is now disabled</string>
<string name="torch_power_button_gesture_lp">Long press power button</string>
<!-- App lock -->
<string name="app_lock_title">App lock</string>
<string name="app_lock_summary">Apps will require fingerprint authentication to launch</string>
<string name="app_lock_authentication_dialog_title">Unlock</string>
<string name="enable_debugging">Enable debugging</string>
<string name="disable_debugging">Disable debugging</string>
<string name="app_lock_packages_title">Protected apps</string>
<string name="app_lock_packages_summary">Select the apps to protect with biometrics or device credentials</string>
<string name="app_lock_timeout_title">Auto lock timeout</string>
<string name="app_lock_timeout_summary">Duration of time after which an unlocked app in background should be locked</string>
<string name="app_lock_notifications_title">Redact notifications</string>
<string name="app_lock_notifications_summary"> Notification content will be hidden and collapsed for selected apps when they are locked.
Heads up notifications will be automatically disabled.
</string>
<string name="app_lock_notifications_disabled_summary">Protect an application first</string>
<string name="app_lock_biometrics_allowed_title">Enable biometrics for unlocking</string>
<string name="app_lock_footer_text">Bubbles will be automatically dismissed after timeout</string>
<string name="enable_protection">Enable protection</string>
<!-- Power menu Animations -->
<string name="power_menu_animation_title">Power menu animation</string>
<string name="power_menu_animation_dialog_title">Select power menu animation</string>
<string name="power_menu_animation_aosp">AOSP (default)</string>
<string name="power_menu_animation_bottom">Bottom</string>
<string name="power_menu_animation_top">Top</string>
<string name="power_menu_animation_xylon">Fly</string>
<string name="power_menu_animation_slide">Slide</string>
<string name="power_menu_animation_turn">Turn</string>
<string name="power_menu_animation_fly">Glow</string>
<string name="power_menu_animation_card">3D</string>
<string name="power_menu_animation_translucent_top">Translucent (top)</string>
<string name="power_menu_animation_translucent_bottom">Translucent (bottom)</string>
<string name="power_menu_animation_rotate">Rotate</string>
<!-- QS tiles animations category -->
<string name="qs_tile_animation_category_title">QS Tiles</string>
<!-- Tiles animation style -->
<string name="qs_tile_animation_style_title">Animation style</string>
<string name="qs_tile_animation_duration_title">Animation duration</string>
<string name="qs_tile_animation_interpolator_title">Tiles animation interpolator</string>
<string name="qs_tile_animation_style_off">No animation</string>
<string name="qs_tile_animation_style_flip">Flip</string>
<string name="qs_tile_animation_style_rotate">Rotate</string>
<string name="qs_tile_animation_duration_low">Low</string>
<string name="qs_tile_animation_duration_default">Default</string>
<string name="qs_tile_animation_duration_fast">Fast</string>
<string name="qs_tile_animation_duration_quite_fast">Quite fast</string>
<string name="qs_tile_animation_duration_super_fast">Super fast</string>
<string name="qs_tile_animation_interpolator_linearInterpolator">Linear</string>
<string name="qs_tile_animation_interpolator_accelerateInterpolator">Accelerate</string>
<string name="qs_tile_animation_interpolator_decelerateInterpolator">Decelerate</string>
<string name="qs_tile_animation_interpolator_accelerateDecelerateInterpolator">Accelerate decelerate</string>
<string name="qs_tile_animation_interpolator_bounceInterpolator">Bounce</string>
<string name="qs_tile_animation_interpolator_overshootInterpolator">Overshoot</string>
<string name="qs_tile_animation_interpolator_anticipateInterpolator">Anticipate</string>
<string name="qs_tile_animation_interpolator_anticipateOvershootInterpolator">Anticipate overshoot</string>
<string name="qs_set_animation_style">%1$s</string>
<string name="qs_set_animation_duration">%1$s</string>
<string name="qs_set_animation_interpolator">%1$s</string>
<!-- Power menu and dialogs opacity -->
<string name="power_menu_transparency">Power/reboot menu opacity</string>
<string name="power_menu_dialog_dim">Power/reboot dialog dim background amount</string>
<!-- Black theme -->
<string name="custom_theme_title">Use Custom theme</string>
<string name="custom_theme_summary">Force custom background colors</string>
<string name="custom_theme_default">Default</string>
<string name="custom_theme_black">Black</string>
<string name="custom_theme_clear">Clear</string>
<string name="custom_theme_vivid">Vivid(Monet)</string>
<!-- Pulse music visualizer -->
<string name="pulse_help_policy_notice_title">About Pulse</string>
<string name="pulse_help_policy_notice_summary">Pulse is a brilliant audio graphic equalizer when music plays on the device</string>
<string name="pulse_settings">Pulse</string>
<string name="pulse_settings_summary">Audio graphic equalizer for navigation bar and lockscreen</string>
<string name="show_navbar_pulse_title">Navbar Pulse</string>
<string name="show_navbar_pulse_summary">Audio graphic equalizer on the navigation bar</string>
<string name="show_lockscreen_pulse_title">Lockscreen Pulse</string>
<string name="show_lockscreen_pulse_summary">Audio graphic equalizer on the lockscreen</string>
<string name="show_ambient_pulse_title">Ambient Pulse</string>
<string name="show_ambient_pulse_summary">Audio graphic equalizer on the ambient screen</string>
<string name="pulse_render_mode_title">Render mode</string>
<string name="pulse_render_mode_fading_bars">Fading blocks</string>
<string name="pulse_render_mode_solid_lines">Solid lines</string>
<string name="pulse_legacy_mode_advanced_category">Fading blocks mode settings</string>
<string name="pulse_custom_fudge_factor">Sanity level</string>
<string name="pulse_lavalamp_speed_title">Lava lamp speed</string>
<string name="pulse_solid_units_count">Solid lines count</string>
<string name="pulse_solid_units_opacity">Solid lines opacity</string>
<string name="pulse_solid_units_rounded_title">Rounded corners</string>
<string name="pulse_solid_units_rounded_summary">Solid lines with rounded tip</string>
<string name="pulse_solid_dimen_category">Solid lines mode settings</string>
<string name="pulse_color_mode_title">Color</string>
<string name="pulse_color_accent">Accent</string>
<string name="pulse_color_custom">Custom</string>
<string name="pulse_color_lava_lamp">Lava lamp</string>
<string name="pulse_color_user_title">Choose color</string>
<string name="pulse_smoothing_enabled_title">Turn on smoothing</string>
<string name="pulse_smoothing_enabled_summary">Each bar is animated more smoothly</string>
<string name="pulse_custom_dimen">Bar width</string>
<string name="pulse_custom_div">Bar spacing</string>
<string name="pulse_filled_block_size">Block size</string>
<string name="pulse_empty_block_size">Block spacing</string>
<!-- Pulse Gravity n Mirror Options -->
<string name="pulse_custom_gravity_title">Gravity</string>
<string name="pulse_custom_gravity_bottom">Bottom</string>
<string name="pulse_custom_gravity_top">Top</string>
<string name="pulse_custom_gravity_center">Center</string>
<string name="visualizer_center_mirrored_title">Center mirrored</string>
<string name="visualizer_center_mirrored_summary">Set the visualizer in center mirrored mode</string>
<string name="pulse_vertical_mirror_title">Vertical Mirror</string>
<string name="pulse_vertical_mirror_summary">Create other pulse and flip vertically</string>
<!-- Smart charging -->
<string name="smart_charging_title">Smart Charging</string>
<string name="smart_charging_summary">Set maximum charging level</string>
<string name="smart_charging_switch_title">Enable Smart Charging</string>
<string name="smart_charging_level_title">Stop trigger level</string>
<string name="smart_charging_resume_level_title">Start trigger level</string>
<string name="smart_charging_reset_stats_title">Reset battery statistics</string>
<string name="smart_charging_reset_stats_summary">Reset battery statistics after reaching user defined charging level</string>
<string name="smart_charging_footer">Smart Charging allows you to set maximum charging level to extend the lifespan of your battery. When enabled, battery stops charging at Stop trigger level and resumes charging at Start trigger level. Stop trigger level should be always greater than Start trigger level.</string>
<!-- Quick settings styling -->
<string name="qs_styling">Quick Settings UI</string>
<string name="qs_styles_title">QS Panel Styles</string>
<string name="qs_outline">QS Outline Style</string>
<string name="qs_two_tone">QS Two-Tone Accent</string>
<string name="qs_color_pop">QS Color Pop</string>
<!-- QS tiles layout direction: vertical or horizontal -->
<string name="qs_tile_layout_category_title">Tile layout</string>
<string name="qs_tile_layout_title">Title Alignment</string>
<string name="qs_tile_layout_summary">Enable for centered layout.</string>
<!-- QS tiles title visibility -->
<string name="qs_tile_title_visibility_title">Hide tile titles</string>
<string name="qs_tile_title_visibility_summary">Toggle to hide tile titles</string>
<!-- QS tiles layout -->
<string name="qs_layout_category_title">Tiles layout</string>
<string name="qs_tile_label_hide_title">Hide label</string>
<string name="qs_tile_label_hide_summary">Only show icon in tile</string>
<string name="qs_tile_label_size_title">Label text size</string>
<string name="qs_columns_portrait_title">Columns (portrait)</string>
<string name="qs_columns_landscape_title">Columns (landscape)</string>
<!-- Squiggle animation -->
<string name="show_squiggle_animation_title">Show squiggle animation</string>
<string name="show_squiggle_animation_summary">Show media panel squiggle animation, after change need to switch music, pause music or move the progress bar to apply</string>
<!-- QS footer warnings -->
<string name="qs_footer_warnings_title">Footer alerts</string>
<string name="qs_footer_warnings_summary">Display an alert at bottom of QS panel when network is monitored by external apps or VPN</string>
<!-- QS footer icons -->
<string name="qs_footer_users_icon_title">User account icon</string>
<string name="qs_footer_users_icon_summary">Display multiuser accessibility icon when available</string>
<string name="qs_footer_edit_icon_title">Edit tiles icon</string>
<string name="qs_footer_show_power_menu_title">Power menu shortcut</string>
<string name="qs_footer_services_icon_title">Running services shortcut</string>
<string name="qs_footer_settings_icon_title">Settings shortcut</string>
<!-- Wifi/Bluetooth auto timeout -->
<string name="wifi_timeout">WiFi timeout</string>
<string name="wifi_timeout_summary">Do not automatically turn off WiFi</string>
<string name="wifi_timeout_summary_auto">WiFi will turn off after <xliff:g id="timeout_description">%1$s</xliff:g> if no network connected</string>
<string name="bluetooth_timeout">Bluetooth timeout</string>
<string name="bluetooth_timeout_summary">Do not automatically turn off Bluetooth</string>
<string name="bluetooth_timeout_summary_auto">Bluetooth will turn off after <xliff:g id="timeout_description">%1$s</xliff:g> if no devices connected</string>
<string name="custom_timeout_summary_never">Never</string>
<string name="custom_timeout_summary_15secs">15 seconds</string>
<string name="custom_timeout_summary_30secs">30 seconds</string>
<string name="custom_timeout_summary_1min">1 minute</string>
<string name="custom_timeout_summary_2mins">2 minutes</string>
<string name="custom_timeout_summary_5mins">5 minutes</string>
<string name="custom_timeout_summary_10mins">10 minutes</string>
<string name="custom_timeout_summary_30mins">30 minutes</string>
<string name="custom_timeout_summary_1hour">1 hour</string>
<string name="custom_timeout_summary_2hours">2 hours</string>
<string name="custom_timeout_summary_4hours">4 hours</string>
<string name="custom_timeout_summary_8hours">8 hours</string>
<!-- Combined signal icons in status bar -->
<string name="combined_status_bar_signal_icons_title">Combined signal icons</string>
<string name="combined_status_bar_signal_icons_summary">Enable combined signal icons(SystemUI will automatically restart upon toggling)</string>
</resources>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -13,36 +13,65 @@
-->
<resources xmlns:xliff="urn:oasis:names:tc:xliff:document:1.2">
<!-- Torch Power button gestures -->
<string-array name="torch_power_button_gesture_entries">
<item>@string/torch_power_button_gesture_none</item>
<item>@string/torch_power_button_gesture_dt</item>
<item>@string/torch_power_button_gesture_lp</item>
</string-array>
<string-array name="torch_power_button_gesture_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<!-- Heads up timeout -->
<string-array name="heads_up_time_out_entries" translatable="false">
<item>@string/heads_up_time_out_2sec</item>
<item>@string/heads_up_time_out_4sec</item>
<item>@string/heads_up_time_out_5sec</item>
<item>@string/heads_up_time_out_6sec</item>
<item>@string/heads_up_time_out_8sec</item>
<item>@string/heads_up_time_out_10sec</item>
</string-array>
<string-array name="heads_up_time_out_values" translatable="false">
<item>2000</item>
<item>4000</item>
<item>5000</item>
<item>6000</item>
<item>8000</item>
<item>10000</item>
</string-array>
<!-- Heads up snooze -->
<string-array name="heads_up_snooze_entries">
<item>@string/disabled</item>
<item>@string/heads_up_snooze_1min</item>
<item>@string/heads_up_snooze_5min</item>
<item>@string/heads_up_snooze_10min</item>
<item>@string/heads_up_snooze_15min</item>
<item>@string/heads_up_snooze_20min</item>
</string-array>
<string-array name="heads_up_snooze_values" translatable="false">
<item>0</item>
<item>60000</item>
<item>300000</item>
<item>600000</item>
<item>900000</item>
<item>1200000</item>
</string-array>
<!-- Quick QS pulldown -->
<string-array name="quick_pulldown_entries">
<item>@string/quick_pulldown_none</item>
<item>@string/quick_pulldown_right</item>
<item>@string/quick_pulldown_left</item>
<item>@string/quick_pulldown_always</item>
<item>@string/quick_pulldown_none</item>
<item>@string/quick_pulldown_right</item>
<item>@string/quick_pulldown_left</item>
</string-array>
<string-array name="quick_pulldown_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<!-- Lockscreen album art filter -->
<string-array name="lockscreen_albumart_filter_entries">
<item>@string/none_string</item>
<item>@string/lockscreen_albumart_filter_grayscale</item>
<item>@string/lockscreen_albumart_filter_tint</item>
<item>@string/lockscreen_albumart_filter_blur</item>
<item>@string/lockscreen_albumart_filter_grayblur</item>
</string-array>
<string-array name="lockscreen_albumart_filter_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<!-- VoLTE Icon Type -->
@@ -86,7 +115,7 @@
<item>2</item>
<item>1</item>
<item>0</item>
<item>11</item>
<item>11</item>
<item>12</item>
<item>13</item>
<item>14</item>
@@ -102,23 +131,223 @@
<item>24</item>
</string-array>
<!-- Battery -->
<string-array name="status_bar_battery_percent_entries" translatable="false">
<item>@string/status_bar_battery_percentage_default</item>
<item>@string/status_bar_battery_percentage_text_inside</item>
<item>@string/status_bar_battery_percent_text_next_right</item>
<item>@string/status_bar_battery_percent_text_next_left</item>
<!-- VoWiFi Icon -->
<string-array name="vowifi_icon_entries" translatable="false">
<item>@string/vowifi_icon_disabled</item>
<item>@string/vowifi_icon_enabled</item>
<item>@string/vowifi_icon_enabled_volte_disabled</item>
</string-array>
<string-array name="status_bar_battery_percent_values" translatable="false">
<string-array name="vowifi_icon_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<!-- VoWiFi icon style -->
<string-array name="vowifi_icon_style_entries" translatable="false">
<item>@string/vowifi_icon_default</item>
<item>@string/vowifi_icon_oneplus</item>
<item>@string/vowifi_icon_moto</item>
<item>@string/vowifi_icon_asus</item>
<item>@string/vowifi_icon_emui</item>
<item>@string/vowifi_icon_simple1</item>
<item>@string/vowifi_icon_simple2</item>
<item>@string/vowifi_icon_simple3</item>
<item>@string/vowifi_icon_vivo</item>
<item>@string/vowifi_icon_margaritov</item>
</string-array>
<string-array name="vowifi_icon_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
</string-array>
<!-- Tiles animation style -->
<string-array name="qs_tile_animation_style_entries" translatable="false">
<item>@string/qs_tile_animation_style_off</item>
<item>@string/qs_tile_animation_style_flip</item>
<item>@string/qs_tile_animation_style_rotate</item>
</string-array>
<string-array name="qs_tile_animation_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<!-- Tiles animation duration -->
<string-array name="qs_tile_animation_duration_entries" translatable="false">
<item>@string/qs_tile_animation_duration_low</item>
<item>@string/qs_tile_animation_duration_default</item>
<item>@string/qs_tile_animation_duration_fast</item>
</string-array>
<string-array name="qs_tile_animation_duration_values" translatable="false">
<item>2500</item>
<item>2000</item>
<item>1500</item>
</string-array>
<!-- Tiles animation interpolator -->
<string-array name="qs_tile_animation_interpolator_entries" translatable="false">
<item>@string/qs_tile_animation_interpolator_linearInterpolator</item>
<item>@string/qs_tile_animation_interpolator_accelerateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_decelerateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_accelerateDecelerateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_bounceInterpolator</item>
<item>@string/qs_tile_animation_interpolator_overshootInterpolator</item>
<item>@string/qs_tile_animation_interpolator_anticipateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_anticipateOvershootInterpolator</item>
</string-array>
<string-array name="qs_tile_animation_interpolator_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
</string-array>
<!-- Blink flashlight for incoming calls -->
<string-array name="flashlight_on_call_entries">
<item>@string/flashlight_on_call_disabled</item>
<item>@string/flashlight_on_call_ringer</item>
<item>@string/flashlight_on_call_no_ringer</item>
<item>@string/flashlight_on_call_silent</item>
<item>@string/flashlight_on_call_always</item>
</string-array>
<string-array name="flashlight_on_call_values">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
<!-- AOD Schedule -->
<string-array name="doze_always_on_auto_mode_entries">
<item>@string/disabled</item>
<item>@string/night_display_auto_mode_twilight</item>
<item>@string/night_display_auto_mode_custom</item>
<item>@string/always_on_display_schedule_mixed_sunset</item>
<item>@string/always_on_display_schedule_mixed_sunrise</item>
</string-array>
<string-array name="doze_always_on_auto_mode_values" translatable="false">
<item>0</item>
<item>1</item>
<item>3</item>
<item>4</item>
<item>2</item>
</string-array>
<!-- Edge lightning timeout -->
<string-array name="ambient_notification_light_timeout_entries" translatable="false">
<item>@string/ambient_notification_light_timeout_forever</item>
<item>@string/ambient_notification_light_timeout_half_minute</item>
<item>@string/ambient_notification_light_timeout_minute</item>
<item>@string/ambient_notification_light_timeout_three_minutes</item>
<item>@string/ambient_notification_light_timeout_five_minutes</item>
<item>@string/ambient_notification_light_timeout_ten_minutes</item>
</string-array>
<string-array name="ambient_notification_light_timeout_values" translatable="false">
<item>0</item>
<item>30</item>
<item>60</item>
<item>180</item>
<item>300</item>
<item>600</item>
</string-array>
<!-- Edge lightning restart/reverse animation mode -->
<string-array name="pulse_ambient_light_repeat_direction_entries">
<item>@string/pulse_ambient_light_repeat_direction_restart</item>
<item>@string/pulse_ambient_light_repeat_direction_reverse</item>
</string-array>
<string-array name="pulse_ambient_light_repeat_direction_values" translatable="false">
<item>0</item>
<item>1</item>
</string-array>
<!-- Edge lightning pulse style -->
<string-array name="pulse_ambient_light_layout_entries">
<item>@string/pulse_ambient_light_layout_faded</item>
<item>@string/pulse_ambient_light_layout_solid</item>
</string-array>
<string-array name="pulse_ambient_light_layout_values" translatable="false">
<item>0</item>
<item>1</item>
</string-array>
<!-- Pulse Light Layout style -->
<string-array name="pulse_light_layout_style_entries" translatable="false">
<item>@string/pulse_light_both</item>
<item>@string/pulse_light_top_bottom</item>
<item>@string/pulse_light_left_right</item>
</string-array>
<string-array name="pulse_light_layout_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<!-- Edge lightning color mode -->
<string-array name="ambient_notification_color_mode_entries" translatable="false">
<item>@string/ambient_notification_color_mode_accent</item>
<item>@string/ambient_notification_color_mode_wall</item>
<item>@string/ambient_notification_color_mode_notification</item>
<item>@string/ambient_notification_color_mode_custom</item>
</string-array>
<string-array name="ambient_notification_color_mode_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<string-array name="status_bar_battery_style_entries" translatable="false">
<item>@string/status_bar_battery_style_icon_portrait</item>
<!-- Volume step options. -->
<string-array name="volume_steps_entries" translatable="false">
<item>60</item>
<item>45</item>
<item>30</item>
<item>15</item>
<item>7</item>
<item>5</item>
</string-array>
<string-array name="status_bar_battery_percentage_entries" translatable="false">
<item>@string/status_bar_battery_percentage_default</item>
<item>@string/status_bar_battery_percentage_text_inside</item>
<item>@string/status_bar_battery_percentage_text_next</item>
</string-array>
<string-array name="status_bar_battery_percentage_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="entries_status_bar_battery" translatable="false">
<item>@string/status_bar_battery_style_port</item>
<item>@string/status_bar_battery_style_circle</item>
<item>@string/status_bar_battery_style_dotted_circle</item>
<item>@string/status_bar_battery_style_filled_circle</item>
<item>@string/status_bar_battery_style_text</item>
<item>@string/status_bar_battery_style_icon_rlandscape</item>
<item>@string/status_bar_battery_style_icon_landscape</item>
<item>@string/status_bar_battery_style_icon_landscape_buddy</item>
@@ -130,18 +359,17 @@
<item>@string/status_bar_battery_style_icon_landscape_style_a</item>
<item>@string/status_bar_battery_style_icon_rlandscape_style_b</item>
<item>@string/status_bar_battery_style_icon_landscape_style_b</item>
<item>@string/status_bar_battery_style_circle</item>
<item>@string/status_bar_battery_style_dotted_circle</item>
<item>@string/status_bar_battery_style_filled_circle</item>
<item>@string/status_bar_battery_style_big_circle</item>
<item>@string/status_bar_battery_style_big_dotted_circle</item>
<item>@string/status_bar_battery_style_text</item>
<item>@string/status_bar_battery_style_hidden</item>
</string-array>
<string-array name="status_bar_battery_style_values" translatable="false">
<string-array name="values_status_bar_battery" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
@@ -150,158 +378,76 @@
<item>13</item>
<item>14</item>
<item>15</item>
<item>16</item>
<item>17</item>
<item>18</item>
</string-array>
<!-- Network Traffic -->
<string-array name="network_traffic_location_entries" translatable="false">
<item>@string/network_traffic_disabled</item>
<item>@string/network_traffic_statusbar</item>
<item>@string/network_traffic_qs_header</item>
</string-array>
<string-array name="network_traffic_location_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>6</item>
<item>7</item>
<item>4</item>
<item>5</item>
</string-array>
<!-- QS battery style -->
<string-array name="qs_battery_style_entries" translatable="false">
<item>@string/qs_use_status_bar_battery_style</item>
<item>@string/status_bar_battery_style_icon_portrait</item>
<item>@string/status_bar_battery_style_icon_rlandscape</item>
<item>@string/status_bar_battery_style_icon_landscape</item>
<item>@string/status_bar_battery_style_circle</item>
<item>@string/status_bar_battery_style_dotted_circle</item>
<item>@string/status_bar_battery_style_filled_circle</item>
<item>@string/status_bar_battery_style_big_circle</item>
<item>@string/status_bar_battery_style_big_dotted_circle</item>
<item>@string/status_bar_battery_style_text</item>
<item>@string/status_bar_battery_style_hidden</item>
<string-array name="network_traffic_mode_entries" translatable="false">
<item>@string/network_traffic_dynamic</item>
<item>@string/network_traffic_upload</item>
<item>@string/network_traffic_download</item>
</string-array>
<string-array name="qs_battery_style_values" translatable="false">
<item>-1</item>
<string-array name="network_traffic_mode_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="network_traffic_units_entries" translatable="false">
<item>@string/network_traffic_units_bits</item>
<item>@string/network_traffic_units_bytes</item>
</string-array>
<string-array name="network_traffic_units_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>6</item>
<item>7</item>
<item>4</item>
<item>5</item>
<item>8</item>
<item>9</item>
</string-array>
<!-- Quick Settings brightness slider -->
<string-array name="qs_show_brightness_slider_entries" translatable="false">
<item>@string/qs_show_brightness_slider_never</item>
<item>@string/qs_show_brightness_slider_expanded</item>
<item>@string/qs_show_brightness_slider_always</item>
</string-array>
<string-array name="qs_show_brightness_slider_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="qs_brightness_slider_position_entries" translatable="false">
<item>@string/qs_brightness_slider_position_top</item>
<item>@string/qs_brightness_slider_position_bottom</item>
</string-array>
<string-array name="qs_brightness_slider_position_values" translatable="false">
<item>0</item>
<item>1</item>
</string-array>
<!--- Volume key cursor control -->
<string-array name="volume_key_cursor_control_entries">
<item>@string/volume_key_cursor_control_off</item>
<item>@string/volume_key_cursor_control_on</item>
<item>@string/volume_key_cursor_control_on_reverse</item>
</string-array>
<string-array name="volume_key_cursor_control_values">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<!-- HW Keys customization -->
<!-- HW Keys customization -->
<string-array name="action_dialog_entries">
<item>@string/action_entry_default_action</item>
<item>@string/action_entry_custom_action</item>
<item>@string/action_entry_select_app</item>
</string-array>
<string-array name="action_dialog_values" translatable="false">
<string-array name="action_dialog_values" translatable="false">
<item>@string/action_value_default_action</item>
<item>@string/action_value_custom_action</item>
<item>@string/action_value_select_app</item>
</string-array>
<string-array name="action_dialog_no_default_entries">
<string-array name="action_dialog_no_default_entries">
<item>@string/action_entry_custom_action</item>
<item>@string/action_entry_select_app</item>
</string-array>
<string-array name="action_dialog_no_default_values" translatable="false">
<string-array name="action_dialog_no_default_values" translatable="false">
<item>@string/action_value_custom_action</item>
<item>@string/action_value_select_app</item>
</string-array>
<!-- Volume step options. -->
<string-array name="volume_steps_entries" translatable="false">
<item>60</item>
<item>45</item>
<item>30</item>
<item>15</item>
<item>7</item>
<item>5</item>
</string-array>
<!-- Settings dashboard styles-->
<string-array name="settings_dashboard_style_entries" translatable="false">
<item>@string/settings_dashboard_style_aosp</item>
<item>@string/settings_dashboard_style_oos11</item>
<item>@string/settings_dashboard_style_oos12</item>
<item>@string/settings_dashboard_style_cherish</item>
<item>@string/settings_dashboard_style_cherish_clean</item>
</string-array>
<string-array name="settings_dashboard_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
<!-- Torch Power button gestures -->
<string-array name="torch_power_button_gesture_entries">
<item>@string/torch_power_button_gesture_none</item>
<item>@string/torch_power_button_gesture_dt</item>
<item>@string/torch_power_button_gesture_lp</item>
</string-array>
<string-array name="torch_power_button_gesture_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="qs_styles_entries" translatable="false">
<!-- Screen off animation -->
<string-array name="screen_off_animation_entries">
<item>@string/default_string</item>
<item>@string/qs_outline</item>
<item>@string/qs_two_tone</item>
<item>@string/qs_color_pop</item>
<item>@string/screen_off_animation_crt</item>
<item>@string/screen_off_animation_scale</item>
</string-array>
<string-array name="qs_styles_values" translatable="false">
<string-array name="screen_off_animation_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<!-- Status bar - Clock -->
@@ -309,44 +455,52 @@
<item>@string/status_bar_clock_position_right</item>
<item>@string/status_bar_clock_position_center</item>
<item>@string/status_bar_clock_position_left</item>
<item>@string/status_bar_clock_position_hidden</item>
</string-array>
<string-array name="status_bar_clock_position_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
</string-array>
<string-array name="status_bar_clock_position_entries_rtl" translatable="false">
<item>@string/status_bar_clock_position_left</item>
<item>@string/status_bar_clock_position_center</item>
<item>@string/status_bar_clock_position_right</item>
<item>@string/status_bar_clock_position_hidden</item>
</string-array>
<string-array name="status_bar_clock_position_values_rtl" translatable="false">
<item>2</item>
<item>1</item>
<item>0</item>
<item>3</item>
</string-array>
<string-array name="status_bar_clock_position_entries_notch" translatable="false">
<item>@string/status_bar_clock_position_right</item>
<item>@string/status_bar_clock_position_left</item>
<item>@string/status_bar_clock_position_hidden</item>
</string-array>
<string-array name="status_bar_clock_position_values_notch" translatable="false">
<item>0</item>
<item>2</item>
<item>3</item>
</string-array>
<string-array name="status_bar_clock_position_entries_notch_rtl" translatable="false">
<item>@string/status_bar_clock_position_left</item>
<item>@string/status_bar_clock_position_right</item>
<item>@string/status_bar_clock_position_hidden</item>
</string-array>
<string-array name="status_bar_clock_position_values_notch_rtl" translatable="false">
<item>2</item>
<item>0</item>
<item>3</item>
</string-array>
<string-array name="status_bar_am_pm_entries" translatable="false">
@@ -371,7 +525,7 @@
<item>1</item>
</string-array>
<string-array name="status_bar_date_entries">
<string-array name="status_bar_date_entries">
<item>@string/status_bar_date_none</item>
<item>@string/status_bar_date_small</item>
<item>@string/status_bar_date_normal</item>
@@ -417,55 +571,21 @@
<item>@string/status_bar_date_format_custom</item>
</string-array>
<!-- Power menu Animations -->
<string-array name="power_menu_animations_entries">
<item>@string/power_menu_animation_aosp</item>
<item>@string/power_menu_animation_bottom</item>
<item>@string/power_menu_animation_top</item>
<item>@string/power_menu_animation_fly</item>
<item>@string/power_menu_animation_turn</item>
<item>@string/power_menu_animation_slide</item>
<item>@string/power_menu_animation_xylon</item>
<item>@string/power_menu_animation_card</item>
<item>@string/power_menu_animation_translucent_top</item>
<item>@string/power_menu_animation_translucent_bottom</item>
<item>@string/power_menu_animation_rotate</item>
<!-- Lockscreen album art filter -->
<string-array name="lockscreen_albumart_filter_entries">
<item>@string/lockscreen_albumart_filter_none</item>
<item>@string/lockscreen_albumart_filter_grayscale</item>
<item>@string/lockscreen_albumart_filter_tint</item>
<item>@string/lockscreen_albumart_filter_blur</item>
<item>@string/lockscreen_albumart_filter_grayblur</item>
</string-array>
<string-array name="power_menu_animations_values" translatable="false">
<string-array name="lockscreen_albumart_filter_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
<item>8</item>
<item>9</item>
<item>10</item>
</string-array>
<!-- Tiles animation style -->
<string-array name="qs_tile_animation_style_entries" translatable="false">
<item>@string/qs_tile_animation_style_off</item>
<item>@string/qs_tile_animation_style_flip</item>
<item>@string/qs_tile_animation_style_rotate</item>
</string-array>
<string-array name="qs_tile_animation_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<!-- Tiles animation duration -->
<string-array name="qs_tile_animation_duration_entries" translatable="false">
<item>@string/qs_tile_animation_duration_low</item>
<item>@string/qs_tile_animation_duration_default</item>
<item>@string/qs_tile_animation_duration_fast</item>
<item>@string/qs_tile_animation_duration_quite_fast</item>
<item>@string/qs_tile_animation_duration_super_fast</item>
</string-array>
<!-- Pulse music visualizer -->
@@ -491,82 +611,60 @@
<item>2</item>
</string-array>
<string-array name="qs_tile_animation_duration_values" translatable="false">
<item>2500</item>
<item>2000</item>
<item>1500</item>
<item>1000</item>
<item>500</item>
<!-- Quick Settings brightness slider -->
<string-array name="qs_show_brightness_slider_entries" translatable="false">
<item>@string/qs_show_brightness_slider_never</item>
<item>@string/qs_show_brightness_slider_expanded</item>
<item>@string/qs_show_brightness_slider_always</item>
</string-array>
<string-array name="pulse_custom_gravity_entries">
<item>@string/pulse_custom_gravity_bottom</item>
<item>@string/pulse_custom_gravity_top</item>
<item>@string/pulse_custom_gravity_center</item>
<string-array name="qs_show_brightness_slider_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
</string-array>
<string-array name="pulse_custom_gravity_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<string-array name="qs_brightness_slider_position_entries" translatable="false">
<item>@string/qs_brightness_slider_position_top</item>
<item>@string/qs_brightness_slider_position_bottom</item>
</string-array>
<!-- Tiles animation interpolator -->
<string-array name="qs_tile_animation_interpolator_entries" translatable="false">
<item>@string/qs_tile_animation_interpolator_linearInterpolator</item>
<item>@string/qs_tile_animation_interpolator_accelerateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_decelerateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_accelerateDecelerateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_bounceInterpolator</item>
<item>@string/qs_tile_animation_interpolator_overshootInterpolator</item>
<item>@string/qs_tile_animation_interpolator_anticipateInterpolator</item>
<item>@string/qs_tile_animation_interpolator_anticipateOvershootInterpolator</item>
<string-array name="qs_brightness_slider_position_values" translatable="false">
<item>0</item>
<item>1</item>
</string-array>
<string-array name="qs_tile_animation_interpolator_values" translatable="false">
<!-- Settings dashboard styles-->
<string-array name="settings_dashboard_style_entries" translatable="false">
<item>@string/settings_dashboard_style_aosp</item>
<item>@string/settings_dashboard_style_oos11</item>
<item>@string/settings_dashboard_style_oos12</item>
<item>@string/settings_dashboard_style_cherish</item>
<item>@string/settings_dashboard_style_cherish_clean</item>
</string-array>
<string-array name="settings_dashboard_style_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
<item>5</item>
<item>6</item>
<item>7</item>
</string-array>
<!-- App lock timeout -->
<string-array name="app_lock_timeout_entries">
<item>5 seconds</item>
<item>10 seconds</item>
<item>30 seconds</item>
<item>1 minute</item>
<item>5 minutes</item>
<item>10 minutes</item>
<item>30 minutes</item>
<!-- QS SystemInfo -->
<string-array name="qs_system_info_entries">
<item>@string/qs_system_info_off</item>
<item>@string/qs_system_info_cpu_temp</item>
<item>@string/qs_system_info_battery_temp</item>
<item>@string/qs_system_info_gpu_clock</item>
<item>@string/qs_system_info_gpu_busy</item>
</string-array>
<string-array name="app_lock_timeout_values" translatable="false">
<item>5000</item>
<item>10000</item>
<item>30000</item>
<item>60000</item>
<item>300000</item>
<item>600000</item>
<item>1800000</item>
</string-array>
<!-- Edge light color modes -->
<string-array name="edge_light_color_mode_entries" translatable="false">
<item>@string/accent_color</item>
<item>@string/notification_color</item>
<item>@string/wallpaper_color</item>
<item>@string/custom_color</item>
</string-array>
<string-array name="edge_light_color_mode_values">
<string-array name="qs_system_info_values" translatable="false">
<item>0</item>
<item>1</item>
<item>2</item>
<item>3</item>
<item>4</item>
</string-array>
</resources>

View File

@@ -23,8 +23,6 @@
<dimen name="color_preference_width">18dip</dimen>
<dimen name="color_preference_height">18dip</dimen>
<dimen name="color_picker_preview_height">80dp</dimen>
<!-- Shortcut picker -->
<dimen name="shortcut_picker_left_padding">70dip</dimen>

View File

@@ -69,9 +69,9 @@
<string name="device_tissot">Xiaomi Mi A1</string>
<string name="tissot_maintainer">Ajit</string>
<string name="device_picasso">Xiaomi Redmi K30 5G</string>
<string name="picasso_maintainer">Dinh San</string>
<string name="picasso_maintainer">masarou</string>
<string name="device_laurel_sprout">Xiaomi Mi A3</string>
<string name="laurel_sprout_maintainer">AbStRaCt_IrIs</string>
<string name="laurel_sprout_maintainer">RAYAN(BASUBHAJANTRI)</string>
<string name="device_davinci">Xiaomi Mi 9T/K20</string>
<string name="davinci_maintainer">Luis Gonzales</string>
<string name="device_raphael">Xiaomi Mi 9T Pro/K20 Pro</string>
@@ -81,7 +81,7 @@
<string name="device_surya">Xiaomi Poco X3</string>
<string name="surya_maintainer">Pranjal Singh</string>
<string name="device_beryllium">Xiaomi Poco F1</string>
<string name="beryllium_maintainer">horizon2000</string>
<string name="beryllium_maintainer">Zisan</string>
<string name="device_olives">Xiaomi Redmi 8 Series</string>
<string name="olives_maintainer">0xCAFEBABE</string>
<string name="device_pine">Xiaomi Redmi 7A</string>
@@ -122,8 +122,7 @@
<string name="RMX1805_maintainer">AbhinavVermabest</string>
<string name="device_RM6785">Realme 6/6i(Indian)/6s/7/Narzo/Narzo20Pro/Narzo30 4G</string>
<string name="RM6785_maintainer">Pain</string>
<string name="device_RMX3360">Realme GT Master Edition</string>
<string name="RMX3360_maintainer">X-R-P</string>
<!-- Asus Device maintainers -->
<string name="device_X00T">Asus ZenFone Max Pro M1</string>
<string name="X00T_maintainer">NotHarshhaa</string>

File diff suppressed because it is too large Load Diff

View File

@@ -23,46 +23,4 @@
<dimen name="fod_picker_item_padding">20dp</dimen>
<color name="option_border_default">#5f6368</color>
<style name="ColorPickerStyle" parent="Theme.MaterialComponents.BottomSheetDialog">
<item name="colorPrimary">@*android:color/primary_device_default_settings_light</item>
<item name="colorPrimaryDark">@*android:color/primary_device_default_settings</item>
<item name="colorAccent">@*android:color/accent_device_default_light</item>
<item name="android:fontFamily">@*android:string/config_headlineFontFamilyMedium</item>
<item name="android:textColorPrimary">#000000</item>
</style>
<style name="ColorPickerSeekBarStyle" parent="Widget.AppCompat.SeekBar">
<item name="android:layout_marginTop">30dp</item>
<item name="android:paddingStart">16dp</item>
<item name="android:paddingEnd">18dp</item>
<item name="android:maxHeight">8dp</item>
<item name="android:progressDrawable">@drawable/color_picker_seekbar_background</item>
<item name="android:thumb">@drawable/color_picker_seekbar_thumb</item>
<item name="android:splitTrack">false</item>
</style>
<style name="ColorPickerRadioButtonStyle">
<item name="android:paddingTop">12dp</item>
<item name="android:paddingBottom">12dp</item>
<item name="android:buttonTint">?android:attr/colorAccent</item>
<item name="android:textColor">?android:attr/textColorPrimary</item>
</style>
<style name="ColorPickerButtonStyle">
<item name="android:background">@android:color/transparent</item>
<item name="android:minWidth">0dp</item>
<item name="android:minHeight">0dp</item>
<item name="android:padding">8dp</item>
<item name="android:textColor">?android:attr/colorAccent</item>
</style>
<style name="ColorPickerEditTextStyle">
<item name="android:gravity">center</item>
<item name="android:inputType">textCapCharacters|textNoSuggestions</item>
<item name="android:importantForAutofill">no</item>
<item name="android:textCursorDrawable">@null</item>
<item name="android:imeOptions">actionDone</item>
<item name="android:singleLine">true</item>
</style>
</resources>

View File

@@ -1,24 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 FlamingoOS 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">
<!-- App Lock -->
<plurals name="app_lock_summary">
<item quantity="one"><xliff:g example="1" id="Number of applications">%1$d</xliff:g> application is protected</item>
<item quantity="other"><xliff:g example="10" id="Number of applications">%1$d</xliff:g> applications are protected</item>
</plurals>
</resources>

View File

@@ -0,0 +1,34 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2021 Yet Another AOSP Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/always_on_display_schedule_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.cherish.settings.preferences.SecureSettingListPreference
android:key="doze_always_on_auto_mode"
android:title="@string/night_display_auto_mode_title"
android:dialogTitle="@string/night_display_auto_mode_title"
android:entries="@array/doze_always_on_auto_mode_entries"
android:entryValues="@array/doze_always_on_auto_mode_values"
android:persistent="false" />
<Preference
android:key="doze_always_on_auto_since"
android:title="@string/night_display_start_time_title" />
<Preference
android:key="doze_always_on_auto_till"
android:title="@string/night_display_end_time_title" />
</PreferenceScreen>

View File

@@ -1,39 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 CherishOS 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:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/app_lock_title">
<Preference
android:key="app_lock_packages"
android:title="@string/app_lock_packages_title"
android:summary="@string/app_lock_packages_summary"
android:fragment="com.cherish.settings.security.applock.AppLockPackageListFragment" />
<ListPreference
android:key="app_lock_timeout"
android:title="@string/app_lock_timeout_title"
android:summary="@string/app_lock_timeout_summary"
android:entries="@array/app_lock_timeout_entries"
android:entryValues="@array/app_lock_timeout_values"
android:defaultValue="0"
android:persistent="false"
settings:controller="com.cherish.settings.security.applock.AppLockTimeoutPreferenceController" />
<SwitchPreference
android:key="app_lock_biometrics_allowed"
android:title="@string/app_lock_biometrics_allowed_title"
android:persistent="false"
settings:controller="com.cherish.settings.security.applock.AppLockBiometricPreferenceController" />
</PreferenceScreen>

View File

@@ -1,19 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 FlamingoOS 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:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/app_lock_packages_title">
</PreferenceScreen>

View File

@@ -0,0 +1,35 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2020 The CherishOS 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:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/lockscreen_shortcuts">
<PreferenceCategory
android:key="lockscreen_tuner"
android:title="@string/ls_tuner">
<Preference
android:title="@string/lockscreen_tuner_title" >
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.systemui"
android:targetClass="com.android.systemui.tuner.LockscreenActivity" />
</Preference>
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -81,7 +81,7 @@
android:icon="@drawable/ic_devs_phone" >
<intent
android:action="android.intent.action.VIEW"
android:data="https://t.me/horizon2000" />
android:data="https://t.me/xisan" />
</Preference>
<Preference
@@ -287,7 +287,7 @@
android:icon="@drawable/ic_devs_phone" >
<intent
android:action="android.intent.action.VIEW"
android:data="https://t.me/dinhsan2k" />
android:data="https://t.me/masarou" />
</Preference>
<Preference
@@ -536,14 +536,6 @@
android:action="android.intent.action.VIEW"
android:data="https://t.me/RMX1801" />
</Preference>
<Preference
android:title="@string/RMX3360_maintainer"
android:summary="@string/device_RMX3360"
android:icon="@drawable/ic_devs_phone" >
<intent
android:action="android.intent.action.VIEW"
android:data="https://t.me/itsXRP" />
</Preference>
</PreferenceCategory>
<PreferenceCategory

View File

@@ -20,42 +20,37 @@
android:title="@string/animations_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings" >
<ListPreference
android:key="power_menu_animations"
android:title="@string/power_menu_animation_title"
android:dialogTitle="@string/power_menu_animation_dialog_title"
android:entries="@array/power_menu_animations_entries"
android:entryValues="@array/power_menu_animations_values"
android:summary="%s"
android:persistent="false" />
<PreferenceCategory
android:key="quick_settings_animations"
android:title="@string/qs_tile_animation_title">
<PreferenceCategory
android:title="@string/qs_tile_animation_category_title">
<com.cherish.settings.preferences.SystemSettingIntListPreference
android:key="anim_tile_style"
<ListPreference
android:key="qs_tile_animation_style"
android:title="@string/qs_tile_animation_style_title"
android:entries="@array/qs_tile_animation_style_entries"
android:entryValues="@array/qs_tile_animation_style_values"
android:summary="%s"
android:defaultValue="0" />
android:persistent="false" />
<com.cherish.settings.preferences.SystemSettingIntListPreference
android:key="anim_tile_duration"
<ListPreference
android:key="qs_tile_animation_duration"
android:title="@string/qs_tile_animation_duration_title"
android:entries="@array/qs_tile_animation_duration_entries"
android:entryValues="@array/qs_tile_animation_duration_values"
android:summary="%s"
android:defaultValue="2000" />
android:persistent="false" />
<com.cherish.settings.preferences.SystemSettingIntListPreference
android:key="anim_tile_interpolator"
<ListPreference
android:key="qs_tile_animation_interpolator"
android:title="@string/qs_tile_animation_interpolator_title"
android:entries="@array/qs_tile_animation_interpolator_entries"
android:entryValues="@array/qs_tile_animation_interpolator_values"
android:summary="%s"
android:defaultValue="0" />
android:persistent="false" />
</PreferenceCategory>
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="screen_off_animation"
android:title="@string/screen_off_animation_title"
android:entries="@array/screen_off_animation_entries"
android:entryValues="@array/screen_off_animation_values"
android:summary="%s"
android:defaultValue="0" />
</PreferenceScreen>

View File

@@ -1,38 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 FlamingoOS 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:settings="http://schemas.android.com/apk/res-auto"
android:title="@string/app_lock_title">
<Preference
android:key="app_lock_packages"
android:title="@string/app_lock_packages_title"
android:summary="@string/app_lock_packages_summary"
android:fragment="com.cherish.settings.security.applock.AppLockPackageListFragment" />
<ListPreference
android:key="app_lock_timeout"
android:title="@string/app_lock_timeout_title"
android:summary="@string/app_lock_timeout_summary"
android:entries="@array/app_lock_timeout_entries"
android:entryValues="@array/app_lock_timeout_values"
android:defaultValue="0"
android:persistent="false"
settings:controller="com.cherish.settings.security.applock.AppLockTimeoutPreferenceController" />
<SwitchPreference
android:key="app_lock_biometrics_allowed"
android:title="@string/app_lock_biometrics_allowed_title"
android:persistent="false" />
</PreferenceScreen>

View File

@@ -18,14 +18,15 @@
android:title="@string/button_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<!-- SwitchPreference
<SwitchPreference
android:key="navbar_visibility"
android:title="@string/navigation_bar_title"
android:summary="@string/navigation_bar_summary" />-->
android:summary="@string/navigation_bar_summary" />
<PreferenceCategory
android:key="navigation_keys"
android:title="@string/navigation_bar_category">
android:title="@string/navigation_title"
android:dependency="navbar_visibility">
<Preference
android:key="gesture_system_navigation_input_summary"
@@ -34,17 +35,11 @@
settings:controller="com.android.settings.gestures.SystemNavigationPreferenceController"
settings:keywords="@string/keywords_system_navigation" />
<!-- com.cherish.settings.preferences.SystemSettingSwitchPreference
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="navigation_bar_menu_arrow_keys"
android:title="@string/navigation_bar_arrow_keys_title"
android:summary="@string/navigation_bar_arrow_keys_summary"
android:defaultValue="false" />-->
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="navigation_bar_compact_layout"
android:title="@string/navigation_bar_compact_layout_title"
android:summary="@string/navigation_bar_compact_layout_summary"
android:defaultValue="false" />-->
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="navigation_bar_inverse"
@@ -52,38 +47,34 @@
android:defaultValue="0"
settings:controller="com.cherish.settings.fragments.NavBarInversePreferenceController" />
<com.android.settingslib.widget.FooterPreference
android:key="navigation_bar_footer_preference"
android:selectable="false"
android:title="@string/navigation_bar_help_text" />
</PreferenceCategory>
<PreferenceCategory
android:key="volume_category"
android:title="@string/volume_category">
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="volume_panel_on_left"
android:title="@string/volume_panel_on_left_title"
android:summary="@string/volume_panel_on_left_summary"
android:defaultValue="false" />
<Preference
android:key="vol_steps"
android:title="@string/volume_steps_fragment_title"
android:summary="@string/volume_steps_summary"
android:fragment="com.cherish.settings.fragments.VolumeRockerSettings" />
android:fragment="com.cherish.settings.fragments.VolumeStepsFragment" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="volume_rocker_wake"
android:summary="@string/volume_rocker_wake_summary"
android:title="@string/volume_rocker_wake_title"
android:defaultValue="false" />
android:key="swap_volume_buttons"
android:title="@string/swap_volume_buttons_title"
android:summary="@string/swap_volume_buttons_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="volume_key_cursor_control"
android:summary="%s"
android:title="@string/volume_key_cursor_control_title"
android:dialogTitle="@string/volume_key_cursor_control_title"
android:entries="@array/volume_key_cursor_control_entries"
android:entryValues="@array/volume_key_cursor_control_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="volume_rocker_wake"
android:summary="@string/volume_rocker_wake_summary"
android:title="@string/volume_rocker_wake_title"
android:defaultValue="false" />
</PreferenceCategory>
@@ -95,21 +86,17 @@
android:key="hardware_keys_disable"
android:title="@string/hardware_keys_disable_title" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="swap_capacitive_keys"
android:title="@string/swap_capacitive_keys_title"
android:summary="@string/swap_capacitive_keys_summary"
android:defaultValue="false" />
</PreferenceCategory>
<!-- PreferenceCategory
<PreferenceCategory
android:key="button_backlight_options_category"
android:title="@string/button_backlight_options_category">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="button_backlight_enable"
android:title="@string/button_backlight_enable_title"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="custom_button_use_screen_brightness"
android:title="@string/button_link_brightness"
@@ -117,6 +104,7 @@
android:defaultValue="false"
android:dependency="button_backlight_enable"
android:disableDependentsState="true" />
<com.cherish.settings.preferences.CustomSeekBarPreference
android:key="button_manual_brightness_new"
android:title="@string/button_manual_brightness"
@@ -124,6 +112,7 @@
settings:min="1"
android:persistent="false"
android:dependency="custom_button_use_screen_brightness" />
<com.cherish.settings.preferences.CustomSeekBarPreference
android:key="button_timeout"
android:title="@string/button_timeout_title"
@@ -131,13 +120,15 @@
settings:min="0"
android:persistent="false"
android:dependency="button_backlight_enable" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="button_backlight_on_touch_only"
android:title="@string/button_backlight_on_touch_only_title"
android:summary="@string/button_backlight_on_touch_only_summary"
android:defaultValue="false"
android:dependency="button_backlight_enable" />
</PreferenceCategory>-->
</PreferenceCategory>
<PreferenceCategory
android:key="back_key"
@@ -259,5 +250,11 @@
</PreferenceCategory>
<ListPreference
android:key="torch_power_button_gesture"
android:title="@string/torch_power_button_gesture_title"
android:entries="@array/torch_power_button_gesture_entries"
android:entryValues="@array/torch_power_button_gesture_values" />
</PreferenceScreen>

View File

@@ -1,52 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2022 FlamingoOS Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/edge_light_title">
<com.android.settingslib.widget.TopIntroPreference
android:key="edge_light_intro"
android:title="@string/edge_light_intro_text" />
<com.cherish.settings.preferences.SystemSettingMainSwitchPreference
android:key="edge_light_enabled"
android:title="@string/enable_edge_light"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="edge_light_always_trigger_on_pulse"
android:title="@string/edge_light_always_trigger_on_pulse_title"
android:summary="@string/edge_light_always_trigger_on_pulse_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="edge_light_repeat_animation"
android:title="@string/edge_light_repeat_animation_title"
android:summaryOn="@string/edge_light_repeat_animation_summary_on"
android:summaryOff="@string/edge_light_repeat_animation_summary_off"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="edge_light_color_mode"
android:title="@string/edge_light_color_mode_title"
android:entries="@array/edge_light_color_mode_entries"
android:entryValues="@array/edge_light_color_mode_values"
android:summary="%s"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingColorPickerPreference
android:key="edge_light_custom_color"
android:title="@string/edge_light_custom_color_title"
android:defaultValue="#FFFFFF" />
</PreferenceScreen>

View File

@@ -21,67 +21,46 @@
<PreferenceCategory
android:title="@string/lockscreen_gesture_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="double_tap_sleep_lockscreen"
android:title="@string/double_tap_sleep_lockscreen_title"
android:summary="@string/double_tap_sleep_lockscreen_summary"
android:title="@string/double_tap_to_sleep_lockscreen_title"
android:summary="@string/double_tap_to_sleep_lockscreen_summary"
android:defaultValue="true" />
<ListPreference
android:key="torch_power_button_gesture"
android:title="@string/torch_power_button_gesture_title"
android:entries="@array/torch_power_button_gesture_entries"
android:entryValues="@array/torch_power_button_gesture_values" />
<Preference
android:key="edge_light_enabled"
android:title="@string/edge_light_title"
android:summary="@string/edge_light_intro_text"
android:fragment="com.cherish.settings.lockscreen.EdgeLightSettings"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="power_menu_hide_on_secure"
android:title="@string/power_menu_hide_on_secure_title"
android:summary="@string/power_menu_hide_on_secure_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="hide_lockscreen_status_bar"
android:title="@string/hide_lockscreen_status_bar_title"
android:summary="@string/hide_lockscreen_status_bar_summary"
android:defaultValue="false" />
</PreferenceCategory>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="lockscreen_battery_info"
android:title="@string/lockscreen_charging_info_title"
android:summary="@string/lockscreen_charging_info_summary"
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="doze_pulse_on_double_tap"
android:title="@string/double_tap_on_doze_to_wake_title"
android:summary="@string/double_tap_on_doze_to_wake_summary"
android:defaultValue="true" />
<!-- Udfps options -->
<PreferenceCategory
android:key="udfps_category"
android:title="@string/udfps_category">
<Preference
android:key="udfps_settings"
android:title="@string/udfps_settings_title"
android:summary="@string/udfps_settings_summary"
android:fragment="com.cherish.settings.fragments.Udfps" />
</PreferenceCategory>
<Preference
android:key="always_on_display_schedule"
android:title="@string/always_on_display_schedule_title"
android:fragment="com.cherish.settings.fragments.AODSchedule" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="enable_ripple_effect"
android:title="@string/enable_fingerprint_ripple_effect_title"
android:summary="@string/enable_fingerprint_ripple_effect_summary"
android:defaultValue="true" />
android:key="use_secondary_color_clock"
android:title="@string/lockscreen_clock_color_title"
android:summary="@string/lockscreen_clock_color_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="enable_ripple_effect"
android:title="@string/enable_fingerprint_ripple_effect_title"
android:summary="@string/enable_fingerprint_ripple_effect_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="lockscreen_battery_info"
android:title="@string/lockscreen_battery_info_title"
android:summary="@string/lockscreen_battery_info_summary"
android:defaultValue="true" />
<PreferenceCategory
android:key="lockscreen_media_art_options"
android:title="@string/lockscreen_media_art_options_title">
android:key="lockscreen_media_category"
android:title="@string/lockscreen_media_category">
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="lockscreen_media_metadata"
@@ -89,7 +68,7 @@
android:summary="@string/media_art_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingListPreference
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="lockscreen_albumart_filter"
android:title="@string/lockscreen_albumart_filter_title"
android:entries="@array/lockscreen_albumart_filter_entries"
@@ -104,13 +83,29 @@
android:summary="@string/pulse_settings_summary"
android:fragment="com.cherish.settings.fragments.sound.PulseSettings" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="ls_media_filter_blur_radius"
android:title="@string/lockscreen_albumart_filter_blur_radius_title"
android:defaultValue="10"
android:max="25"
settings:min="1" />
</PreferenceCategory>
<!-- <PreferenceCategory
android:key="lockscreen_category"
android:title="@string/ls_category">
<Preference
android:key="lockscreen_shortcuts"
android:fragment="com.cherish.settings.fragments.LockscreenShortcuts"
android:title="@string/lockscreen_shortcuts"
android:summary="@string/ls_shortcut_summary" />
</PreferenceCategory> -->
<PreferenceCategory
android:key="udfps_category"
android:title="@string/udfps_category">
<Preference
android:key="udfps_settings"
android:title="@string/udfps_settings_title"
android:summary="@string/udfps_settings_summary"
android:fragment="com.cherish.settings.fragments.UdfpsSettings" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -18,12 +18,11 @@
android:title="@string/misc_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<!-- Launch music player when headset is connected -->
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="headset_connect_player"
android:title="@string/headset_connect_player_title"
android:summary="@string/headset_connect_player_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="charging_animation"
android:title="@string/charging_animation_title"
android:summary="@string/charging_animation_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="window_ignore_secure"
@@ -31,36 +30,61 @@
android:summary="@string/laboratory_ignore_window_secure_summary"
android:defaultValue="false"/>
<!-- Smart Charging -->
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="pm_downgrade_allowed"
android:title="@string/laboratory_app_downgrade_title"
android:summary="@string/laboratory_app_downgrade_summary"
android:defaultValue="false"/>
<com.cherish.settings.preferences.GlobalSettingSwitchPreference
android:key="strict_standby_policy"
android:title="@string/strict_standby_policy_title"
android:summary="@string/strict_standby_policy_summary"
android:defaultValue="false"/>
<com.cherish.settings.preferences.GlobalSettingSwitchPreference
android:key="force_background_freezer"
android:title="@string/force_background_freezer_title"
android:summary="@string/force_background_freezer_summary"
settings:controller="com.cherish.settings.preferences.ForceBackgroundFreezePreferenceController"
android:defaultValue="false"/>
<!-- Gaming mode -->
<Preference
android:key="smart_charging"
android:title="@string/smart_charging_title"
android:summary="@string/smart_charging_summary"
android:fragment="com.cherish.settings.fragments.SmartCharging"/>
android:key="gaming_mode"
android:title="@string/gaming_mode_title"
android:summary="@string/gaming_mode_summary">
<Preference
android:key="app_lock"
android:title="@string/app_lock_title"
android:summary="@string/app_lock_summary"
android:fragment="com.cherish.settings.security.applock.AppLockSettingsFragment"
settings:controller="com.cherish.settings.security.applock.AppLockSettingsPreferenceController" />
<intent
android:action="android.intent.action.MAIN"
android:targetPackage="io.chaldeaprjkt.gamespace"
android:targetClass="io.chaldeaprjkt.gamespace.settings.SettingsActivity" />
</Preference>
<!-- Unlock FPS for specific games -->
<SwitchPreference
android:key="use_games_spoof"
android:title="@string/use_games_spoof_title"
android:summary="@string/use_games_spoof_summary" />
<PreferenceCategory
android:key="spoof_category"
android:title="@string/spoof_title">
<!-- Unlimited Photos storage -->
<SwitchPreference
android:key="use_photos_spoof"
android:title="@string/use_photos_spoof_title"
android:summary="@string/use_photos_spoof_summary"
android:defaultValue="true" />
<!-- Unlimited Photos storage -->
<SwitchPreference
android:key="use_photos_spoof"
android:title="@string/use_photos_spoof_title"
android:summary="@string/use_photos_spoof_summary"
android:defaultValue="true" />
<!-- Unlock FPS for specific games -->
<SwitchPreference
android:key="use_games_spoof"
android:title="@string/use_games_spoof_title"
android:summary="@string/use_games_spoof_summary" />
<!-- Unlock higher quality streams for specific apps -->
<SwitchPreference
android:key="use_stream_spoof"
android:title="@string/use_stream_spoof_title"
android:summary="@string/use_stream_spoof_summary"
android:defaultValue="true" />
</PreferenceCategory>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="click_partial_screenshot"
android:title="@string/click_partial_screenshot_title"
android:summary="@string/click_partial_screenshot_summary"
android:defaultValue="false" />
</PreferenceScreen>

View File

@@ -0,0 +1,48 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2020-22 The CherishOS Project
SPDX-License-Identifier: Apache-2.0
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/monet_engine_title">
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="monet_engine_custom_color"
android:title="@string/monet_engine_custom_color_title"
android:summary="@string/monet_engine_custom_color_summary"
android:defaultValue="false" />
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="monet_engine_color_override"
android:title="@string/monet_engine_color_override_title"
android:dependency="monet_engine_custom_color"
android:defaultValue="0xffffff" />
<com.cherish.settings.preferences.SecureSettingSeekBarPreference
android:key="monet_engine_white_luminance_user"
android:title="@string/monet_engine_white_luminance_user_title"
android:defaultValue="425"
android:max="1000"
settings:min="200"
settings:interval="25"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="monet_engine_accurate_shades"
android:title="@string/monet_engine_accurate_shades_title"
android:defaultValue="true" />
<com.cherish.settings.preferences.SecureSettingSeekBarPreference
android:key="monet_engine_chroma_factor"
android:title="@string/monet_engine_chroma_factor_title"
android:defaultValue="100"
android:max="400"
settings:min="50"
settings:interval="25"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="monet_engine_linear_lightness"
android:title="@string/monet_engine_linear_lightness_title"
android:defaultValue="false" />
</PreferenceScreen>

View File

@@ -1,28 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2022 The CherishOS
SPDX-License-Identifier: Apache-2.0
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/network_traffic_title">
<com.cherish.settings.preferences.SystemSettingMainSwitchPreference
android:key="network_traffic_state"
android:title="@string/network_traffic_master_switch_title"
android:defaultValue="false" />
<PreferenceCategory
android:title="@string/network_options_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="network_traffic_autohide_threshold"
android:title="@string/network_traffic_autohide_title"
android:summary="@string/network_traffic_autohide_summary"
android:dependency="network_traffic_state"
android:defaultValue="false" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -18,7 +18,7 @@
android:title="@string/notifications_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<!-- <PreferenceCategory
<PreferenceCategory
android:key="incall_vib_options"
android:title="@string/incall_vibration_category">
@@ -40,83 +40,137 @@
android:title="@string/incall_vibrate_disconnect_title"
android:defaultValue="true" />
</PreferenceCategory> -->
</PreferenceCategory>
<PreferenceCategory
android:title="@string/flashlight_category">
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="flashlight_on_call"
android:title="@string/flashlight_on_call_title"
android:entries="@array/flashlight_on_call_entries"
android:entryValues="@array/flashlight_on_call_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="flashlight_on_call_ignore_dnd"
android:title="@string/flashlight_on_call_ignore_dnd_title"
android:summary="@string/flashlight_on_call_ignore_dnd_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.CustomSeekBarPreference
android:key="flashlight_on_call_rate"
android:title="@string/flashlight_on_call_rate_title"
android:summary="@string/flashlight_on_call_rate_summary"
android:max="5"
settings:min="1"
settings:defaultValue="1"
settings:units="Hz" />
</PreferenceCategory>
<PreferenceCategory
android:key="notifications_general_category"
android:title="@string/general_category">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="reticker_status"
android:title="@string/reticker_title"
android:summary="@string/reticker_summary" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="reticker_colored"
android:title="@string/reticker_colored_title"
android:summary="@string/reticker_colored_summary"
android:dependency="reticker_status" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="notification_guts_kill_app_button"
android:title="@string/notification_guts_kill_app_button_title"
android:summary="@string/notification_guts_kill_app_button_summary"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/media_category">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="media_artwork_enabled"
android:title="@string/artwork_media_background_title"
android:summary="@string/artwork_media_background_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="media_artwork_fade_percent"
android:title="@string/artwork_media_background_fade_filter_title"
android:dependency="media_artwork_enabled"
android:defaultValue="30"
android:max="50"
settings:min="1" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="media_artwork_blur_enabled"
android:title="@string/artwork_media_background_enable_blur_title"
android:dependency="media_artwork_enabled"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="media_artwork_blur_radius"
android:title="@string/artwork_media_background_blur_radius_title"
android:dependency="media_artwork_blur_enabled"
android:defaultValue="1"
android:max="25"
settings:min="1" />
</PreferenceCategory>
<Preference
android:key="charging_light"
android:fragment="com.cherish.settings.fragments.BatteryLightSettings"
android:title="@string/battery_light_settings" />
<!-- Pulse notifications lightning -->
<com.cherish.settings.preferences.SystemSettingMasterSwitchPreference
android:key="pulse_ambient_light"
android:title="@string/pulse_ambient_light_title"
android:summary="@string/pulse_ambient_light_summary"
android:fragment="com.cherish.settings.fragments.EdgeLightningSettings"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="pulse_on_new_tracks"
android:title="@string/pulse_on_new_tracks_title"
android:summary="@string/pulse_on_new_tracks_summary"
android:defaultValue="true" />
<PreferenceCategory
android:key="notifications_category"
android:title="@string/notifications_category_title">
android:key="headsup_notifications_category"
android:title="@string/headsup_category">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="less_boring_heads_up"
android:title="@string/less_boring_heads_up_title"
android:summary="@string/less_boring_heads_up_summary"
android:defaultValue="false" />
<Preference
android:key="heads_up_notifications"
android:summary="@string/heads_up_notifications_summary"
android:title="@string/heads_up_notifications"
android:fragment="com.cherish.settings.fragments.HeadsUpSettings"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="notification_sound_vib_screen_on"
android:title="@string/notification_sound_vib_screen_on_title"
android:summary="@string/notification_sound_vib_screen_on_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="less_boring_heads_up"
android:title="@string/less_boring_heads_up_title"
android:summary="@string/less_boring_heads_up_summary"
android:defaultValue="false" />
<!-- Alert Slider Notifications -->
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="alert_slider_notifications"
android:title="@string/alert_slider_notifications_title"
android:summary="@string/alert_slider_notifications_summary"
</PreferenceCategory>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="notification_headers"
android:title="@string/notification_headers_title"
android:summary="@string/notification_headers_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="notification_guts_kill_app_button"
android:title="@string/notification_guts_kill_app_button_title"
android:summary="@string/notification_guts_kill_app_button_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="toast_icon"
android:order="24"
android:title="@string/toast_icon_title"
android:summary="@string/toast_icon_summary"
android:defaultValue="true"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="reticker_status"
android:title="@string/reticker_title"
android:summary="@string/reticker_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:dependency="reticker_status"
android:key="reticker_colored"
android:title="@string/reticker_colored_title"
android:summary="@string/reticker_colored_summary"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory
android:key="incall_vib_options"
android:title="@string/incall_vibration_category" >
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="vibrate_on_connect"
android:title="@string/incall_vibrate_connect_title"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="vibrate_on_callwaiting"
android:title="@string/incall_vibrate_call_wait_title"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="vibrate_on_disconnect"
android:title="@string/incall_vibrate_disconnect_title"
android:defaultValue="false" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -18,19 +18,11 @@
android:title="@string/powermenu_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="transparent_power_menu"
android:title="@string/power_menu_transparency"
android:max="100"
android:min="0"
android:defaultValue="100" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="transparent_power_dialog_dim"
android:title="@string/power_menu_dialog_dim"
android:max="100"
android:min="0"
android:defaultValue="50" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="lockscreen_power_menu_disabled"
android:title="@string/lockscreen_power_menu_disabled_title"
android:summary="@string/lockscreen_power_menu_disabled_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="powermenu_power"

View File

@@ -19,17 +19,79 @@
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<PreferenceCategory
android:title="@string/qs_category">
android:title="@string/qs_title">
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_transparency"
android:title="@string/qs_transparency_title"
android:summary="@string/qs_transparency_summary"
android:defaultValue="100"
settings:interval="1"
settings:units="%"
android:max="100"
android:min="1" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="qs_system_info"
android:title="@string/qs_system_info_title"
android:entries="@array/qs_system_info_entries"
android:entryValues="@array/qs_system_info_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_header_clock_size"
android:title="@string/qs_clock_font_size_title"
android:max="27"
settings:min="10"
android:defaultValue="14"
settings:units="dp"/>
<!-- QS date -->
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="show_qs_date"
android:title="@string/qs_date_title"
android:summary="@string/qs_date_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_transparency"
android:title="@string/qs_transparency_title"
android:summary="@string/qs_transparency_summary"
android:defaultValue="100"
settings:interval="1"
settings:units="%"
android:max="100"
android:min="1" />
android:key="qs_header_date_size"
android:title="@string/qs_date_title_size_title"
android:max="27"
settings:min="10"
android:defaultValue="14"
settings:units="dp"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="qs_footer_data_usage"
android:title="@string/qs_footer_datausage_title"
android:summary="@string/qs_footer_datausage_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="qs_show_battery_estimate"
android:title="@string/qs_show_battery_estimate_title"
android:summary="@string/qs_show_battery_estimate_summary"
android:defaultValue="true"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="enable_camera_privacy_indicator"
android:title="@string/mic_camera_privacy_indicator_title"
android:summary="@string/mic_camera_privacy_indicator_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="enable_location_privacy_indicator"
android:title="@string/location_privacy_indicator_title"
android:summary="@string/location_privacy_indicator_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="quick_settings_vibrate"
android:title="@string/quick_settings_vibrate_title"
android:summary="@string/quick_settings_vibrate_summary"
android:defaultValue="false"/>
<ListPreference
android:key="status_bar_quick_qs_pulldown"
@@ -38,27 +100,13 @@
android:entryValues="@array/quick_pulldown_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_header_clock_size"
android:title="@string/clock_font_size_title"
android:max="27"
settings:min="10"
settings:interval="1"
android:defaultValue="14"
settings:units="@string/unit_pixels" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="show_qs_date"
android:title="@string/qs_date_title"
android:summary="@string/qs_date_summary"
android:defaultValue="true" />
</PreferenceCategory>
<PreferenceCategory
android:key="quick_settings_brighness_category"
android:title="@string/qs_show_brightness_slider_title">
android:title="@string/qs_brightness_slider_category">
<!-- Brightness slider -->
<com.cherish.settings.preferences.SecureSettingListPreference
android:key="qs_show_brightness_slider"
android:title="@string/qs_show_brightness_slider_title"
@@ -82,46 +130,34 @@
</PreferenceCategory>
<PreferenceCategory
android:key="tile_layout_category"
android:title="@string/qs_tile_layout_category_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="qs_tile_label_hide"
android:title="@string/qs_tile_title_visibility_title"
android:summary="@string/qs_tile_title_visibility_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="qs_tile_vertical_layout"
android:title="@string/qs_tile_layout_title"
android:summary="@string/qs_tile_layout_summary"
android:defaultValue="false" />
</PreferenceCategory>
<PreferenceCategory
android:key="qs_layout_category"
android:title="@string/qs_layout_category_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="qs_tile_label_hide"
android:title="@string/qs_tile_label_hide_title"
android:summary="@string/qs_tile_label_hide_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_tile_label_size"
android:title="@string/qs_tile_label_size_title"
android:max="15"
settings:min="10"
settings:interval="1"
settings:units="sp"
android:defaultValue="14" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="qs_tile_vertical_layout"
android:title="@string/qs_tile_layout_title"
android:summary="@string/qs_tile_layout_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_layout_columns"
android:title="@string/qs_columns_portrait_title"
android:max="5"
settings:min="2"
settings:interval="1"
android:defaultValue="2" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_layout_columns_landscape"
android:title="@string/qs_columns_landscape_title"
android:max="6"
settings:min="2"
settings:interval="1"
android:defaultValue="4" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="qs_layout_columns"
android:title="@string/qs_columns_portrait_title"
android:max="4"
settings:min="2"
settings:interval="1"
android:defaultValue="2" />
</PreferenceCategory>

View File

@@ -1,6 +1,6 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2022 The CherishOS Projects
Copyright (C) 2020-2022 The CherishOS Project
SPDX-License-Identifier: Apache-2.0
-->
<PreferenceScreen
@@ -57,15 +57,6 @@
android:entryValues="@array/status_bar_am_pm_values"
android:defaultValue="2" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="status_bar_clock_size"
android:title="@string/clock_font_size_title"
android:max="20"
settings:min="4"
settings:interval="1"
android:defaultValue="14"
settings:units="@string/unit_pixels" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="status_bar_clock_date_display"
android:title="@string/status_bar_date_title"

View File

@@ -15,38 +15,26 @@
android:title="@string/statusbar_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<PreferenceCategory
android:title="@string/lockscreen_gesture_title">
android:title="@string/statusbar_gesture_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="double_tap_sleep_gesture"
android:title="@string/double_tap_to_sleep_title"
android:summary="@string/double_tap_to_sleep_summary"
android:title="@string/double_tap_to_sleep_statusbar_title"
android:summary="@string/double_tap_to_sleep_statusbar_summary"
android:defaultValue="true" />
</PreferenceCategory>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="statusbar_clock_chip"
android:title="@string/statusbar_clock_chip_title"
android:summary="@string/statusbar_clock_chip_summary"
android:defaultValue="false" />
<Preference
android:key="network_traffic_settings"
android:title="@string/network_traffic_title"
android:summary="@string/network_traffic_summary"
android:fragment="com.cherish.settings.fragments.NetworkTrafficSettings" />
<Preference
android:key="battery_settings"
android:fragment="com.cherish.settings.fragments.StatusBarBattery"
android:title="@string/battery_style_title"
android:summary="@string/battery_style_summary" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/status_bar_icons_category_title">
android:key="statusbar_icons"
android:title="@string/sb_icons">
<Preference
android:key="traffic"
android:fragment="com.cherish.settings.fragments.Traffic"
android:title="@string/traffic_title"
android:summary="@string/traffic_summary" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="status_bar_clock"
@@ -57,26 +45,36 @@
android:entryValues="@array/status_bar_clock_position_values"
android:defaultValue="2" />
<Preference
<Preference
android:key="clock"
android:title="@string/status_bar_clock_title"
android:summary="@string/status_bar_clock_summary"
android:fragment="com.cherish.settings.fragments.Clock" />
<Preference
android:key="status_bar_icons"
android:title="@string/status_bar_icons_title"
android:summary="@string/status_bar_icons_summary">
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.systemui"
android:targetClass="com.android.systemui.tuner.StatusbarItemsActivity" />
</Preference>
<SwitchPreference
android:key="statusbar_clock_chip"
android:title="@string/status_bar_show_clock_bg"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="status_bar_clock_size"
android:title="@string/status_bar_clock_font_size_title"
android:max="20"
settings:min="4"
android:defaultValue="14"
settings:units="dp"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="data_disabled_icon"
android:title="@string/data_disabled_icon_title"
android:summary="@string/data_disabled_icon_summary"
android:defaultValue="true" />
android:defaultValue="true"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="show_fourg_icon"
android:title="@string/show_fourg_icon_title"
android:summary="@string/show_fourg_icon_summary"
android:defaultValue="false"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="show_volte_icon"
@@ -93,67 +91,64 @@
android:defaultValue="0"
android:dependency="show_volte_icon"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="vowifi_icon"
android:title="@string/vowifi_icon_title"
android:entries="@array/vowifi_icon_entries"
android:entryValues="@array/vowifi_icon_values"
android:summary="%s"
android:defaultValue="0"/>
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="vowifi_icon_style"
android:title="@string/vowifi_icon_style_title"
android:entries="@array/vowifi_icon_style_entries"
android:entryValues="@array/vowifi_icon_style_values"
android:summary="%s"
android:defaultValue="0"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="show_wifi_standard_icon"
android:title="@string/show_wifi_standard_icon_title"
android:summary="@string/show_wifi_standard_icon_summary"
android:defaultValue="false"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="roaming_indicator_icon"
android:title="@string/roaming_indicator_icon_title"
android:summary="@string/roaming_indicator_icon_summary"
android:defaultValue="true"/>
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="use_old_mobiletype"
android:title="@string/use_old_mobiletype_title"
android:summary="@string/use_old_mobiletype_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="show_fourg_icon"
android:title="@string/show_fourg_icon_title"
android:summary="@string/show_fourg_icon_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="show_combined_status_bar_signal_icons"
android:title="@string/combined_status_bar_signal_icons"
android:summary="@string/combined_status_bar_signal_icons_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="roaming_indicator_icon"
android:title="@string/roaming_indicator_icon_title"
android:summary="@string/roaming_indicator_icon_summary"
android:defaultValue="false" />
android:key="statusbar_icons_style"
android:title="@string/statusbar_icons_style"
android:summary="@string/statusbar_icons_style_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="enable_camera_privacy_indicator"
android:title="@string/mic_camera_privacy_indicator_title"
android:summary="@string/mic_camera_privacy_indicator_summary"
android:defaultValue="true" />
<Preference
android:key="battery_settings"
android:title="@string/battery_style_category_title"
android:fragment="com.cherish.settings.fragments.StatusBarBattery" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="enable_location_privacy_indicator"
android:title="@string/location_privacy_indicator_title"
android:summary="@string/location_privacy_indicator_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="enable_projection_privacy_indicator"
android:title="@string/projection_privacy_indicator_title"
android:summary="@string/projection_privacy_indicator_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="statusbar_notif_count"
android:title="@string/statusbar_notif_count_title"
android:summary="@string/statusbar_notif_count_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="statusbar_colored_icons"
android:title="@string/statusbar_colored_icons_title"
android:summary="@string/statusbar_colored_icons_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="bluetooth_show_battery"
android:title="@string/bluetooth_battery_title"
android:summary="@string/bluetooth_battery_summary"
android:defaultValue="true"/>
<!-- Birghtness control -->
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="status_bar_brightness_control"
android:title="@string/status_bar_brightness_control_title"
android:summary="@string/status_bar_brightness_control_summary"
android:defaultValue="false" />
<Preference
android:key="systemui_tuner_statusbar"
android:title="@string/statusbar_items_category" >
<intent android:action="android.intent.action.MAIN"
android:targetPackage="com.android.systemui"
android:targetClass="com.android.systemui.tuner.StatusbarItemsActivity" />
</Preference>
</PreferenceCategory>

View File

@@ -18,7 +18,7 @@
android:title="@string/theme_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<PreferenceCategory
<PreferenceCategory
android:key="settings_layout_category"
android:title="@string/settings_layout_category_title">
@@ -48,11 +48,50 @@
android:summary="@string/disable_usercard_summary"
android:defaultValue="false" />
</PreferenceCategory>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="system_black_theme"
android:title="@string/system_black_theme_title"
android:summary="@string/system_black_theme_summary"
android:defaultValue="false" />
<PreferenceCategory
android:title="@string/notification_material_dismiss_button_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="notification_material_dismiss"
android:title="@string/notification_material_dismiss_button_title"
android:summary="@string/notification_material_dismiss_button_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="notification_material_dismiss_style"
android:title="@string/clearall_style_title"
android:dependency="notification_material_dismiss"
android:defaultValue="0"
android:max="9"
android:min="0" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="notification_material_dismiss_bgstyle"
android:title="@string/clearall_bgstyle_title"
android:dependency="notification_material_dismiss"
android:defaultValue="0"
android:max="4"
android:min="0" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/theme_customization_category">
<Preference
android:key="monet_engine"
android:title="@string/monet_engine_title"
android:summary="@string/monet_engine_summary"
android:fragment="com.cherish.settings.fragments.MonetEngine" />
<Preference
android:key="dark_ui_mode"
android:title="@string/dark_ui_mode"
@@ -60,16 +99,6 @@
android:fragment="com.android.settings.display.darkmode.DarkModeSettingsFragment"
settings:controller="com.android.settings.display.DarkUIPreferenceController" />
<!-- QS style -->
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="qs_panel_style"
android:title="@string/qs_styles_title"
android:dialogTitle="@string/qs_styles_title"
android:entries="@array/qs_styles_entries"
android:entryValues="@array/qs_styles_values"
android:summary="%s"
android:defaultValue="0" />
<!-- Font style -->
<Preference
android:key="android.theme.customization.font"

View File

@@ -0,0 +1,81 @@
<?xml version="1.0" encoding="UTF-8"?>
<!-- Copyright (C) 2020-2022 The CherishOS 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
android:title="@string/traffic_title"
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="network_traffic_location"
android:title="@string/network_traffic_location_title"
android:summary="%s"
android:entries="@array/network_traffic_location_entries"
android:entryValues="@array/network_traffic_location_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="network_traffic_autohide"
android:title="@string/network_traffic_autohide"
android:summary="@string/network_traffic_autohide_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="network_traffic_autohide_threshold"
android:title="@string/network_traffic_autohide_threshold_title"
android:defaultValue="0"
android:max="10000"
settings:min="0"
settings:units="@string/network_traffic_autohide_kilobytes"
settings:interval="10"
android:dependency="network_traffic_autohide" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="network_traffic_mode"
android:title="@string/network_traffic_mode_title"
android:entries="@array/network_traffic_mode_entries"
android:entryValues="@array/network_traffic_mode_values"
android:summary="%s"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="network_traffic_refresh_interval"
android:title="@string/network_traffic_refresh_interval_title"
android:summary="@string/network_traffic_refresh_interval_summary"
android:defaultValue="2"
android:max="10"
settings:min="1"
settings:units="@string/unit_seconds" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="network_traffic_units"
android:title="@string/network_traffic_units_title"
android:entries="@array/network_traffic_units_entries"
android:entryValues="@array/network_traffic_units_values"
android:summary="%s"
android:defaultValue="1" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="network_traffic_hidearrow"
android:title="@string/network_traffic_hidearrow"
android:summary="@string/network_traffic_hidearrow_summary" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="network_traffic_font_size"
android:title="@string/network_traffic_font_size"
android:max="24"
settings:min="14"
settings:defaultValue="18"
settings:units="dp" />
</PreferenceScreen>

View File

@@ -1,12 +1,19 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2019-2022 The CherishOS Projects
SPDX-License-Identifier: Apache-2.0
<!-- Copyright (C) 2020-22 The CherishOS Projects
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/com.android.settings"
android:title="@string/udfps_category">
android:title="@string/udfps_category">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="udfps_haptic_feedback"
@@ -14,28 +21,27 @@
android:summary="@string/udfps_haptic_feedback_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="udfps_success_vib"
android:title="@string/udfps_success_vib_title"
android:summary="@string/udfps_success_vib_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="fingerprint_success_vib"
android:title="@string/fprint_sucess_vib_title"
android:summary="@string/fprint_sucess_vib_summary"
android:persistent="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="udfps_error_vib"
android:title="@string/udfps_error_vib_title"
android:summary="@string/udfps_error_vib_summary"
android:defaultValue="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="fingerprint_error_vib"
android:title="@string/fprint_error_vib_title"
android:summary="@string/fprint_error_vib_summary"
android:persistent="true" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="screen_off_fod"
android:title="@string/screen_off_fod_title"
android:summary="@string/screen_off_fod_summary"
android:defaultValue="true" />
<PreferenceCategory
android:key="udfps_customization"
android:title="@string/udfps_customization">
<Preference
android:key="udfps_icon_picker"
android:title="@string/udfps_icon_picker_title"
android:summary="@string/udfps_icon_picker_summary"
android:fragment="com.cherish.settings.fragments.UdfpsIconPicker" />
android:title="UDFPS Customization">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="custom_fp_icon_enabled"
@@ -48,20 +54,20 @@
android:title="@string/custom_fp_select_title"
android:summary="@string/custom_fp_select_summary"
android:dependency="custom_fp_icon_enabled"
android:persistent="false">
android:persistent="false" >
</Preference>
<Preference
android:key="udfps_icon_picker"
android:title="@string/udfps_icon_picker_title"
android:summary="@string/udfps_icon_picker_summary"
android:fragment="com.cherish.settings.fragments.UdfpsIconPicker" />
<Preference
android:key="udfps_recognizing_animation_preview"
android:title="@string/udfps_recog_animation_effect_title"
android:summary="@string/udfps_recog_animation_effect_summary"
android:fragment="com.cherish.settings.fragments.UdfpsAnimation" />
<Preference
android:key="udfps_pressedicon_picker"
android:title="@string/udfps_pressed_color_title"
android:summary="@string/udfps_pressed_color_summary"
android:fragment="com.cherish.settings.fragments.UdfpsPressedIconPicker" />
android:fragment="com.cherish.settings.fragments.UdfpsAnimation"/>
</PreferenceCategory>

View File

@@ -15,49 +15,6 @@
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/volume_steps_fragment_title">
<ListPreference
android:key="volume_steps_alarm"
android:title="@string/volume_steps_alarm_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_dtmf"
android:title="@string/volume_steps_dtmf_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_music"
android:title="@string/volume_steps_music_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_notification"
android:title="@string/volume_steps_notification_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_ring"
android:title="@string/volume_steps_ring_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_system"
android:title="@string/volume_steps_system_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_voice_call"
android:title="@string/volume_steps_voice_call_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
</PreferenceScreen>

View File

@@ -0,0 +1,62 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2015 The Pure Nexus Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/volume_steps_fragment_title">
<ListPreference
android:key="volume_steps_alarm"
android:title="@string/volume_steps_alarm_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_dtmf"
android:title="@string/volume_steps_dtmf_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_music"
android:title="@string/volume_steps_music_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_notification"
android:title="@string/volume_steps_notification_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_ring"
android:title="@string/volume_steps_ring_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_system"
android:title="@string/volume_steps_system_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
<ListPreference
android:key="volume_steps_voice_call"
android:title="@string/volume_steps_voice_call_title"
android:entries="@array/volume_steps_entries"
android:entryValues="@array/volume_steps_entries" />
</PreferenceScreen>

View File

@@ -0,0 +1,105 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2020 Yet Another AOSP Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/pulse_ambient_light_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="ambient_notification_light_enabled"
android:title="@string/ambient_notification_light_enabled_title"
android:summary="@string/ambient_notification_light_enabled_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="ambient_light_pulse_for_all"
android:title="@string/pulse_ambient_light_show_always_title"
android:summary="@string/pulse_ambient_light_show_always_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="ambient_notification_light_hide_aod"
android:title="@string/ambient_notification_light_hide_aod_title"
android:summary="@string/ambient_notification_light_hide_aod_summary"
android:defaultValue="false"
android:dependency="ambient_notification_light_enabled" />
<com.cherish.settings.preferences.CustomSeekBarPreference
android:key="ambient_notification_light_duration"
android:title="@string/ambient_notification_light_duration_title"
android:summary="@string/ambient_notification_light_duration_summary"
android:max="5"
settings:min="1"
settings:defaultValue="2"
settings:units="@string/unit_seconds" />
<com.cherish.settings.preferences.CustomSeekBarPreference
android:key="ambient_notification_light_repeats"
android:title="@string/ambient_notification_light_repeats_title"
android:summary="@string/ambient_notification_light_repeats_summary"
android:max="10"
settings:min="0"
settings:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="ambient_notification_light_timeout"
android:title="@string/ambient_notification_light_timeout_title"
android:entries="@array/ambient_notification_light_timeout_entries"
android:entryValues="@array/ambient_notification_light_timeout_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="ambient_notification_color_mode"
android:title="@string/ambient_notification_color_mode_title"
android:entries="@array/ambient_notification_color_mode_entries"
android:entryValues="@array/ambient_notification_color_mode_values"
android:defaultValue="0" />
<net.margaritov.preference.colorpicker.ColorPickerPreference
android:key="ambient_notification_light_color"
android:title="@string/ambient_notification_light_color_title" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="ambient_light_repeat_direction"
android:title="@string/pulse_ambient_light_repeat_direction_title"
android:entries="@array/pulse_ambient_light_repeat_direction_entries"
android:entryValues="@array/pulse_ambient_light_repeat_direction_values"
android:summary="%s"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="ambient_light_layout"
android:title="@string/pulse_ambient_light_layout_title"
android:entries="@array/pulse_ambient_light_layout_entries"
android:entryValues="@array/pulse_ambient_light_layout_values"
android:summary="%s"
android:defaultValue="1" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="pulse_light_layout_style"
android:title="@string/pulse_light_layout_style_title"
android:entries="@array/pulse_light_layout_style_entries"
android:entryValues="@array/pulse_light_layout_style_values"
android:summary="%s"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="pulse_ambient_light_width"
android:title="@string/pulse_ambient_light_width_title"
android:max="150"
android:min="1"
settings:unitsLeft=""
settings:unitsRight="px"
android:defaultValue="125" />
</PreferenceScreen>

View File

@@ -0,0 +1,61 @@
<?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.
-->
<PreferenceScreen xmlns:android="http://schemas.android.com/apk/res/android">
<com.cherish.settings.preferences.GlobalSettingSwitchPreference
android:key="heads_up_notifications_enabled"
android:title="@string/heads_up_notifications"
android:summaryOn="@string/summary_heads_up_enabled"
android:summaryOff="@string/summary_heads_up_disabled"
android:defaultValue="true" />
<ListPreference
android:key="heads_up_time_out"
android:title="@string/heads_up_time_out_title"
android:entries="@array/heads_up_time_out_entries"
android:entryValues="@array/heads_up_time_out_values"
android:persistent="false" />
<ListPreference
android:key="heads_up_snooze_time"
android:title="@string/heads_up_snooze_title"
android:entries="@array/heads_up_snooze_entries"
android:entryValues="@array/heads_up_snooze_values"
android:persistent="false" />
<PreferenceCategory
android:title="@string/heads_up_stoplist_title"
android:key="stoplist_applications"
android:dependency="heads_up_notifications_enabled" >
<Preference
android:key="add_stoplist_packages"
android:icon="@drawable/ic_menu_add_activated_tint"
android:title="@string/add_heads_up_package"
android:summary="@string/add_heads_up_stoplist_summary" />
</PreferenceCategory>
<PreferenceCategory
android:title="@string/heads_up_blacklist_title"
android:key="blacklist_applications"
android:dependency="heads_up_notifications_enabled" >
<Preference
android:key="add_blacklist_packages"
android:icon="@drawable/ic_menu_add_activated_tint"
android:title="@string/add_heads_up_package"
android:summary="@string/add_heads_up_blacklist_summary" />
</PreferenceCategory>
</PreferenceScreen>

View File

@@ -42,26 +42,6 @@
android:entryValues="@array/pulse_render_mode_values"
android:defaultValue="1"/>
<com.cherish.settings.preferences.SecureSettingListPreference
android:key="pulse_custom_gravity"
android:title="@string/pulse_custom_gravity_title"
android:entries="@array/pulse_custom_gravity_entries"
android:entryValues="@array/pulse_custom_gravity_values"
android:summary="%s"
android:defaultValue="0"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="visualizer_center_mirrored"
android:title="@string/visualizer_center_mirrored_title"
android:summary="@string/visualizer_center_mirrored_summary"
android:defaultValue="false"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="pulse_vertical_mirror"
android:title="@string/pulse_vertical_mirror_title"
android:summary="@string/pulse_vertical_mirror_summary"
android:defaultValue="false"/>
<com.cherish.settings.preferences.SecureSettingSwitchPreference
android:key="pulse_smoothing_enabled"
android:title="@string/pulse_smoothing_enabled_title"

View File

@@ -1,57 +0,0 @@
<?xml version="1.0" encoding="utf-8"?>
<!--
Copyright (C) 2020-2022 The CherishOS 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:settings="http://schemas.android.com/apk/res/com.android.settings"
android:title="@string/smart_charging_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="smart_charging"
android:title="@string/smart_charging_switch_title"
android:summary="@string/smart_charging_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="smart_charging_reset_stats"
android:title="@string/smart_charging_reset_stats_title"
android:summary="@string/smart_charging_reset_stats_summary"
android:defaultValue="false"
android:dependency="smart_charging" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="smart_charging_level"
android:title="@string/smart_charging_level_title"
android:max="100"
settings:min="65"
settings:units="%"
android:defaultValue="80"
android:dependency="smart_charging" />
<com.cherish.settings.preferences.SystemSettingSeekBarPreference
android:key="smart_charging_resume_level"
android:title="@string/smart_charging_resume_level_title"
android:max="99"
settings:min="15"
settings:units="%"
android:defaultValue="60"
android:dependency="smart_charging" />
<com.android.settingslib.widget.FooterPreference
android:key="smart_charging_footer"
android:selectable="false"
settings:searchable="false"
android:dependency="smart_charging" />
</PreferenceScreen>

View File

@@ -1,68 +1,41 @@
<?xml version="1.0" encoding="utf-8"?>
<!-- Copyright (C) 2017-2019 The Dirty Unicorns Project
<!-- Copyright (C) 2016 Nitrogen Project
Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at
http://www.apache.org/licenses/LICENSE-2.0
Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
-->
<PreferenceScreen
xmlns:android="http://schemas.android.com/apk/res/android"
android:title="@string/battery_style_category_title"
xmlns:settings="http://schemas.android.com/apk/res/com.android.settings">
<!-- Status bar battery customizations -->
<PreferenceCategory
android:title="@string/status_bar_battery_category_title">
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="battery_level_colors"
android:title="@string/battery_level_colors_title"
android:summary="@string/battery_level_colors_summary"
android:defaultValue="false" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="status_bar_battery_style"
android:title="@string/status_bar_battery_style_title"
android:summary="%s"
android:dialogTitle="@string/status_bar_battery_style_title"
android:entries="@array/status_bar_battery_style_entries"
android:entryValues="@array/status_bar_battery_style_values"
android:defaultValue="0" />
<ListPreference
android:key="status_bar_battery_style"
android:dialogTitle="@string/status_bar_battery_style_title"
android:title="@string/status_bar_battery_style_title"
android:entries="@array/entries_status_bar_battery"
android:entryValues="@array/values_status_bar_battery" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="status_bar_show_battery_percent"
android:title="@string/status_bar_battery_percent_title"
android:dialogTitle="@string/status_bar_battery_percent_title"
android:entries="@array/status_bar_battery_percent_entries"
android:entryValues="@array/status_bar_battery_percent_values"
android:defaultValue="0" />
<com.cherish.settings.preferences.SystemSettingSwitchPreference
android:key="status_bar_battery_text_charging"
android:title="@string/status_bar_battery_text_charging_title"
android:summary="@string/status_bar_battery_text_charging_summary"
android:defaultValue="true" />
</PreferenceCategory>
<!-- QS panel battery customizations -->
<PreferenceCategory
android:title="@string/qs_battery_category_title">
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="qs_battery_style"
android:title="@string/status_bar_battery_style_title"
android:entries="@array/qs_battery_style_entries"
android:entryValues="@array/qs_battery_style_values"
android:defaultValue="-1" />
<com.cherish.settings.preferences.SystemSettingListPreference
android:key="qs_show_battery_percent"
android:title="@string/qs_battery_percent_title"
android:entries="@array/status_bar_battery_percent_entries"
android:entryValues="@array/status_bar_battery_percent_values"
android:defaultValue="2" />
</PreferenceCategory>
<ListPreference
android:key="status_bar_show_battery_percent"
android:title="@string/status_bar_battery_percentage_title"
android:dialogTitle="@string/status_bar_battery_percentage_title"
android:entries="@array/status_bar_battery_percentage_entries"
android:entryValues="@array/status_bar_battery_percentage_values" />
</PreferenceScreen>

View File

@@ -1,49 +0,0 @@
/*
* Copyright (C) 2022 FlamingoOS 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.cherish.settings
import android.content.Context
import android.widget.Switch
import androidx.preference.Preference
import androidx.preference.PreferenceScreen
import com.android.settings.R
import com.android.settings.core.TogglePreferenceController
import com.android.settingslib.widget.MainSwitchPreference
import com.android.settingslib.widget.OnMainSwitchChangeListener
abstract class CherishTogglePreferenceController(
context: Context,
key: String,
) : TogglePreferenceController(context, key),
OnMainSwitchChangeListener {
override fun displayPreference(screen: PreferenceScreen) {
super.displayPreference(screen)
val preference = screen.findPreference<Preference>(preferenceKey) ?: return
if (preference is MainSwitchPreference) {
preference.addOnSwitchChangeListener(this)
}
}
override fun onSwitchChanged(switchView: Switch, isChecked: Boolean) {
setChecked(isChecked)
}
override fun getSliceHighlightMenuRes() = R.string.menu_key_cherish
}

View File

@@ -0,0 +1,186 @@
/*
* Copyright (C) 2021 Yet Another AOSP 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.cherish.settings.fragments;
import static com.cherish.settings.fragments.LockScreenSettings.MODE_DISABLED;
import static com.cherish.settings.fragments.LockScreenSettings.MODE_NIGHT;
import static com.cherish.settings.fragments.LockScreenSettings.MODE_TIME;
import static com.cherish.settings.fragments.LockScreenSettings.MODE_MIXED_SUNSET;
import static com.cherish.settings.fragments.LockScreenSettings.MODE_MIXED_SUNRISE;
import android.app.TimePickerDialog;
import android.content.ContentResolver;
import android.content.Context;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.format.DateFormat;
import android.widget.TimePicker;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settingslib.search.SearchIndexable;
import com.cherish.settings.preferences.SecureSettingListPreference;
import java.time.format.DateTimeFormatter;
import java.time.LocalTime;
@SearchIndexable
public class AODSchedule extends SettingsPreferenceFragment implements
Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {
private static final String MODE_KEY = "doze_always_on_auto_mode";
private static final String SINCE_PREF_KEY = "doze_always_on_auto_since";
private static final String TILL_PREF_KEY = "doze_always_on_auto_till";
private SecureSettingListPreference mModePref;
private Preference mSincePref;
private Preference mTillPref;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.always_on_display_schedule);
PreferenceScreen screen = getPreferenceScreen();
ContentResolver resolver = getActivity().getContentResolver();
mSincePref = findPreference(SINCE_PREF_KEY);
mSincePref.setOnPreferenceClickListener(this);
mTillPref = findPreference(TILL_PREF_KEY);
mTillPref.setOnPreferenceClickListener(this);
int mode = Settings.Secure.getIntForUser(resolver,
MODE_KEY, MODE_DISABLED, UserHandle.USER_CURRENT);
mModePref = (SecureSettingListPreference) findPreference(MODE_KEY);
mModePref.setValue(String.valueOf(mode));
mModePref.setSummary(mModePref.getEntry());
mModePref.setOnPreferenceChangeListener(this);
updateTimeEnablement(mode);
updateTimeSummary(mode);
}
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
int value = Integer.parseInt((String) objValue);
int index = mModePref.findIndexOfValue((String) objValue);
mModePref.setSummary(mModePref.getEntries()[index]);
Settings.Secure.putIntForUser(getActivity().getContentResolver(),
MODE_KEY, value, UserHandle.USER_CURRENT);
updateTimeEnablement(value);
updateTimeSummary(value);
return true;
}
@Override
public boolean onPreferenceClick(Preference preference) {
String[] times = getCustomTimeSetting();
boolean isSince = preference == mSincePref;
int hour, minute;
TimePickerDialog.OnTimeSetListener listener = (view, hourOfDay, minute1) -> {
updateTimeSetting(isSince, hourOfDay, minute1);
};
if (isSince) {
String[] sinceValues = times[0].split(":", 0);
hour = Integer.parseInt(sinceValues[0]);
minute = Integer.parseInt(sinceValues[1]);
} else {
String[] tillValues = times[1].split(":", 0);
hour = Integer.parseInt(tillValues[0]);
minute = Integer.parseInt(tillValues[1]);
}
TimePickerDialog dialog = new TimePickerDialog(getContext(), listener,
hour, minute, DateFormat.is24HourFormat(getContext()));
dialog.show();
return true;
}
private String[] getCustomTimeSetting() {
String value = Settings.Secure.getStringForUser(getActivity().getContentResolver(),
Settings.Secure.DOZE_ALWAYS_ON_AUTO_TIME, UserHandle.USER_CURRENT);
if (value == null || value.equals("")) value = "20:00,07:00";
return value.split(",", 0);
}
private void updateTimeEnablement(int mode) {
mSincePref.setEnabled(mode == MODE_TIME || mode == MODE_MIXED_SUNRISE);
mTillPref.setEnabled(mode == MODE_TIME || mode == MODE_MIXED_SUNSET);
}
private void updateTimeSummary(int mode) {
updateTimeSummary(getCustomTimeSetting(), mode);
}
private void updateTimeSummary(String[] times, int mode) {
if (mode == MODE_DISABLED) {
mSincePref.setSummary("-");
mTillPref.setSummary("-");
return;
}
if (mode == MODE_NIGHT) {
mSincePref.setSummary(R.string.always_on_display_schedule_sunset);
mTillPref.setSummary(R.string.always_on_display_schedule_sunrise);
return;
}
String outputFormat = DateFormat.is24HourFormat(getContext()) ? "HH:mm" : "hh:mm a";
DateTimeFormatter outputFormatter = DateTimeFormatter.ofPattern(outputFormat);
DateTimeFormatter formatter = DateTimeFormatter.ofPattern("HH:mm");
LocalTime sinceDT = LocalTime.parse(times[0], formatter);
LocalTime tillDT = LocalTime.parse(times[1], formatter);
if (mode == MODE_MIXED_SUNSET) {
mSincePref.setSummary(R.string.always_on_display_schedule_sunset);
mTillPref.setSummary(tillDT.format(outputFormatter));
} else if (mode == MODE_MIXED_SUNRISE) {
mTillPref.setSummary(R.string.always_on_display_schedule_sunrise);
mSincePref.setSummary(sinceDT.format(outputFormatter));
} else {
mSincePref.setSummary(sinceDT.format(outputFormatter));
mTillPref.setSummary(tillDT.format(outputFormatter));
}
}
private void updateTimeSetting(boolean since, int hour, int minute) {
String[] times = getCustomTimeSetting();
String nHour = "";
String nMinute = "";
if (hour < 10) nHour += "0";
if (minute < 10) nMinute += "0";
nHour += String.valueOf(hour);
nMinute += String.valueOf(minute);
times[since ? 0 : 1] = nHour + ":" + nMinute;
Settings.Secure.putStringForUser(getActivity().getContentResolver(),
Settings.Secure.DOZE_ALWAYS_ON_AUTO_TIME,
times[0] + "," + times[1], UserHandle.USER_CURRENT);
updateTimeSummary(times, Integer.parseInt(mModePref.getValue()));
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.always_on_display_schedule);
}

View File

@@ -55,9 +55,13 @@ import java.util.List;
public class AnimationsSettings extends SettingsPreferenceFragment
implements OnPreferenceChangeListener {
private static final String POWER_MENU_ANIMATIONS = "power_menu_animations";
private static final String PREF_TILE_ANIM_STYLE = "qs_tile_animation_style";
private static final String PREF_TILE_ANIM_DURATION = "qs_tile_animation_duration";
private static final String PREF_TILE_ANIM_INTERPOLATOR = "qs_tile_animation_interpolator";
private ListPreference mPowerMenuAnimations;
private ListPreference mTileAnimationStyle;
private ListPreference mTileAnimationDuration;
private ListPreference mTileAnimationInterpolator;
@Override
public int getMetricsCategory() {
@@ -71,11 +75,28 @@ public class AnimationsSettings extends SettingsPreferenceFragment
ContentResolver resolver = getActivity().getContentResolver();
PreferenceScreen prefs = getPreferenceScreen();
mPowerMenuAnimations = (ListPreference) findPreference(POWER_MENU_ANIMATIONS);
mPowerMenuAnimations.setValue(String.valueOf(Settings.System.getInt(
getContentResolver(), Settings.System.POWER_MENU_ANIMATIONS, 0)));
mPowerMenuAnimations.setSummary(mPowerMenuAnimations.getEntry());
mPowerMenuAnimations.setOnPreferenceChangeListener(this);
// QS animation
mTileAnimationStyle = (ListPreference) findPreference(PREF_TILE_ANIM_STYLE);
int tileAnimationStyle = Settings.System.getIntForUser(resolver,
Settings.System.ANIM_TILE_STYLE, 0, UserHandle.USER_CURRENT);
mTileAnimationStyle.setValue(String.valueOf(tileAnimationStyle));
updateTileAnimationStyleSummary(tileAnimationStyle);
updateAnimTileStyle(tileAnimationStyle);
mTileAnimationStyle.setOnPreferenceChangeListener(this);
mTileAnimationDuration = (ListPreference) findPreference(PREF_TILE_ANIM_DURATION);
int tileAnimationDuration = Settings.System.getIntForUser(resolver,
Settings.System.ANIM_TILE_DURATION, 2000, UserHandle.USER_CURRENT);
mTileAnimationDuration.setValue(String.valueOf(tileAnimationDuration));
updateTileAnimationDurationSummary(tileAnimationDuration);
mTileAnimationDuration.setOnPreferenceChangeListener(this);
mTileAnimationInterpolator = (ListPreference) findPreference(PREF_TILE_ANIM_INTERPOLATOR);
int tileAnimationInterpolator = Settings.System.getIntForUser(getContentResolver(),
Settings.System.ANIM_TILE_INTERPOLATOR, 0, UserHandle.USER_CURRENT);
mTileAnimationInterpolator.setValue(String.valueOf(tileAnimationInterpolator));
updateTileAnimationInterpolatorSummary(tileAnimationInterpolator);
mTileAnimationInterpolator.setOnPreferenceChangeListener(this);
}
@Override
@@ -85,17 +106,59 @@ public class AnimationsSettings extends SettingsPreferenceFragment
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mPowerMenuAnimations) {
Settings.System.putInt(getContentResolver(), Settings.System.POWER_MENU_ANIMATIONS,
Integer.valueOf((String) newValue));
mPowerMenuAnimations.setValue(String.valueOf(newValue));
mPowerMenuAnimations.setSummary(mPowerMenuAnimations.getEntry());
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mTileAnimationStyle) {
int tileAnimationStyle = Integer.valueOf((String) newValue);
Settings.System.putIntForUser(resolver, Settings.System.ANIM_TILE_STYLE,
tileAnimationStyle, UserHandle.USER_CURRENT);
updateTileAnimationStyleSummary(tileAnimationStyle);
updateAnimTileStyle(tileAnimationStyle);
return true;
} else if (preference == mTileAnimationDuration) {
int tileAnimationDuration = Integer.valueOf((String) newValue);
Settings.System.putIntForUser(resolver, Settings.System.ANIM_TILE_DURATION,
tileAnimationDuration, UserHandle.USER_CURRENT);
updateTileAnimationDurationSummary(tileAnimationDuration);
return true;
} else if (preference == mTileAnimationInterpolator) {
int tileAnimationInterpolator = Integer.valueOf((String) newValue);
Settings.System.putIntForUser(resolver, Settings.System.ANIM_TILE_INTERPOLATOR,
tileAnimationInterpolator, UserHandle.USER_CURRENT);
updateTileAnimationInterpolatorSummary(tileAnimationInterpolator);
return true;
}
return false;
}
return false;
}
private void updateTileAnimationStyleSummary(int tileAnimationStyle) {
String prefix = (String) mTileAnimationStyle.getEntries()[mTileAnimationStyle.findIndexOfValue(String
.valueOf(tileAnimationStyle))];
mTileAnimationStyle.setSummary(getResources().getString(R.string.qs_set_animation_style, prefix));
}
private void updateTileAnimationDurationSummary(int tileAnimationDuration) {
String prefix = (String) mTileAnimationDuration.getEntries()[mTileAnimationDuration.findIndexOfValue(String
.valueOf(tileAnimationDuration))];
mTileAnimationDuration.setSummary(getResources().getString(R.string.qs_set_animation_duration, prefix));
}
private void updateTileAnimationInterpolatorSummary(int tileAnimationInterpolator) {
String prefix = (String) mTileAnimationInterpolator.getEntries()[mTileAnimationInterpolator.findIndexOfValue(String
.valueOf(tileAnimationInterpolator))];
mTileAnimationInterpolator.setSummary(getResources().getString(R.string.qs_set_animation_interpolator, prefix));
}
private void updateAnimTileStyle(int tileAnimationStyle) {
if (mTileAnimationDuration != null) {
if (tileAnimationStyle == 0) {
mTileAnimationDuration.setSelectable(false);
mTileAnimationInterpolator.setSelectable(false);
} else {
mTileAnimationDuration.setSelectable(true);
mTileAnimationInterpolator.setSelectable(true);
}
}
}
/**
* For Search.
*/

View File

@@ -16,7 +16,7 @@
package com.cherish.settings.fragment
import android.annotation.IntDef
import android.content.Context
import android.content.pm.PackageInfo
import android.content.pm.PackageManager
import android.graphics.drawable.Drawable
@@ -35,7 +35,6 @@ import android.widget.TextView
import androidx.core.view.ViewCompat
import androidx.fragment.app.Fragment
import androidx.lifecycle.lifecycleScope
import androidx.recyclerview.widget.DiffUtil
import androidx.recyclerview.widget.LinearLayoutManager
import androidx.recyclerview.widget.ListAdapter
@@ -44,6 +43,8 @@ import androidx.recyclerview.widget.RecyclerView
import com.android.settings.R
import com.google.android.material.appbar.AppBarLayout
import kotlinx.coroutines.CoroutineScope
import kotlinx.coroutines.cancel
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.launch
import kotlinx.coroutines.sync.Mutex
@@ -56,29 +57,38 @@ import kotlinx.coroutines.withContext
* and package name of the application, along with a [CheckBox]
* indicating whether the item is selected or not.
*/
abstract class AppListFragment : Fragment(R.layout.app_list_layout),
MenuItem.OnActionExpandListener {
abstract class AppListFragment: Fragment(R.layout.app_list_layout), MenuItem.OnActionExpandListener {
private val mutex = Mutex()
private lateinit var pm: PackageManager
private lateinit var fragmentScope: CoroutineScope
private lateinit var progressBar: ProgressBar
private lateinit var appBarLayout: AppBarLayout
private lateinit var packageManager: PackageManager
private lateinit var recyclerView: RecyclerView
private lateinit var adapter: AppListAdapter
private var appBarLayout: AppBarLayout? = null
private var recyclerView: RecyclerView? = null
private var progressBar: ProgressBar? = null
private val packageList = mutableListOf<PackageInfo>()
private var searchText = ""
private var displayCategory: Int = CATEGORY_USER_ONLY
private var packageFilter: (PackageInfo) -> Boolean = { true }
private var packageComparator: (PackageInfo, PackageInfo) -> Int = { first, second ->
getLabel(first).compareTo(getLabel(second))
private var packageFilter: ((PackageInfo) -> Boolean) = { true }
private var packageComparator: ((PackageInfo, PackageInfo) -> Int) = { a, b ->
getLabel(a).compareTo(getLabel(b))
}
private var needsToHideProgressBar = false
override fun onAttach(context: Context) {
super.onAttach(context)
fragmentScope = CoroutineScope(Dispatchers.Main)
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
setHasOptionsMenu(true)
pm = requireContext().packageManager
packageManager = requireContext().packageManager
packageList.addAll(packageManager.getInstalledPackages(0))
}
/**
@@ -87,19 +97,15 @@ abstract class AppListFragment : Fragment(R.layout.app_list_layout),
abstract protected fun getTitle(): Int
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
val activity = requireActivity()
activity.setTitle(getTitle())
appBarLayout = activity.findViewById(R.id.app_bar)
requireActivity().setTitle(getTitle())
appBarLayout = requireActivity().findViewById(R.id.app_bar)
progressBar = view.findViewById(R.id.loading_progress)
adapter = AppListAdapter(getInitialCheckedList(), layoutInflater).apply {
setOnAppSelectListener { onAppSelected(it) }
setOnAppDeselectListener { onAppDeselected(it) }
setOnListUpdateListener { onListUpdate(it) }
}
recyclerView = view.findViewById<RecyclerView>(R.id.apps_list)?.also {
adapter = AppListAdapter()
recyclerView = view.findViewById<RecyclerView>(R.id.apps_list).also {
it.layoutManager = LinearLayoutManager(context)
it.adapter = adapter
}
needsToHideProgressBar = true
refreshList()
}
@@ -112,21 +118,19 @@ abstract class AppListFragment : Fragment(R.layout.app_list_layout),
override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
inflater.inflate(R.menu.app_list_menu, menu)
val searchItem = menu.findItem(R.id.search).also {
if (appBarLayout != null) {
it.setOnActionExpandListener(this)
}
it.setOnActionExpandListener(this)
}
val searchView = searchItem.actionView as SearchView
searchView.setQueryHint(getString(R.string.search_apps))
searchView.setOnQueryTextListener(object : SearchView.OnQueryTextListener {
searchView.setQueryHint(getString(R.string.search_apps));
searchView.setOnQueryTextListener(object: SearchView.OnQueryTextListener {
override fun onQueryTextSubmit(query: String) = false
override fun onQueryTextChange(newText: String): Boolean {
lifecycleScope.launch {
fragmentScope.launch {
mutex.withLock {
searchText = newText
}
refreshListInternal()
refreshList()
}
return true
}
@@ -135,29 +139,34 @@ abstract class AppListFragment : Fragment(R.layout.app_list_layout),
override fun onMenuItemActionExpand(item: MenuItem): Boolean {
// To prevent a large space on tool bar.
appBarLayout?.setExpanded(false /*expanded*/, false /*animate*/)
appBarLayout.setExpanded(false /*expanded*/, false /*animate*/)
// To prevent user expanding the collapsing tool bar view.
recyclerView?.let { ViewCompat.setNestedScrollingEnabled(it, false) }
ViewCompat.setNestedScrollingEnabled(recyclerView, false)
return true
}
override fun onMenuItemActionCollapse(item: MenuItem): Boolean {
// We keep the collapsed status after user cancel the search function.
appBarLayout?.setExpanded(false /*expanded*/, false /*animate*/)
appBarLayout.setExpanded(false /*expanded*/, false /*animate*/)
// Allow user to expande the tool bar view.
recyclerView?.let { ViewCompat.setNestedScrollingEnabled(it, true) }
ViewCompat.setNestedScrollingEnabled(recyclerView, true)
return true
}
override fun onDetach() {
fragmentScope.cancel()
super.onDetach()
}
/**
* Set the type of apps that should be displayed in the list.
* Defaults to [CATEGORY_USER_ONLY].
*
* @param category one of [CATEGORY_SYSTEM_ONLY],
* [CATEGORY_USER_ONLY], [CATEGORY_BOTH]
* [CATEGORY_USER_ONLY], [CATEGORY_BOTH]
*/
fun setDisplayCategory(@Category category: Int) {
lifecycleScope.launch {
fun setDisplayCategory(category: Int) {
fragmentScope.launch {
mutex.withLock {
displayCategory = category
}
@@ -168,10 +177,10 @@ abstract class AppListFragment : Fragment(R.layout.app_list_layout),
* Set a custom filter to filter out items from the list.
*
* @param customFilter a function that takes a [PackageInfo] and
* returns a [Boolean] indicating whether to show the item or not.
* returns a [Boolean] indicating whether to show the item or not.
*/
fun setCustomFilter(customFilter: (PackageInfo) -> Boolean) {
lifecycleScope.launch {
fun setCustomFilter(customFilter: ((packageInfo: PackageInfo) -> Boolean)) {
fragmentScope.launch {
mutex.withLock {
packageFilter = customFilter
}
@@ -179,13 +188,13 @@ abstract class AppListFragment : Fragment(R.layout.app_list_layout),
}
/**
* Set a [Comparator] for sorting the elements in the list.
* Set a [Comparator] for sorting the elements in the list..
*
* @param comparator a function that takes two [PackageInfo]'s and returns
* an [Int] representing their relative priority.
* an [Int] representing their relative priority.
*/
fun setComparator(comparator: (PackageInfo, PackageInfo) -> Int) {
lifecycleScope.launch {
fun setComparator(comparator: ((a: PackageInfo, b: PackageInfo) -> Int)) {
fragmentScope.launch {
mutex.withLock {
packageComparator = comparator
}
@@ -213,111 +222,75 @@ abstract class AppListFragment : Fragment(R.layout.app_list_layout),
*/
open protected fun onAppDeselected(packageName: String) {}
fun refreshList() {
lifecycleScope.launch {
refreshListInternal()
protected fun refreshList() {
fragmentScope.launch {
val list = withContext(Dispatchers.Default) {
mutex.withLock {
packageList.filter {
when (displayCategory) {
CATEGORY_SYSTEM_ONLY -> it.applicationInfo.isSystemApp()
CATEGORY_USER_ONLY -> !it.applicationInfo.isSystemApp()
else -> true
} &&
getLabel(it).contains(searchText, true) &&
packageFilter(it)
}.sortedWith(packageComparator).map { appInfofromPackage(it) }
}
}
adapter.submitList(list)
if (needsToHideProgressBar) {
progressBar.visibility = View.GONE
needsToHideProgressBar = false
}
}
}
private suspend fun refreshListInternal() {
val list = withContext(Dispatchers.Default) {
val sortedList = mutex.withLock {
pm.getInstalledPackages(PackageManager.MATCH_ALL).filter {
val categoryMatches = when (displayCategory) {
CATEGORY_SYSTEM_ONLY -> it.applicationInfo.isSystemApp()
CATEGORY_USER_ONLY -> !it.applicationInfo.isSystemApp()
else -> true
}
categoryMatches && packageFilter(it) &&
getLabel(it).contains(searchText, true)
}.sortedWith(packageComparator)
}
sortedList.map {
AppInfo(
it.packageName,
getLabel(it),
it.applicationInfo.loadIcon(pm),
)
}
}
adapter.submitList(list)
progressBar?.visibility = View.GONE
}
private fun appInfofromPackage(packageInfo: PackageInfo): AppInfo =
AppInfo(
packageInfo.packageName,
getLabel(packageInfo),
packageInfo.applicationInfo.loadIcon(packageManager),
)
private fun getLabel(packageInfo: PackageInfo) =
packageInfo.applicationInfo.loadLabel(pm).toString()
packageInfo.applicationInfo.loadLabel(packageManager).toString()
private class AppListAdapter(
initialCheckedList: List<String>,
private val layoutInflater: LayoutInflater
) : ListAdapter<AppInfo, AppListViewHolder>(itemCallback) {
private inner class AppListAdapter :
ListAdapter<AppInfo, AppListViewHolder>(itemCallback)
{
private val checkedList = getInitialCheckedList().toMutableList()
private val checkedList = initialCheckedList.toMutableList()
private var appSelectListener: (String) -> Unit = {}
private var appDeselectListener: (String) -> Unit = {}
private var listUpdateListener: (List<String>) -> Unit = {}
override fun onCreateViewHolder(
parent: ViewGroup,
viewType: Int
) = AppListViewHolder(
layoutInflater.inflate(
R.layout.app_list_item,
parent,
false /* attachToParent */
)
)
override fun onCreateViewHolder(parent: ViewGroup, viewType: Int) =
AppListViewHolder(layoutInflater.inflate(
R.layout.app_list_item, parent, false))
override fun onBindViewHolder(holder: AppListViewHolder, position: Int) {
val item = getItem(position)
holder.label.text = item.label
holder.packageName.text = item.packageName
val pkg = item.packageName
holder.label.setText(item.label)
holder.packageName.setText(pkg)
holder.icon.setImageDrawable(item.icon)
holder.checkBox.isChecked = checkedList.contains(item.packageName)
holder.checkBox.setChecked(checkedList.contains(pkg))
holder.itemView.setOnClickListener {
if (checkedList.contains(item.packageName)) {
checkedList.remove(item.packageName)
appDeselectListener(item.packageName)
if (checkedList.contains(pkg)){
checkedList.remove(pkg)
onAppDeselected(pkg)
} else {
checkedList.add(item.packageName)
appSelectListener(item.packageName)
checkedList.add(pkg)
onAppSelected(pkg)
}
notifyItemChanged(position)
listUpdateListener(checkedList.toList())
}
}
fun setOnAppSelectListener(listener: (String) -> Unit) {
appSelectListener = listener
}
fun setOnAppDeselectListener(listener: (String) -> Unit) {
appDeselectListener = listener
}
fun setOnListUpdateListener(listener: (List<String>) -> Unit) {
listUpdateListener = listener
}
companion object {
private val itemCallback = object : DiffUtil.ItemCallback<AppInfo>() {
override fun areItemsTheSame(oldInfo: AppInfo, newInfo: AppInfo) =
oldInfo.packageName == newInfo.packageName
override fun areContentsTheSame(oldInfo: AppInfo, newInfo: AppInfo) =
oldInfo == newInfo
onListUpdate(checkedList.toList())
}
}
}
private class AppListViewHolder(
itemView: View
) : RecyclerView.ViewHolder(itemView) {
private class AppListViewHolder(itemView: View) :
RecyclerView.ViewHolder(itemView) {
val icon: ImageView = itemView.findViewById(R.id.icon)
val label: TextView = itemView.findViewById(R.id.label)
val packageName: TextView = itemView.findViewById(R.id.package_name)
val checkBox: CheckBox = itemView.findViewById(R.id.check_box)
val packageName: TextView = itemView.findViewById(R.id.packageName)
val checkBox: CheckBox = itemView.findViewById(R.id.checkBox)
}
private data class AppInfo(
@@ -327,16 +300,18 @@ abstract class AppListFragment : Fragment(R.layout.app_list_layout),
)
companion object {
private const val TAG = "AppListFragment"
const val CATEGORY_SYSTEM_ONLY = 0
const val CATEGORY_USER_ONLY = 1
const val CATEGORY_BOTH = 2
@IntDef(value = intArrayOf(
CATEGORY_SYSTEM_ONLY,
CATEGORY_USER_ONLY,
CATEGORY_BOTH
))
@Retention(AnnotationRetention.SOURCE)
annotation class Category
private val itemCallback = object : DiffUtil.ItemCallback<AppInfo>() {
override fun areItemsTheSame(oldInfo: AppInfo, newInfo: AppInfo) =
oldInfo.packageName == newInfo.packageName
override fun areContentsTheSame(oldInfo: AppInfo, newInfo: AppInfo) =
oldInfo == newInfo
}
}
}

View File

@@ -18,49 +18,58 @@
package com.cherish.settings.fragments;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.content.Context;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.Settings;
import android.view.View;
import android.os.Vibrator;
import android.os.RemoteException;
import android.os.PowerManager;
import android.os.ServiceManager;
import androidx.preference.PreferenceCategory;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.SwitchPreference;
import com.android.internal.lineage.hardware.LineageHardwareManager;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import android.provider.Settings;
import android.widget.Toast;
import com.android.settings.R;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
import com.cherish.settings.preferences.SecureSettingSwitchPreference;
import com.android.internal.custom.hardware.LineageHardwareManager;
import com.android.internal.logging.nano.MetricsProto;
import com.android.internal.util.cherish.CherishUtils;
import com.android.settings.SettingsPreferenceFragment;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.Utils;
import com.cherish.settings.preferences.CustomSeekBarPreference;
import com.android.internal.util.hwkeys.ActionConstants;
import com.android.internal.util.hwkeys.ActionUtils;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.cherish.settings.preferences.CustomSeekBarPreference;
import com.cherish.settings.preferences.ActionFragment;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import com.cherish.settings.preferences.ActionFragment;
import com.cherish.settings.preferences.SecureSettingSwitchPreference;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
import android.provider.SearchIndexableResource;
import java.util.ArrayList;
import java.util.List;
import java.util.Locale;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class ButtonSettings extends ActionFragment implements
Preference.OnPreferenceChangeListener {
public class ButtonSettings extends ActionFragment implements OnPreferenceChangeListener {
private static final String HWKEY_DISABLE = "hardware_keys_disable";
private static final String KEY_NAVBAR_INVERSE = "navigation_bar_inverse";
private static final String KEY_NAVIGATION_COMPACT_LAYOUT = "navigation_bar_compact_layout";
private static final String KEY_SWAP_CAPACITIVE_KEYS = "swap_capacitive_keys";
private static final String NAVBAR_VISIBILITY = "navbar_visibility";
private static final String KEY_LAYOUT_SETTINGS = "layout_settings";
private static final String KEY_NAVIGATION_BAR_ARROWS = "navigation_bar_menu_arrow_keys";
// category keys
private static final String CATEGORY_HWKEY = "hardware_keys";
@@ -72,7 +81,11 @@ public class ButtonSettings extends ActionFragment implements
private static final String CATEGORY_VOLUME = "volume_keys";
private static final String CATEGORY_POWER = "power_key";
// Masks for checking presence of hardware keys.
private static final String KEY_BUTTON_MANUAL_BRIGHTNESS_NEW = "button_manual_brightness_new";
private static final String KEY_BUTTON_TIMEOUT = "button_timeout";
private static final String KEY_BUTON_BACKLIGHT_OPTIONS = "button_backlight_options_category";
// Masks for checking presence of hardware keys.
// Must match values in frameworks/base/core/res/res/values/config.xml
public static final int KEY_MASK_HOME = 0x01;
public static final int KEY_MASK_BACK = 0x02;
@@ -82,12 +95,20 @@ public class ButtonSettings extends ActionFragment implements
public static final int KEY_MASK_CAMERA = 0x20;
public static final int KEY_MASK_VOLUME = 0x40;
private PreferenceCategory mButtonBackLightCategory;
private PreferenceCategory mHwKeyCategory;
private SecureSettingSwitchPreference mSwapCapacitiveKeys;
private static final String TORCH_POWER_BUTTON_GESTURE = "torch_power_button_gesture";
private SwitchPreference mHwKeyDisable;
private SystemSettingSwitchPreference mNavbarInverse;
private SystemSettingSwitchPreference mNavigationCompactLayout;
private ListPreference mTorchPowerButton;
private CustomSeekBarPreference mButtonTimoutBar;
private CustomSeekBarPreference mManualButtonBrightness;
private PreferenceCategory mButtonBackLightCategory;
private SwitchPreference mNavbarVisibility;
private Preference mLayoutSettings;
private SystemSettingSwitchPreference mNavigationArrows;
private boolean mIsNavSwitchingMode = false;
private Handler mHandler;
@Override
public void onCreate(Bundle icicle) {
@@ -98,14 +119,8 @@ public class ButtonSettings extends ActionFragment implements
final ContentResolver resolver = getActivity().getContentResolver();
final PreferenceScreen prefScreen = getPreferenceScreen();
mSwapCapacitiveKeys = findPreference(KEY_SWAP_CAPACITIVE_KEYS);
if (mSwapCapacitiveKeys != null && !isKeySwapperSupported(getActivity())) {
prefScreen.removePreference(mSwapCapacitiveKeys);
mSwapCapacitiveKeys = null;
}
final boolean needsNavbar = ActionUtils.hasNavbarByDefault(getActivity());
mHwKeyCategory = (PreferenceCategory) prefScreen
final PreferenceCategory hwkeyCat = (PreferenceCategory) prefScreen
.findPreference(CATEGORY_HWKEY);
int keysDisabled = 0;
if (!needsNavbar) {
@@ -116,19 +131,19 @@ public class ButtonSettings extends ActionFragment implements
mHwKeyDisable.setChecked(keysDisabled != 0);
mHwKeyDisable.setOnPreferenceChangeListener(this);
} else {
prefScreen.removePreference(mHwKeyCategory);
prefScreen.removePreference(hwkeyCat);
}
// bits for hardware keys present on device
// bits for hardware keys present on device
final int deviceKeys = getResources().getInteger(
com.android.internal.R.integer.config_deviceHardwareKeys);
// read bits for present hardware keys
// read bits for present hardware keys
final boolean hasHomeKey = (deviceKeys & KEY_MASK_HOME) != 0;
final boolean hasBackKey = (deviceKeys & KEY_MASK_BACK) != 0;
final boolean hasMenuKey = (deviceKeys & KEY_MASK_MENU) != 0;
final boolean hasAssistKey = (deviceKeys & KEY_MASK_ASSIST) != 0;
final boolean hasAppSwitchKey = (deviceKeys & KEY_MASK_APP_SWITCH) != 0;
// load categories and init/remove preferences based on device
// load categories and init/remove preferences based on device
// configuration
final PreferenceCategory backCategory = (PreferenceCategory) prefScreen
.findPreference(CATEGORY_BACK);
@@ -140,57 +155,121 @@ public class ButtonSettings extends ActionFragment implements
.findPreference(CATEGORY_ASSIST);
final PreferenceCategory appSwitchCategory = (PreferenceCategory) prefScreen
.findPreference(CATEGORY_APPSWITCH);
// back key
// back key
if (!hasBackKey) {
prefScreen.removePreference(backCategory);
}
// home key
// home key
if (!hasHomeKey) {
prefScreen.removePreference(homeCategory);
}
// App switch key (recents)
// App switch key (recents)
if (!hasAppSwitchKey) {
prefScreen.removePreference(appSwitchCategory);
}
// menu key
// menu key
if (!hasMenuKey) {
prefScreen.removePreference(menuCategory);
}
// search/assist key
// search/assist key
if (!hasAssistKey) {
prefScreen.removePreference(assistCategory);
}
// let super know we can load ActionPreferences
// let super know we can load ActionPreferences
onPreferenceScreenLoaded(ActionConstants.getDefaults(ActionConstants.HWKEYS));
// load preferences first
setActionPreferencesEnabled(keysDisabled == 0);
final boolean isThreeButtonNavbarEnabled = CherishUtils.isThemeEnabled("com.android.internal.systemui.navbar.threebutton");
mNavbarInverse = (SystemSettingSwitchPreference) findPreference(KEY_NAVBAR_INVERSE);
mNavbarInverse.setEnabled(isThreeButtonNavbarEnabled);
mNavigationCompactLayout = (SystemSettingSwitchPreference) findPreference(KEY_NAVIGATION_COMPACT_LAYOUT);
mNavigationCompactLayout.setEnabled(isThreeButtonNavbarEnabled);
// screen off torch
mTorchPowerButton = (ListPreference) findPreference(TORCH_POWER_BUTTON_GESTURE);
int mTorchPowerButtonValue = Settings.System.getInt(resolver,
Settings.System.TORCH_POWER_BUTTON_GESTURE, 0);
mTorchPowerButton.setValue(Integer.toString(mTorchPowerButtonValue));
mTorchPowerButton.setSummary(mTorchPowerButton.getEntry());
mTorchPowerButton.setOnPreferenceChangeListener(this);
mManualButtonBrightness = (CustomSeekBarPreference) findPreference(
KEY_BUTTON_MANUAL_BRIGHTNESS_NEW);
final int customButtonBrightness = getResources().getInteger(
com.android.internal.R.integer.config_button_brightness_default);
final int currentBrightness = Settings.System.getInt(resolver,
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, customButtonBrightness);
PowerManager pm = (PowerManager)getActivity().getSystemService(Context.POWER_SERVICE);
mManualButtonBrightness.setMax(pm.getMaximumScreenBrightnessSetting());
mManualButtonBrightness.setValue(currentBrightness);
mManualButtonBrightness.setOnPreferenceChangeListener(this);
mNavbarVisibility = (SwitchPreference) findPreference(NAVBAR_VISIBILITY);
boolean showing = Settings.System.getIntForUser(resolver,
Settings.System.FORCE_SHOW_NAVBAR,
CherishUtils.hasNavbarByDefault(getActivity()) ? 1 : 0, UserHandle.USER_CURRENT) != 0;
mNavbarVisibility.setChecked(showing);
mNavbarVisibility.setOnPreferenceChangeListener(this);
mHandler = new Handler();
mButtonTimoutBar = (CustomSeekBarPreference) findPreference(KEY_BUTTON_TIMEOUT);
int currentTimeout = Settings.System.getInt(resolver,
Settings.System.BUTTON_BACKLIGHT_TIMEOUT, 0);
mButtonTimoutBar.setValue(currentTimeout);
mButtonTimoutBar.setOnPreferenceChangeListener(this);
final boolean enableBacklightOptions = getResources().getBoolean(
com.android.internal.R.bool.config_button_brightness_support);
mButtonBackLightCategory = (PreferenceCategory) findPreference(KEY_BUTON_BACKLIGHT_OPTIONS);
if (!enableBacklightOptions) {
prefScreen.removePreference(mButtonBackLightCategory);
}
mLayoutSettings = (Preference) findPreference(KEY_LAYOUT_SETTINGS);
mNavigationArrows = (SystemSettingSwitchPreference) findPreference(KEY_NAVIGATION_BAR_ARROWS);
}
private static boolean isKeyDisablerSupported(Context context) {
final LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
return hardware.isSupported(LineageHardwareManager.FEATURE_KEY_DISABLE);
}
private static boolean isKeySwapperSupported(Context context) {
final LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
return hardware.isSupported(LineageHardwareManager.FEATURE_KEY_SWAP);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mHwKeyDisable) {
if (preference == mTorchPowerButton) {
int mTorchPowerButtonValue = Integer.valueOf((String) newValue);
int index = mTorchPowerButton.findIndexOfValue((String) newValue);
mTorchPowerButton.setSummary(
mTorchPowerButton.getEntries()[index]);
Settings.System.putInt(resolver, Settings.System.TORCH_POWER_BUTTON_GESTURE,
mTorchPowerButtonValue);
return true;
} else if (preference == mHwKeyDisable) {
boolean value = (Boolean) newValue;
Settings.System.putInt(getContentResolver(), Settings.System.HARDWARE_KEYS_DISABLE,
value ? 1 : 0);
setActionPreferencesEnabled(!value);
return true;
} else if (preference == mButtonTimoutBar) {
int buttonTimeout = (Integer) newValue;
Settings.System.putInt(getContentResolver(),
Settings.System.BUTTON_BACKLIGHT_TIMEOUT, buttonTimeout);
return true;
} else if (preference == mManualButtonBrightness) {
int buttonBrightness = (Integer) newValue;
Settings.System.putInt(getContentResolver(),
Settings.System.CUSTOM_BUTTON_BRIGHTNESS, buttonBrightness);
return true;
} else if (preference == mNavbarVisibility) {
if (mIsNavSwitchingMode) {
return false;
}
mIsNavSwitchingMode = true;
boolean showing = ((Boolean)newValue);
Settings.System.putIntForUser(resolver, Settings.System.FORCE_SHOW_NAVBAR,
showing ? 1 : 0, UserHandle.USER_CURRENT);
mNavbarVisibility.setChecked(showing);
mHandler.postDelayed(new Runnable() {
@Override
public void run() {
mIsNavSwitchingMode = false;
}
}, 1500);
return true;
}
return false;
@@ -198,32 +277,42 @@ public class ButtonSettings extends ActionFragment implements
@Override
public int getMetricsCategory() {
return MetricsEvent.CHERISH_SETTINGS;
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
/**
private static boolean isKeyDisablerSupported(Context context) {
final LineageHardwareManager hardware = LineageHardwareManager.getInstance(context);
return hardware.isSupported(LineageHardwareManager.FEATURE_KEY_DISABLE);
}
@Override
protected boolean usesExtendedActionsList() {
return true;
}
/**
* For Search.
*/
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.cherish_settings_button) {
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
ArrayList<SearchIndexableResource> result =
new ArrayList<SearchIndexableResource>();
SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.cherish_settings_button;
result.add(sir);
return result;
}
@Override
public List<String> getNonIndexableKeys(Context context) {
List<String> keys = super.getNonIndexableKeys(context);
LineageHardwareManager mLineageHardware = LineageHardwareManager.getInstance(context);
if (!isKeyDisablerSupported(context)) {
keys.add(HWKEY_DISABLE);
keys.add(CATEGORY_HWKEY);
keys.add(CATEGORY_BACK);
keys.add(CATEGORY_HOME);
keys.add(CATEGORY_MENU);
keys.add(CATEGORY_ASSIST);
keys.add(CATEGORY_APPSWITCH);
}
return keys;
}
};
};
}

View File

@@ -14,32 +14,21 @@
* limitations under the License.
*/
package com.cherish.settings.fragments
package com.cherish.settings.fragment
import androidx.preference.Preference
import com.android.internal.logging.nano.MetricsProto
import com.android.settings.dashboard.DashboardFragment
import com.cherish.settings.fragments.ColorPickerFragment
import com.cherish.settings.preferences.ColorPickerPreference
abstract class CherishDashboardFragment: DashboardFragment() {
override fun getMetricsCategory(): Int = MetricsProto.MetricsEvent.CHERISH_SETTINGS
override fun onDisplayPreferenceDialog(preference: Preference) {
if (preference is ColorPickerPreference) {
ColorPickerFragment(preference.color).apply {
setOnConfirmListener {
preference.setColor(it)
}
}.show(childFragmentManager, COLOR_PICKER_DIALOG_KEY)
} else {
super.onDisplayPreferenceDialog(preference)
}
super.onDisplayPreferenceDialog(preference)
}
companion object {
const val REQUEST_KEY = "CherishDashboardFragment#RequestKey"
const val COLOR_PICKER_DIALOG_KEY = "color_picker_dialog"
}
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2019-2022 The CherishOS Project
* Copyright (C) 2020-2022 The CherishOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -20,28 +20,26 @@ import android.content.ContentResolver;
import android.content.Context;
import android.content.DialogInterface;
import android.content.DialogInterface.OnCancelListener;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.pm.ResolveInfo;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.Settings;
import android.text.format.DateFormat;
import android.view.View;
import android.widget.EditText;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.SwitchPreference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.util.cherish.CherishUtils;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
@@ -75,6 +73,7 @@ public class Clock extends SettingsPreferenceFragment implements
private SystemSettingListPreference mClockDateStyle;
private ListPreference mClockDateFormat;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);

View File

@@ -1,418 +0,0 @@
/*
* Copyright (C) 2022 FlamingoOS 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.cherish.settings.fragments
import android.annotation.ColorInt
import android.content.pm.ActivityInfo.SCREEN_ORIENTATION_PORTRAIT
import android.content.res.ColorStateList
import android.graphics.Color
import android.graphics.drawable.Drawable
import android.graphics.drawable.GradientDrawable
import android.os.Bundle
import android.text.Editable
import android.text.Spanned
import android.text.InputFilter
import android.view.HapticFeedbackConstants.KEYBOARD_PRESS
import android.view.LayoutInflater
import android.view.View
import android.view.ViewGroup
import android.widget.Button
import android.widget.EditText
import android.widget.RadioGroup
import android.widget.SeekBar
import android.widget.TextView
import android.widget.Toast
import androidx.core.graphics.ColorUtils
import androidx.core.widget.doAfterTextChanged
import androidx.fragment.app.DialogFragment.STYLE_NORMAL
import com.google.android.material.bottomsheet.BottomSheetDialogFragment
import com.android.settings.R
class ColorPickerFragment(
defaultColor: String? = "#FFFFFF",
) : BottomSheetDialogFragment(),
RadioGroup.OnCheckedChangeListener,
SeekBar.OnSeekBarChangeListener {
private lateinit var colorPreview: View
private lateinit var colorInput: EditText
private lateinit var seekBarOne: SeekBar
private lateinit var seekBarTwo: SeekBar
private lateinit var seekBarThree: SeekBar
private var colorModel = ColorModel.RGB
private var textInputChangedInternal = false // Internal variable to prevent loops with TextWatcher
private var confirmListener: (String) -> Unit = {}
@ColorInt
private var color: Int
init {
color = if (defaultColor == null || defaultColor.isEmpty()) {
Color.WHITE
} else {
try {
Color.parseColor(defaultColor)
} catch (e: IllegalArgumentException) {
Color.WHITE
}
}
}
override fun onCreate(savedInstanceState: Bundle?) {
super.onCreate(savedInstanceState)
activity?.requestedOrientation = SCREEN_ORIENTATION_PORTRAIT
setStyle(STYLE_NORMAL, R.style.ColorPickerStyle)
}
override fun onCreateView(
inflater: LayoutInflater,
container: ViewGroup?,
savedInstanceState: Bundle?
): View = inflater.inflate(R.layout.color_picker_layout, container, false)
override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
colorPreview = view.findViewById(R.id.color_preview)
colorInput = view.findViewById(R.id.color_input)
colorInput.doAfterTextChanged {
if (textInputChangedInternal) {
// Reset it here
textInputChangedInternal = false
return@doAfterTextChanged
}
if (it?.length != 7) return@doAfterTextChanged
color = try {
Color.parseColor(it.toString())
} catch (e: IllegalArgumentException) {
Toast.makeText(
context,
R.string.invalid_color,
Toast.LENGTH_SHORT
)
Color.WHITE
}
updateSliders()
updateSliderGradients(false)
previewColor(true)
}
colorInput.filters = arrayOf(
InputFilter.LengthFilter(7),
InputFilter filter@ { source, start, end, _, dstart, dend ->
// Deletion
if (start == 0 && end == 0) {
return@filter null
}
if (dstart == 0) {
// First character has to be # and rest of them
// (if present) be a valid hex char
if (!source.startsWith("#")) {
return@filter ""
}
// Just a single char
if (dstart == dend) return@filter null
if (!HEX_PATTERN.matches(source.subSequence(1, end))) {
return@filter ""
}
} else {
// Does not start from 0, so every char has to be valid hex
if (!HEX_PATTERN.matches(source)) {
return@filter ""
}
}
if ((end - start) == 7) { // Full hex input
if (!COLOR_HEX_PATTERN.matches(source)) {
return@filter ""
}
}
null
}
)
view.findViewById<Button>(R.id.cancel_button).setOnClickListener {
it.performHapticFeedback(KEYBOARD_PRESS)
dialog?.dismiss()
}
view.findViewById<Button>(R.id.confirm_button).setOnClickListener {
it.performHapticFeedback(KEYBOARD_PRESS)
dialog?.dismiss()
val colorHex = colorInput.text.toString()
if (colorHex.isEmpty() || colorHex.length == 7) {
confirmListener(colorHex)
}
}
/*
* Set the drawables as mutable so that they
* do not share a constant state or else all
* three slider gradients will look alike
*/
seekBarOne = view.findViewById<SeekBar>(R.id.seekBar1).also {
it.progressDrawable.mutate()
it.setOnSeekBarChangeListener(this)
}
seekBarTwo = view.findViewById<SeekBar>(R.id.seekBar2).also {
it.progressDrawable.mutate()
it.setOnSeekBarChangeListener(this)
}
seekBarThree = view.findViewById<SeekBar>(R.id.seekBar3).also {
it.progressDrawable.mutate()
it.setOnSeekBarChangeListener(this)
}
// Register listener for color model change
view.findViewById<RadioGroup>(R.id.color_model_group).also {
it.setOnCheckedChangeListener(this)
}
// Update sliders and preview
updateSliderMax()
updateSliders()
updateSliderGradients(true)
previewColor(false)
}
override fun onProgressChanged(seekBar: SeekBar, progress: Int, fromUser: Boolean) {
if (!fromUser) return
color = when (colorModel) {
ColorModel.RGB -> {
Color.rgb(
seekBarOne.progress,
seekBarTwo.progress,
seekBarThree.progress
)
}
ColorModel.HSV -> {
HSVToColor(
seekBarOne.progress.toFloat(),
seekBarTwo.progress / 100f,
seekBarThree.progress / 100f
)
}
ColorModel.HSL -> {
HSLToColor(
seekBarOne.progress.toFloat(),
seekBarTwo.progress / 100f,
seekBarThree.progress / 100f
)
}
}
if (colorModel != ColorModel.RGB) {
updateSliderGradients(false)
}
previewColor(false)
}
override fun onStartTrackingTouch(seekBar: SeekBar) {
// Not implemented
}
override fun onStopTrackingTouch(seekBar: SeekBar) {
// Not implemented
}
override fun onCheckedChanged(group: RadioGroup, checkedId: Int) {
colorModel = when (checkedId) {
R.id.rgb_button -> ColorModel.RGB
R.id.hsv_button -> ColorModel.HSV
R.id.hsl_button -> ColorModel.HSL
else -> ColorModel.RGB
}
updateSliderMax()
updateSliders()
updateSliderGradients(true)
}
/*
* Set a confirmation listener that will be invoked when confirm
* button of the dialog is pressed.
*
* @param listener the listener to be invoked. Hex value of the
* color (including # prefix and RGB) will be the type parameter
* of the listener. Do note that the parameter can also be empty.
*/
fun setOnConfirmListener(listener: (String) -> Unit) {
confirmListener = listener
}
/**
* Used to update sliders if color model changes or
* user inputs a color hex. For the latter it must be called
* only after the accent colors are updated.
*/
private fun updateSliders() {
when (colorModel) {
ColorModel.RGB -> updateSliderProgressFromColor()
ColorModel.HSV -> {
val array = FloatArray(3)
Color.colorToHSV(color, array)
updateSliderProgressFromHSVorHSL(array)
}
ColorModel.HSL -> {
val array = FloatArray(3)
ColorUtils.colorToHSL(color, array)
updateSliderProgressFromHSVorHSL(array)
}
}
}
// For updating RGB slider progress
private fun updateSliderProgressFromColor() {
seekBarOne.progress = Color.red(color)
seekBarTwo.progress = Color.green(color)
seekBarThree.progress = Color.blue(color)
}
// For updating HSV / HSL slider progress
private fun updateSliderProgressFromHSVorHSL(hsvOrHSL: FloatArray) {
seekBarOne.progress = hsvOrHSL[0].toInt()
seekBarTwo.progress = (hsvOrHSL[1] * 100).toInt()
seekBarThree.progress = (hsvOrHSL[2] * 100).toInt()
}
// For updating the slider GradientDrawable's based on ColorModel
private fun updateSliderGradients(colorModelChanged: Boolean) {
if (colorModel == ColorModel.RGB) {
if (colorModelChanged) {
updateRGBGradient(seekBarOne.progressDrawable, Color.RED)
updateRGBGradient(seekBarTwo.progressDrawable, Color.GREEN)
updateRGBGradient(seekBarThree.progressDrawable, Color.BLUE)
}
} else {
if (colorModelChanged) {
updateHueGradient()
}
updateSaturationGradient()
if (colorModel == ColorModel.HSV) {
updateValueGradient()
} else {
updateLuminanceGradient()
}
}
}
private fun updateLuminanceGradient() {
val drawable = seekBarThree.progressDrawable as GradientDrawable
drawable.colors = intArrayOf(
Color.BLACK,
HSLToColor(
seekBarOne.progress.toFloat(),
seekBarTwo.progress / 100f,
0.5f
),
Color.WHITE,
)
}
private fun updateValueGradient() {
val drawable = seekBarThree.progressDrawable as GradientDrawable
drawable.colors = intArrayOf(
Color.BLACK,
HSVToColor(
seekBarOne.progress.toFloat(),
seekBarTwo.progress / 100f,
1f
),
)
}
private fun updateSaturationGradient() {
val drawable = seekBarTwo.progressDrawable as GradientDrawable
drawable.colors = intArrayOf(
Color.WHITE,
if (colorModel == ColorModel.HSV) {
HSVToColor(
seekBarOne.progress.toFloat(),
1f,
seekBarThree.progress / 100f
)
} else {
HSLToColor(
seekBarOne.progress.toFloat(),
1f,
seekBarThree.progress / 100f
)
}
)
}
private fun updateHueGradient() {
val drawable = seekBarOne.progressDrawable as GradientDrawable
drawable.colors = hueGradientColors
}
private fun updateRGBGradient(progressDrawable: Drawable, color: Int) {
val drawable = progressDrawable as GradientDrawable
drawable.colors = intArrayOf(Color.BLACK, color)
}
// inputFromUser should be set to true when user has entered a hex color
private fun previewColor(inputFromUser: Boolean) {
colorPreview.backgroundTintList = ColorStateList.valueOf(color)
colorInput.setTextColor(
if (ColorUtils.calculateLuminance(color) > 0.5) {
Color.BLACK
} else {
Color.WHITE
}
)
textInputChangedInternal = true
if (!inputFromUser) {
colorInput.setText(colorToHex(color))
}
}
private fun updateSliderMax() {
val isRGB = colorModel == ColorModel.RGB
seekBarOne.max = if (isRGB) 255 else 360
seekBarTwo.max = if (isRGB) 255 else 100
seekBarThree.max = if (isRGB) 255 else 100
}
private enum class ColorModel {
RGB,
HSL,
HSV
}
companion object {
private val HEX_PATTERN = Regex("[0-9a-fA-F]+")
private val COLOR_HEX_PATTERN = Regex("^[#][0-9a-fA-F]{6}")
private val hueGradientColors = IntArray(7) {
HSVToColor(it * 60f, 1f, 1f)
}
private fun HSVToColor(
hue: Float,
sat: Float,
value: Float,
): Int = Color.HSVToColor(floatArrayOf(hue, sat, value))
private fun HSLToColor(
hue: Float,
sat: Float,
lum: Float,
): Int = ColorUtils.HSLToColor(floatArrayOf(hue, sat, lum))
private fun colorToHex(color: Int) = String.format("#%06X", (0xFFFFFF and color))
}
}

View File

@@ -0,0 +1,170 @@
/*
* Copyright (C) 2020 Yet Another AOSP 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.cherish.settings.fragments;
import android.content.ContentResolver;
import android.content.res.Resources;
import android.os.Bundle;
import android.os.UserHandle;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import android.provider.Settings;
import android.util.TypedValue;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import net.margaritov.preference.colorpicker.ColorPickerPreference;
import com.cherish.settings.preferences.CustomSeekBarPreference;
import com.cherish.settings.preferences.SystemSettingListPreference;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
public class EdgeLightningSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
private static String KEY_DURATION = "ambient_notification_light_duration";
private static String KEY_REPEATS = "ambient_notification_light_repeats";
private static String KEY_TIMEOUT = "ambient_notification_light_timeout";
private static String KEY_COLOR_MODE = "ambient_notification_color_mode";
private static String KEY_COLOR = "ambient_notification_light_color";
private CustomSeekBarPreference mDurationPref;
private CustomSeekBarPreference mRepeatsPref;
private SystemSettingListPreference mTimeoutPref;
private SystemSettingListPreference mColorModePref;
private ColorPickerPreference mColorPref;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.edge_lightning_settings);
final ContentResolver resolver = getContentResolver();
final int accentColor = getAccentColor();
mDurationPref = (CustomSeekBarPreference) findPreference(KEY_DURATION);
int value = Settings.System.getIntForUser(resolver,
KEY_DURATION, 2, UserHandle.USER_CURRENT);
mDurationPref.setValue(value);
mDurationPref.setOnPreferenceChangeListener(this);
mRepeatsPref = (CustomSeekBarPreference) findPreference(KEY_REPEATS);
int repeats = Settings.System.getIntForUser(resolver,
KEY_REPEATS, 0, UserHandle.USER_CURRENT);
mRepeatsPref.setValue(repeats);
mRepeatsPref.setOnPreferenceChangeListener(this);
mTimeoutPref = (SystemSettingListPreference) findPreference(KEY_TIMEOUT);
value = Settings.System.getIntForUser(resolver,
KEY_TIMEOUT, accentColor, UserHandle.USER_CURRENT);
mTimeoutPref.setValue(Integer.toString(value));
mTimeoutPref.setSummary(mTimeoutPref.getEntry());
mTimeoutPref.setOnPreferenceChangeListener(this);
updateTimeoutEnablement(repeats);
mColorPref = (ColorPickerPreference) findPreference(KEY_COLOR);
value = Settings.System.getIntForUser(resolver,
KEY_COLOR, accentColor, UserHandle.USER_CURRENT);
mColorPref.setDefaultColor(accentColor);
String colorHex = String.format("#%08x", (0xFFFFFFFF & value));
if (value == accentColor) {
mColorPref.setSummary(R.string.default_string);
} else {
mColorPref.setSummary(colorHex);
}
mColorPref.setNewPreviewColor(value);
mColorPref.setOnPreferenceChangeListener(this);
mColorModePref = (SystemSettingListPreference) findPreference(KEY_COLOR_MODE);
value = Settings.System.getIntForUser(resolver,
KEY_COLOR_MODE, 0, UserHandle.USER_CURRENT);
mColorModePref.setValue(Integer.toString(value));
mColorModePref.setSummary(mColorModePref.getEntry());
mColorModePref.setOnPreferenceChangeListener(this);
mColorPref.setEnabled(value == 3);
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
public boolean onPreferenceChange(Preference preference, Object newValue) {
final ContentResolver resolver = getContentResolver();
if (preference == mDurationPref) {
int value = (Integer) newValue;
Settings.System.putIntForUser(resolver,
KEY_DURATION, value, UserHandle.USER_CURRENT);
return true;
} else if (preference == mRepeatsPref) {
int value = (Integer) newValue;
Settings.System.putIntForUser(resolver,
KEY_REPEATS, value, UserHandle.USER_CURRENT);
updateTimeoutEnablement(value);
return true;
} else if (preference == mTimeoutPref) {
int value = Integer.valueOf((String) newValue);
int index = mTimeoutPref.findIndexOfValue((String) newValue);
mTimeoutPref.setSummary(mTimeoutPref.getEntries()[index]);
Settings.System.putIntForUser(resolver,
KEY_TIMEOUT, value, UserHandle.USER_CURRENT);
return true;
} else if (preference == mColorModePref) {
int value = Integer.valueOf((String) newValue);
int index = mColorModePref.findIndexOfValue((String) newValue);
mColorModePref.setSummary(mColorModePref.getEntries()[index]);
Settings.System.putIntForUser(resolver,
KEY_COLOR_MODE, value, UserHandle.USER_CURRENT);
mColorPref.setEnabled(value == 3);
return true;
} else if (preference == mColorPref) {
int accentColor = getAccentColor();
String hex = ColorPickerPreference.convertToARGB(
Integer.valueOf(String.valueOf(newValue)));
if (hex.equals(String.format("#%08x", (0xFFFFFFFF & accentColor)))) {
preference.setSummary(R.string.default_string);
} else {
preference.setSummary(hex);
}
int color = ColorPickerPreference.convertToColorInt(hex);
Settings.System.putIntForUser(resolver,
KEY_COLOR, color, UserHandle.USER_CURRENT);
return true;
}
return false;
}
private int getAccentColor() {
final TypedValue value = new TypedValue();
getContext().getTheme().resolveAttribute(android.R.attr.colorAccent, value, true);
return value.data;
}
private void updateTimeoutEnablement(int repeats) {
if (repeats == 0) {
int value = Settings.System.getIntForUser(getContentResolver(),
KEY_TIMEOUT, 0, UserHandle.USER_CURRENT);
mTimeoutPref.setValue(Integer.toString(value));
mTimeoutPref.setSummary(mTimeoutPref.getEntry());
mTimeoutPref.setEnabled(true);
} else {
mTimeoutPref.setSummary(R.string.set_to_zero);
mTimeoutPref.setEnabled(false);
}
}
}

View File

@@ -0,0 +1,412 @@
/*
* Copyright (C) 2017 AospExtended ROM
*
* 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.cherish.settings.fragments;
import android.app.AlertDialog;
import android.app.Dialog;
import android.content.DialogInterface;
import android.content.pm.PackageInfo;
import android.content.pm.PackageManager;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.os.Bundle;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceGroup;
import androidx.preference.PreferenceScreen;
import androidx.preference.PreferenceViewHolder;
import android.text.TextUtils;
import android.view.LayoutInflater;
import android.view.View;
import android.view.ViewGroup;
import android.widget.AdapterView;
import android.widget.AdapterView.OnItemClickListener;
import android.widget.ListView;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.cherish.settings.preferences.PackageListAdapter;
import com.cherish.settings.preferences.PackageListAdapter.PackageItem;
import android.provider.Settings;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
public class HeadsUpSettings extends SettingsPreferenceFragment
implements Preference.OnPreferenceClickListener, Preference.OnPreferenceChangeListener {
private static final int DIALOG_STOPLIST_APPS = 0;
private static final int DIALOG_BLACKLIST_APPS = 1;
private static final String PREF_HEADS_UP_TIME_OUT = "heads_up_time_out";
private static final String PREF_HEADS_UP_SNOOZE_TIME = "heads_up_snooze_time";
private PackageListAdapter mPackageAdapter;
private PackageManager mPackageManager;
private PreferenceGroup mStoplistPrefList;
private PreferenceGroup mBlacklistPrefList;
private Preference mAddStoplistPref;
private Preference mAddBlacklistPref;
private ListPreference mHeadsUpTimeOut;
private ListPreference mHeadsUpSnoozeTime;
private String mStoplistPackageList;
private String mBlacklistPackageList;
private Map<String, Package> mStoplistPackages;
private Map<String, Package> mBlacklistPackages;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
// Get launch-able applications
addPreferencesFromResource(R.xml.heads_up_settings);
mPackageManager = getPackageManager();
mPackageAdapter = new PackageListAdapter(getActivity());
mStoplistPrefList = (PreferenceGroup) findPreference("stoplist_applications");
mStoplistPrefList.setOrderingAsAdded(false);
mBlacklistPrefList = (PreferenceGroup) findPreference("blacklist_applications");
mBlacklistPrefList.setOrderingAsAdded(false);
mStoplistPackages = new HashMap<String, Package>();
mBlacklistPackages = new HashMap<String, Package>();
mAddStoplistPref = findPreference("add_stoplist_packages");
mAddBlacklistPref = findPreference("add_blacklist_packages");
mAddStoplistPref.setOnPreferenceClickListener(this);
mAddBlacklistPref.setOnPreferenceClickListener(this);
Resources systemUiResources;
try {
systemUiResources = getPackageManager().getResourcesForApplication("com.android.systemui");
} catch (Exception e) {
return;
}
int defaultTimeOut = systemUiResources.getInteger(systemUiResources.getIdentifier(
"com.android.systemui:integer/heads_up_notification_decay", null, null));
mHeadsUpTimeOut = (ListPreference) findPreference(PREF_HEADS_UP_TIME_OUT);
mHeadsUpTimeOut.setOnPreferenceChangeListener(this);
int headsUpTimeOut = Settings.System.getInt(getContentResolver(),
Settings.System.HEADS_UP_TIMEOUT, defaultTimeOut);
mHeadsUpTimeOut.setValue(String.valueOf(headsUpTimeOut));
updateHeadsUpTimeOutSummary(headsUpTimeOut);
int defaultSnooze = systemUiResources.getInteger(systemUiResources.getIdentifier(
"com.android.systemui:integer/heads_up_default_snooze_length_ms", null, null));
mHeadsUpSnoozeTime = (ListPreference) findPreference(PREF_HEADS_UP_SNOOZE_TIME);
mHeadsUpSnoozeTime.setOnPreferenceChangeListener(this);
int headsUpSnooze = Settings.System.getInt(getContentResolver(),
Settings.System.HEADS_UP_NOTIFICATION_SNOOZE, defaultSnooze);
mHeadsUpSnoozeTime.setValue(String.valueOf(headsUpSnooze));
updateHeadsUpSnoozeTimeSummary(headsUpSnooze);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == mHeadsUpTimeOut) {
int headsUpTimeOut = Integer.valueOf((String) newValue);
Settings.System.putInt(getContentResolver(),
Settings.System.HEADS_UP_TIMEOUT,
headsUpTimeOut);
updateHeadsUpTimeOutSummary(headsUpTimeOut);
return true;
} else if (preference == mHeadsUpSnoozeTime) {
int headsUpSnooze = Integer.valueOf((String) newValue);
Settings.System.putInt(getContentResolver(),
Settings.System.HEADS_UP_NOTIFICATION_SNOOZE,
headsUpSnooze);
updateHeadsUpSnoozeTimeSummary(headsUpSnooze);
return true;
}
return false;
}
private void updateHeadsUpTimeOutSummary(int value) {
String summary = getResources().getString(R.string.heads_up_time_out_summary,
value / 1000);
mHeadsUpTimeOut.setSummary(summary);
}
private void updateHeadsUpSnoozeTimeSummary(int value) {
if (value == 0) {
mHeadsUpSnoozeTime.setSummary(getResources().getString(R.string.heads_up_snooze_disabled_summary));
} else if (value == 60000) {
mHeadsUpSnoozeTime.setSummary(getResources().getString(R.string.heads_up_snooze_summary_one_minute));
} else {
String summary = getResources().getString(R.string.heads_up_snooze_summary, value / 60 / 1000);
mHeadsUpSnoozeTime.setSummary(summary);
}
}
@Override
public void onResume() {
super.onResume();
refreshCustomApplicationPrefs();
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
@Override
public int getDialogMetricsCategory(int dialogId) {
if (dialogId == DIALOG_STOPLIST_APPS || dialogId == DIALOG_BLACKLIST_APPS) {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
return 0;
}
/**
* Utility classes and supporting methods
*/
@Override
public Dialog onCreateDialog(int id) {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity());
final Dialog dialog;
final ListView list = new ListView(getActivity());
list.setAdapter(mPackageAdapter);
builder.setTitle(R.string.profile_choose_app);
builder.setView(list);
dialog = builder.create();
switch (id) {
case DIALOG_STOPLIST_APPS:
list.setOnItemClickListener(new OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent, View view, int position, long id) {
// Add empty application definition, the user will be able to edit it later
PackageItem info = (PackageItem) parent.getItemAtPosition(position);
addCustomApplicationPref(info.packageName, mStoplistPackages);
dialog.cancel();
}
});
break;
case DIALOG_BLACKLIST_APPS:
list.setOnItemClickListener(new AdapterView.OnItemClickListener() {
@Override
public void onItemClick(AdapterView<?> parent,
View view, int position, long id) {
PackageItem info = (PackageItem) parent.getItemAtPosition(position);
addCustomApplicationPref(info.packageName, mBlacklistPackages);
dialog.cancel();
}
});
}
return dialog;
}
/**
* Application class
*/
private static class Package {
public String name;
/**
* Stores all the application values in one call
* @param name
*/
public Package(String name) {
this.name = name;
}
public String toString() {
StringBuilder builder = new StringBuilder();
builder.append(name);
return builder.toString();
}
public static Package fromString(String value) {
if (TextUtils.isEmpty(value)) {
return null;
}
try {
Package item = new Package(value);
return item;
} catch (NumberFormatException e) {
return null;
}
}
};
private void refreshCustomApplicationPrefs() {
if (!parsePackageList()) {
return;
}
// Add the Application Preferences
if (mStoplistPrefList != null && mBlacklistPrefList != null) {
mStoplistPrefList.removeAll();
mBlacklistPrefList.removeAll();
for (Package pkg : mStoplistPackages.values()) {
try {
Preference pref = createPreferenceFromInfo(pkg);
mStoplistPrefList.addPreference(pref);
} catch (PackageManager.NameNotFoundException e) {
// Do nothing
}
}
for (Package pkg : mBlacklistPackages.values()) {
try {
Preference pref = createPreferenceFromInfo(pkg);
mBlacklistPrefList.addPreference(pref);
} catch (PackageManager.NameNotFoundException e) {
// Do nothing
}
}
}
// Keep these at the top
mAddStoplistPref.setOrder(0);
mAddBlacklistPref.setOrder(0);
// Add 'add' options
mStoplistPrefList.addPreference(mAddStoplistPref);
mBlacklistPrefList.addPreference(mAddBlacklistPref);
}
@Override
public boolean onPreferenceClick(Preference preference) {
if (preference == mAddStoplistPref) {
showDialog(DIALOG_STOPLIST_APPS);
} else if (preference == mAddBlacklistPref) {
showDialog(DIALOG_BLACKLIST_APPS);
} else {
AlertDialog.Builder builder = new AlertDialog.Builder(getActivity())
.setTitle(R.string.dialog_delete_title)
.setMessage(R.string.dialog_delete_message)
.setIconAttribute(android.R.attr.alertDialogIcon)
.setPositiveButton(android.R.string.ok, new DialogInterface.OnClickListener() {
@Override
public void onClick(DialogInterface dialog, int which) {
if (preference == mBlacklistPrefList.findPreference(preference.getKey())) {
removeApplicationPref(preference.getKey(), mBlacklistPackages);
} else if (preference == mStoplistPrefList.findPreference(preference.getKey())) {
removeApplicationPref(preference.getKey(), mStoplistPackages);
}
}
})
.setNegativeButton(android.R.string.cancel, null);
builder.show();
}
return true;
}
private void addCustomApplicationPref(String packageName, Map<String,Package> map) {
Package pkg = map.get(packageName);
if (pkg == null) {
pkg = new Package(packageName);
map.put(packageName, pkg);
savePackageList(false, map);
refreshCustomApplicationPrefs();
}
}
private Preference createPreferenceFromInfo(Package pkg)
throws PackageManager.NameNotFoundException {
PackageInfo info = mPackageManager.getPackageInfo(pkg.name,
PackageManager.GET_META_DATA);
Preference pref =
new Preference(getActivity());
pref.setKey(pkg.name);
pref.setTitle(info.applicationInfo.loadLabel(mPackageManager));
pref.setIcon(info.applicationInfo.loadIcon(mPackageManager));
pref.setPersistent(false);
pref.setLayoutResource(R.layout.headsup_preference_applist);
pref.setOnPreferenceClickListener(this);
return pref;
}
private void removeApplicationPref(String packageName, Map<String,Package> map) {
if (map.remove(packageName) != null) {
savePackageList(false, map);
refreshCustomApplicationPrefs();
}
}
private boolean parsePackageList() {
boolean parsed = false;
final String stoplistString = Settings.System.getString(getContentResolver(),
Settings.System.HEADS_UP_STOPLIST_VALUES);
final String blacklistString = Settings.System.getString(getContentResolver(),
Settings.System.HEADS_UP_BLACKLIST_VALUES);
if (!TextUtils.equals(mStoplistPackageList, stoplistString)) {
mStoplistPackageList = stoplistString;
mStoplistPackages.clear();
parseAndAddToMap(stoplistString, mStoplistPackages);
parsed = true;
}
if (!TextUtils.equals(mBlacklistPackageList, blacklistString)) {
mBlacklistPackageList = blacklistString;
mBlacklistPackages.clear();
parseAndAddToMap(blacklistString, mBlacklistPackages);
parsed = true;
}
return parsed;
}
private void parseAndAddToMap(String baseString, Map<String,Package> map) {
if (baseString == null) {
return;
}
final String[] array = TextUtils.split(baseString, "\\|");
for (String item : array) {
if (TextUtils.isEmpty(item)) {
continue;
}
Package pkg = Package.fromString(item);
map.put(pkg.name, pkg);
}
}
private void savePackageList(boolean preferencesUpdated, Map<String,Package> map) {
String setting = map == mStoplistPackages
? Settings.System.HEADS_UP_STOPLIST_VALUES
: Settings.System.HEADS_UP_BLACKLIST_VALUES;
List<String> settings = new ArrayList<String>();
for (Package app : map.values()) {
settings.add(app.toString());
}
final String value = TextUtils.join("|", settings);
if (preferencesUpdated) {
if (TextUtils.equals(setting, Settings.System.HEADS_UP_STOPLIST_VALUES)) {
mStoplistPackageList = value;
} else {
mBlacklistPackageList = value;
}
}
Settings.System.putString(getContentResolver(),
setting, value);
}
}

View File

@@ -41,7 +41,6 @@ import android.os.SystemProperties;
import android.provider.Settings;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.internal.util.cherish.udfps.UdfpsUtils;
import com.android.internal.util.cherish.CherishUtils;
import com.cherish.settings.preferences.SystemSettingListPreference;
import com.cherish.settings.preferences.CustomSeekBarPreference;
@@ -51,41 +50,34 @@ import com.cherish.settings.preferences.SystemSettingListPreference;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import android.provider.SearchIndexableResource;
import android.widget.Toast;
import java.util.List;
import com.android.internal.util.cherish.fod.FodUtils;
import com.android.internal.util.cherish.CherishUtils;
import java.util.ArrayList;
import java.util.Map;
import java.util.HashMap;
import java.util.Collections;
import java.io.FileDescriptor;
import java.util.Arrays;
import org.json.JSONException;
import org.json.JSONObject;
import static android.os.UserHandle.USER_SYSTEM;
import android.os.RemoteException;
import android.os.ServiceManager;
import static android.os.UserHandle.USER_CURRENT;
import java.util.List;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class LockScreenSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
private static final String UDFPS_CATEGORY = "udfps_category";
private static final String TORCH_POWER_BUTTON_GESTURE = "torch_power_button_gesture";
private static final String AOD_SCHEDULE_KEY = "always_on_display_schedule";
static final int MODE_DISABLED = 0;
static final int MODE_NIGHT = 1;
static final int MODE_TIME = 2;
static final int MODE_MIXED_SUNSET = 3;
static final int MODE_MIXED_SUNRISE = 4;
private ListPreference mLockClockStyles;
private PreferenceCategory mUdfpsCategory;
private Context mContext;
private ListPreference mTorchPowerButton;
Preference mAODPref;
Preference mFODPref;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.cherish_settings_lockscreen);
final ContentResolver resolver = getActivity().getContentResolver();
final PreferenceScreen prefSet = getPreferenceScreen();
ContentResolver resolver = getActivity().getContentResolver();
PreferenceScreen prefScreen = getPreferenceScreen();
Resources resources = getResources();
Resources res = null;
Context ctx = getContext();
@@ -97,36 +89,47 @@ public class LockScreenSettings extends SettingsPreferenceFragment implements
e.printStackTrace();
}
mUdfpsCategory = findPreference(UDFPS_CATEGORY);
if (!UdfpsUtils.hasUdfpsSupport(getContext())) {
prefSet.removePreference(mUdfpsCategory);
PreferenceCategory udfps = (PreferenceCategory) prefScreen.findPreference("udfps_category");
if (!FodUtils.hasFodSupport(getContext())) {
prefScreen.removePreference(udfps);
}
// screen off torch
mTorchPowerButton = (ListPreference) findPreference(TORCH_POWER_BUTTON_GESTURE);
int mTorchPowerButtonValue = Settings.System.getInt(resolver,
Settings.System.TORCH_POWER_BUTTON_GESTURE, 0);
mTorchPowerButton.setValue(Integer.toString(mTorchPowerButtonValue));
mTorchPowerButton.setSummary(mTorchPowerButton.getEntry());
mTorchPowerButton.setOnPreferenceChangeListener(this);
mAODPref = findPreference(AOD_SCHEDULE_KEY);
updateAlwaysOnSummary();
}
@Override
public void onResume() {
super.onResume();
updateAlwaysOnSummary();
}
private void updateAlwaysOnSummary() {
if (mAODPref == null) return;
int mode = Settings.Secure.getIntForUser(getActivity().getContentResolver(),
Settings.Secure.DOZE_ALWAYS_ON_AUTO_MODE, 0, UserHandle.USER_CURRENT);
switch (mode) {
default:
case MODE_DISABLED:
mAODPref.setSummary(R.string.disabled);
break;
case MODE_NIGHT:
mAODPref.setSummary(R.string.night_display_auto_mode_twilight);
break;
case MODE_TIME:
mAODPref.setSummary(R.string.night_display_auto_mode_custom);
break;
case MODE_MIXED_SUNSET:
mAODPref.setSummary(R.string.always_on_display_schedule_mixed_sunset);
break;
case MODE_MIXED_SUNRISE:
mAODPref.setSummary(R.string.always_on_display_schedule_mixed_sunrise);
break;
}
}
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mTorchPowerButton) {
int mTorchPowerButtonValue = Integer.valueOf((String) newValue);
int index = mTorchPowerButton.findIndexOfValue((String) newValue);
mTorchPowerButton.setSummary(
mTorchPowerButton.getEntries()[index]);
Settings.System.putInt(resolver, Settings.System.TORCH_POWER_BUTTON_GESTURE,
mTorchPowerButtonValue);
return true;
}
return false;
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2020-2022 The CherishOS Project
* Copyright (C) 2020 The CherishOS Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
@@ -16,53 +16,61 @@
package com.cherish.settings.fragments;
import android.app.ActivityManagerNative;
import android.content.Context;
import android.content.ContentResolver;
import android.content.pm.PackageManager.NameNotFoundException;
import android.content.res.Resources;
import android.net.Uri;
import android.os.Bundle;
import android.os.Handler;
import android.os.UserHandle;
import android.provider.Settings;
import androidx.preference.ListPreference;
import android.os.RemoteException;
import android.os.ServiceManager;
import androidx.preference.Preference;
import androidx.preference.ListPreference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.SwitchPreference;
import android.provider.Settings;
import android.util.Log;
import android.view.WindowManagerGlobal;
import android.view.IWindowManager;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
import java.util.Locale;
import android.text.TextUtils;
import android.view.View;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.Utils;
public class SmartCharging extends SettingsPreferenceFragment {
private static final String TAG = "SmartCharging";
private static final String SMART_CHARGING_FOOTER = "smart_charging_footer";
public class LockscreenShortcuts extends SettingsPreferenceFragment implements OnPreferenceChangeListener {
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.smart_charging);
addPreferencesFromResource(R.xml.cherish_lockscreen_shortcuts);
findPreference(SMART_CHARGING_FOOTER).setTitle(R.string.smart_charging_footer);
}
final ContentResolver resolver = getActivity().getContentResolver();
final PreferenceScreen prefSet = getPreferenceScreen();
public static void reset(Context mContext) {
ContentResolver resolver = mContext.getContentResolver();
Settings.System.putIntForUser(resolver,
Settings.System.SMART_CHARGING, 0, UserHandle.USER_CURRENT);
Settings.System.putIntForUser(resolver,
Settings.System.SMART_CHARGING_RESET_STATS, 0, UserHandle.USER_CURRENT);
Settings.System.putIntForUser(resolver,
Settings.System.SMART_CHARGING_LEVEL, 80, UserHandle.USER_CURRENT);
Settings.System.putIntForUser(resolver,
Settings.System.SMART_CHARGING_RESUME_LEVEL, 60, UserHandle.USER_CURRENT);
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
return MetricsEvent.CHERISH_SETTINGS;
}
@Override
public void onResume() {
super.onResume();
}
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
return false;
}
}

View File

@@ -39,61 +39,71 @@ import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import android.provider.SearchIndexableResource;
import com.cherish.settings.fragments.SmartCharging;
import java.util.ArrayList;
import java.util.List;
@SearchIndexable
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class MiscSettings extends SettingsPreferenceFragment implements
OnPreferenceChangeListener {
private static final String KEY_GAMES_SPOOF = "use_games_spoof";
private static final String KEY_PHOTOS_SPOOF = "use_photos_spoof";
private static final String KEY_STREAM_SPOOF = "use_stream_spoof";
private static final String SYS_GAMES_SPOOF = "persist.sys.pixelprops.games";
private static final String SYS_PHOTOS_SPOOF = "persist.sys.pixelprops.gphotos";
private static final String SMART_CHARGING = "smart_charging";
private static final String SYS_STREAM_SPOOF = "persist.sys.pixelprops.streaming";
private SwitchPreference mGamesSpoof;
private SwitchPreference mPhotosSpoof;
private Preference mSmartCharging;
private SwitchPreference mStreamSpoof;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
ContentResolver resolver = getActivity().getContentResolver();
PreferenceScreen prefSet = getPreferenceScreen();
addPreferencesFromResource(R.xml.cherish_settings_misc);
final PreferenceScreen prefScreen = getPreferenceScreen();
final Resources res = getResources();
Resources res = null;
Context ctx = getContext();
float density = Resources.getSystem().getDisplayMetrics().density;
try {
res = ctx.getPackageManager().getResourcesForApplication("com.android.systemui");
} catch (NameNotFoundException e) {
e.printStackTrace();
}
mGamesSpoof = (SwitchPreference) findPreference(KEY_GAMES_SPOOF);
mGamesSpoof.setChecked(SystemProperties.getBoolean(SYS_GAMES_SPOOF, false));
mGamesSpoof.setOnPreferenceChangeListener(this);
mPhotosSpoof = (SwitchPreference) findPreference(KEY_PHOTOS_SPOOF);
mPhotosSpoof = (SwitchPreference) findPreference(KEY_PHOTOS_SPOOF);
mPhotosSpoof.setChecked(SystemProperties.getBoolean(SYS_PHOTOS_SPOOF, true));
mPhotosSpoof.setOnPreferenceChangeListener(this);
mSmartCharging = (Preference) prefScreen.findPreference(SMART_CHARGING);
boolean mSmartChargingSupported = res.getBoolean(
com.android.internal.R.bool.config_smartChargingAvailable);
if (!mSmartChargingSupported)
prefScreen.removePreference(mSmartCharging);
mStreamSpoof = (SwitchPreference) findPreference(KEY_STREAM_SPOOF);
mStreamSpoof.setChecked(SystemProperties.getBoolean(SYS_STREAM_SPOOF, true));
mStreamSpoof.setOnPreferenceChangeListener(this);
}
@Override
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
if (preference == mGamesSpoof) {
boolean value = (Boolean) newValue;
SystemProperties.set(SYS_GAMES_SPOOF, value ? "true" : "false");
return true;
} else if (preference == mPhotosSpoof) {
} else if (preference == mPhotosSpoof) {
boolean value = (Boolean) newValue;
SystemProperties.set(SYS_PHOTOS_SPOOF, value ? "true" : "false");
return true;
} else if (preference == mStreamSpoof) {
boolean value = (Boolean) newValue;
SystemProperties.set(SYS_STREAM_SPOOF, value ? "true" : "false");
return true;
}
return false;
}
@@ -104,18 +114,28 @@ public class MiscSettings extends SettingsPreferenceFragment implements
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
}
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.cherish_settings_misc) {
/**
* For Search.
*/
public static final SearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider() {
@Override
public List<SearchIndexableResource> getXmlResourcesToIndex(Context context,
boolean enabled) {
ArrayList<SearchIndexableResource> result =
new ArrayList<SearchIndexableResource>();
SearchIndexableResource sir = new SearchIndexableResource(context);
sir.xmlResId = R.xml.cherish_settings_misc;
result.add(sir);
return result;
}
@Override
public List<String> getNonIndexableKeys(Context context) {
List<String> keys = super.getNonIndexableKeys(context);
boolean mSmartChargingSupported = context.getResources().getBoolean(
com.android.internal.R.bool.config_smartChargingAvailable);
if (!mSmartChargingSupported)
keys.add(SMART_CHARGING);
return keys;
}
};
};
}

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2022 PixelPlusUI Project
* Copyright (C) 2021 AOSP-Krypton Project
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.

View File

@@ -1,108 +0,0 @@
/*
* Copyright (C) 2019-22 The CherishOS
*
* 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.cherish.settings.fragments;
import android.content.ContentResolver;
import android.content.Context;
import android.content.res.Resources;
import android.database.ContentObserver;
import android.os.Bundle;
import android.os.Handler;
import android.os.SystemProperties;
import android.os.UserHandle;
import android.provider.Settings;
import android.view.View;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceCategory;
import androidx.preference.PreferenceScreen;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.SwitchPreference;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.android.settings.search.BaseSearchIndexProvider;
import com.android.settingslib.search.SearchIndexable;
import java.util.ArrayList;
import java.util.List;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
import com.cherish.settings.preferences.SystemSettingMainSwitchPreference;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class NetworkTrafficSettings extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
private SystemSettingSwitchPreference mThreshold;
private SystemSettingMainSwitchPreference mNetMonitor;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.cherish_settings_network_traffic);
final ContentResolver resolver = getActivity().getContentResolver();
boolean isNetMonitorEnabled = Settings.System.getIntForUser(resolver,
Settings.System.NETWORK_TRAFFIC_STATE, 1, UserHandle.USER_CURRENT) == 1;
mNetMonitor = (SystemSettingMainSwitchPreference) findPreference("network_traffic_state");
mNetMonitor.setChecked(isNetMonitorEnabled);
mNetMonitor.setOnPreferenceChangeListener(this);
boolean isThresholdEnabled = Settings.System.getIntForUser(resolver,
Settings.System.NETWORK_TRAFFIC_AUTOHIDE_THRESHOLD, 0, UserHandle.USER_CURRENT) == 1;
mThreshold = (SystemSettingSwitchPreference) findPreference("network_traffic_autohide_threshold");
mThreshold.setChecked(isThresholdEnabled);
mThreshold.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mNetMonitor) {
boolean value = (Boolean) newValue;
Settings.System.putIntForUser(resolver,
Settings.System.NETWORK_TRAFFIC_STATE, value ? 1 : 0,
UserHandle.USER_CURRENT);
mNetMonitor.setChecked(value);
mThreshold.setChecked(value);
return true;
} else if (preference == mThreshold) {
boolean value = (Boolean) newValue;
Settings.System.putIntForUser(resolver,
Settings.System.NETWORK_TRAFFIC_AUTOHIDE_THRESHOLD, value ? 1 : 0,
UserHandle.USER_CURRENT);
return true;
}
return false;
}
@Override
public int getMetricsCategory() {
return MetricsEvent.CHERISH_SETTINGS;
}
/**
* For Search.
*/
public static final BaseSearchIndexProvider SEARCH_INDEX_DATA_PROVIDER =
new BaseSearchIndexProvider(R.xml.cherish_settings_network_traffic);
}

View File

@@ -31,6 +31,8 @@ import com.cherish.settings.preferences.SystemSettingListPreference;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
import net.margaritov.preference.colorpicker.ColorPickerPreference;
import com.android.internal.util.cherish.CherishUtils;
import com.cherish.settings.preferences.Utils;
import java.util.ArrayList;
import java.util.List;
@@ -38,10 +40,18 @@ import java.util.List;
public class NotificationSettings extends SettingsPreferenceFragment implements Preference.OnPreferenceChangeListener{
private static final String INCALL_VIB_OPTIONS = "incall_vib_options";
private static final String ALERT_SLIDER_PREF = "alert_slider_notifications";
private static final String PREF_FLASH_ON_CALL = "flashlight_on_call";
private static final String PREF_FLASH_ON_CALL_DND = "flashlight_on_call_ignore_dnd";
private static final String PREF_FLASH_ON_CALL_RATE = "flashlight_on_call_rate";
private static final String KEY_EDGE_LIGHTNING = "pulse_ambient_light";
private static final String RETICKER_STATUS = "reticker_status";
private Preference mChargingLeds;
private Preference mAlertSlider;
private SystemSettingMasterSwitchPreference mEdgeLightning;
private SystemSettingListPreference mFlashOnCall;
private SystemSettingSwitchPreference mFlashOnCallIgnoreDND;
private CustomSeekBarPreference mFlashOnCallRate;
private Preference mChargingLeds;
private SystemSettingSwitchPreference mRetickerStatus;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
@@ -51,11 +61,36 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
final PreferenceScreen prefScreen = getPreferenceScreen();
final Resources res = getResources();
mAlertSlider = (Preference) prefScreen.findPreference(ALERT_SLIDER_PREF);
boolean mAlertSliderAvailable = res.getBoolean(
com.android.internal.R.bool.config_hasAlertSlider);
if (!mAlertSliderAvailable)
prefScreen.removePreference(mAlertSlider);
PreferenceCategory incallVibCategory = (PreferenceCategory) findPreference(INCALL_VIB_OPTIONS);
if (!Utils.isVoiceCapable(getActivity())) {
prefScreen.removePreference(incallVibCategory);
}
mFlashOnCallRate = (CustomSeekBarPreference)
findPreference(PREF_FLASH_ON_CALL_RATE);
int value = Settings.System.getInt(resolver,
Settings.System.FLASHLIGHT_ON_CALL_RATE, 1);
mFlashOnCallRate.setValue(value);
mFlashOnCallRate.setOnPreferenceChangeListener(this);
mFlashOnCallIgnoreDND = (SystemSettingSwitchPreference)
findPreference(PREF_FLASH_ON_CALL_DND);
value = Settings.System.getInt(resolver,
Settings.System.FLASHLIGHT_ON_CALL, 0);
mFlashOnCallIgnoreDND.setVisible(value > 1);
mFlashOnCallRate.setVisible(value != 0);
mFlashOnCall = (SystemSettingListPreference)
findPreference(PREF_FLASH_ON_CALL);
mFlashOnCall.setSummary(mFlashOnCall.getEntries()[value]);
mFlashOnCall.setOnPreferenceChangeListener(this);
mEdgeLightning = (SystemSettingMasterSwitchPreference)
findPreference(KEY_EDGE_LIGHTNING);
boolean enabled = Settings.System.getIntForUser(resolver,
KEY_EDGE_LIGHTNING, 0, UserHandle.USER_CURRENT) == 1;
mEdgeLightning.setChecked(enabled);
mEdgeLightning.setOnPreferenceChangeListener(this);
mChargingLeds = (Preference) findPreference("charging_light");
if (mChargingLeds != null
@@ -64,15 +99,41 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
prefScreen.removePreference(mChargingLeds);
}
PreferenceCategory incallVibCategory = (PreferenceCategory) findPreference(INCALL_VIB_OPTIONS);
if (!CherishUtils.isVoiceCapable(getActivity())) {
prefScreen.removePreference(incallVibCategory);
}
mRetickerStatus = findPreference(RETICKER_STATUS);
mRetickerStatus.setChecked((Settings.System.getInt(resolver,
Settings.System.RETICKER_STATUS, 0) == 1));
mRetickerStatus.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
final ContentResolver resolver = getActivity().getContentResolver();
if (preference == mFlashOnCall) {
int value = Integer.parseInt((String) newValue);
Settings.System.putInt(resolver,
Settings.System.FLASHLIGHT_ON_CALL, value);
mFlashOnCall.setSummary(mFlashOnCall.getEntries()[value]);
mFlashOnCallIgnoreDND.setVisible(value > 1);
mFlashOnCallRate.setVisible(value != 0);
return true;
} else if (preference == mFlashOnCallRate) {
int value = (Integer) newValue;
Settings.System.putInt(resolver,
Settings.System.FLASHLIGHT_ON_CALL_RATE, value);
return true;
} else if (preference == mEdgeLightning) {
boolean value = (Boolean) newValue;
Settings.System.putIntForUser(resolver, KEY_EDGE_LIGHTNING,
value ? 1 : 0, UserHandle.USER_CURRENT);
return true;
} else if (preference == mRetickerStatus) {
boolean value = (Boolean) newValue;
Settings.System.putInt(resolver,
Settings.System.RETICKER_STATUS, value ? 1 : 0);
CherishUtils.showSettingsRestartDialog(getContext());
return true;
}
return false;
}
@@ -103,10 +164,6 @@ public class NotificationSettings extends SettingsPreferenceFragment implements
public List<String> getNonIndexableKeys(Context context) {
List<String> keys = super.getNonIndexableKeys(context);
final Resources res = context.getResources();
boolean mAlertSliderAvailable = res.getBoolean(
com.android.internal.R.bool.config_hasAlertSlider);
if (!mAlertSliderAvailable)
keys.add(ALERT_SLIDER_PREF);
return keys;
}
};

View File

@@ -37,7 +37,12 @@ import java.util.ArrayList;
public class QuickSettings extends SettingsPreferenceFragment implements
OnPreferenceChangeListener {
private static final String KEY_QS_CLOCK_SIZE = "qs_header_clock_size";
private static final String KEY_QS_DATE_SIZE = "qs_header_date_size";
private ListPreference mQuickPulldown;
private CustomSeekBarPreference mQsClockSize;
private CustomSeekBarPreference mQSDateSize;
@Override
public void onCreate(Bundle icicle) {
@@ -45,22 +50,33 @@ public class QuickSettings extends SettingsPreferenceFragment implements
addPreferencesFromResource(R.xml.cherish_settings_quicksettings);
final Context mContext = getActivity().getApplicationContext();
final ContentResolver resolver = mContext.getContentResolver();
final PreferenceScreen prefSet = getPreferenceScreen();
PreferenceScreen prefScreen = getPreferenceScreen();
ContentResolver resolver = getActivity().getContentResolver();
int qpmode = Settings.System.getIntForUser(getContentResolver(),
int qpmode = Settings.System.getIntForUser(getContentResolver(),
Settings.System.STATUS_BAR_QUICK_QS_PULLDOWN, 0, UserHandle.USER_CURRENT);
mQuickPulldown = (ListPreference) findPreference("status_bar_quick_qs_pulldown");
mQuickPulldown.setValue(String.valueOf(qpmode));
mQuickPulldown.setSummary(mQuickPulldown.getEntry());
mQuickPulldown.setOnPreferenceChangeListener(this);
mQsClockSize = (CustomSeekBarPreference) findPreference(KEY_QS_CLOCK_SIZE);
int qsClockSize = Settings.System.getInt(getActivity().getContentResolver(),
Settings.System.QS_HEADER_CLOCK_SIZE, 14);
mQsClockSize.setValue(qsClockSize / 1);
mQsClockSize.setOnPreferenceChangeListener(this);
mQSDateSize = (CustomSeekBarPreference) findPreference(KEY_QS_DATE_SIZE);
int qsDateSize = Settings.System.getInt(getActivity().getContentResolver(),
Settings.System.QS_HEADER_DATE_SIZE, 14);
mQSDateSize.setValue(qsDateSize / 1);
mQSDateSize.setOnPreferenceChangeListener(this);
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mQuickPulldown) {
if (preference == mQuickPulldown) {
int value = Integer.parseInt((String) newValue);
Settings.System.putIntForUser(resolver,
Settings.System.STATUS_BAR_QUICK_QS_PULLDOWN, value,
@@ -69,11 +85,20 @@ public class QuickSettings extends SettingsPreferenceFragment implements
mQuickPulldown.setSummary(
mQuickPulldown.getEntries()[index]);
return true;
}
} else if (preference == mQsClockSize) {
int width = ((Integer)newValue).intValue();
Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.QS_HEADER_CLOCK_SIZE, width);
return true;
} else if (preference == mQSDateSize) {
int dateWidth = ((Integer)newValue).intValue();
Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.QS_HEADER_DATE_SIZE, dateWidth);
return true;
}
return false;
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;

View File

@@ -1,5 +1,5 @@
/*
* Copyright (C) 2017-2019 The Dirty Unicorns Project
* Copyright (C) 2012 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.
@@ -13,110 +13,91 @@
* See the License for the specific language governing permissions and
* limitations under the License.
*/
package com.cherish.settings.fragments;
import android.content.ContentResolver;
import android.content.Context;
import android.os.Bundle;
import android.os.UserHandle;
import android.provider.Settings;
import androidx.preference.PreferenceCategory;
import androidx.preference.ListPreference;
import androidx.preference.Preference;
import androidx.preference.PreferenceScreen;
import androidx.preference.Preference.OnPreferenceChangeListener;
import androidx.preference.SwitchPreference;
import android.provider.Settings;
import com.android.internal.logging.nano.MetricsProto.MetricsEvent;
import com.android.internal.logging.nano.MetricsProto;
import com.android.settings.R;
import com.android.settings.SettingsPreferenceFragment;
import com.android.settings.Utils;
import com.cherish.settings.preferences.SystemSettingListPreference;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
public class StatusBarBattery extends SettingsPreferenceFragment implements
Preference.OnPreferenceChangeListener {
import java.util.ArrayList;
import java.util.List;
public class StatusBarBattery extends SettingsPreferenceFragment
implements Preference.OnPreferenceChangeListener {
private static final String STATUS_BAR_SHOW_BATTERY_PERCENT = "status_bar_show_battery_percent";
private static final String SHOW_BATTERY_PERCENT = "status_bar_show_battery_percent";
private static final String STATUS_BAR_BATTERY_STYLE = "status_bar_battery_style";
private static final String STATUS_BAR_BATTERY_TEXT_CHARGING = "status_bar_battery_text_charging";
private SwitchPreference mBatteryTextCharging;
private static final int STATUS_BAR_BATTERY_STYLE_TEXT = 3;
private SystemSettingListPreference mBatteryPercent;
private SystemSettingListPreference mBatteryStyle;
private static final int BATTERY_STYLE_PORTRAIT = 0;
private static final int BATTERY_STYLE_TEXT = 4;
private static final int BATTERY_STYLE_HIDDEN = 5;
private static final int BATTERY_PERCENT_HIDDEN = 0;
private ListPreference mStatusBarBatteryShowPercent;
private ListPreference mStatusBarBattery;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
addPreferencesFromResource(R.xml.statusbar_battery);
int batterystyle = Settings.System.getIntForUser(getContentResolver(),
Settings.System.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_PORTRAIT, UserHandle.USER_CURRENT);
int batterypercent = Settings.System.getIntForUser(getContentResolver(),
Settings.System.STATUS_BAR_SHOW_BATTERY_PERCENT, 0, UserHandle.USER_CURRENT);
ContentResolver resolver = getActivity().getContentResolver();
mBatteryStyle = (SystemSettingListPreference) findPreference(STATUS_BAR_BATTERY_STYLE);
mBatteryStyle.setOnPreferenceChangeListener(this);
mStatusBarBatteryShowPercent =
(ListPreference) findPreference(SHOW_BATTERY_PERCENT);
mBatteryPercent = (SystemSettingListPreference) findPreference(STATUS_BAR_SHOW_BATTERY_PERCENT);
mBatteryPercent.setEnabled(
batterystyle != BATTERY_STYLE_TEXT && batterystyle != BATTERY_STYLE_HIDDEN);
mBatteryPercent.setOnPreferenceChangeListener(this);
int batteryShowPercent = Settings.System.getInt(resolver,
Settings.System.SHOW_BATTERY_PERCENT, 0);
mStatusBarBatteryShowPercent.setValue(String.valueOf(batteryShowPercent));
mStatusBarBatteryShowPercent.setSummary(mStatusBarBatteryShowPercent.getEntry());
mStatusBarBatteryShowPercent.setOnPreferenceChangeListener(this);
mBatteryTextCharging = (SwitchPreference) findPreference(STATUS_BAR_BATTERY_TEXT_CHARGING);
mBatteryTextCharging.setEnabled(batterystyle == BATTERY_STYLE_HIDDEN ||
(batterystyle != BATTERY_STYLE_TEXT && batterypercent != 2));
mStatusBarBattery = (ListPreference) findPreference(STATUS_BAR_BATTERY_STYLE);
int batteryStyle = Settings.Secure.getInt(resolver,
Settings.Secure.STATUS_BAR_BATTERY_STYLE, 0);
mStatusBarBattery.setValue(String.valueOf(batteryStyle));
mStatusBarBattery.setSummary(mStatusBarBattery.getEntry());
enableStatusBarBatteryDependents(batteryStyle);
mStatusBarBattery.setOnPreferenceChangeListener(this);
}
@Override
public int getMetricsCategory() {
return MetricsEvent.CHERISH_SETTINGS;
}
@Override
public boolean onPreferenceChange(Preference preference, Object newValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mBatteryStyle) {
int value = Integer.parseInt((String) newValue);
int batterypercent = Settings.System.getIntForUser(getContentResolver(),
Settings.System.STATUS_BAR_SHOW_BATTERY_PERCENT, 0, UserHandle.USER_CURRENT);
mBatteryPercent.setEnabled(
value != BATTERY_STYLE_TEXT && value != BATTERY_STYLE_HIDDEN);
mBatteryTextCharging.setEnabled(value == BATTERY_STYLE_HIDDEN ||
(value != BATTERY_STYLE_TEXT && batterypercent != 2));
if (preference == mStatusBarBatteryShowPercent) {
int batteryShowPercent = Integer.valueOf((String) newValue);
int index = mStatusBarBatteryShowPercent.findIndexOfValue((String) newValue);
Settings.System.putInt(
resolver, Settings.System.SHOW_BATTERY_PERCENT, batteryShowPercent);
mStatusBarBatteryShowPercent.setSummary(
mStatusBarBatteryShowPercent.getEntries()[index]);
return true;
} else if (preference == mBatteryPercent) {
int value = Integer.parseInt((String) newValue);
int batterystyle = Settings.System.getIntForUser(getContentResolver(),
Settings.System.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_PORTRAIT, UserHandle.USER_CURRENT);
mBatteryTextCharging.setEnabled(batterystyle == BATTERY_STYLE_HIDDEN ||
(batterystyle != BATTERY_STYLE_TEXT && value != 2));
} else if (preference == mStatusBarBattery) {
int batteryStyle = Integer.valueOf((String) newValue);
int index = mStatusBarBattery.findIndexOfValue((String) newValue);
Settings.Secure.putInt(resolver,
Settings.Secure.STATUS_BAR_BATTERY_STYLE, batteryStyle);
mStatusBarBattery.setSummary(mStatusBarBattery.getEntries()[index]);
enableStatusBarBatteryDependents(batteryStyle);
return true;
}
return false;
}
public static void reset(Context mContext) {
ContentResolver resolver = mContext.getContentResolver();
Settings.System.putIntForUser(resolver,
Settings.System.STATUS_BAR_BATTERY_STYLE, BATTERY_STYLE_PORTRAIT, UserHandle.USER_CURRENT);
Settings.System.putIntForUser(resolver,
Settings.System.STATUS_BAR_SHOW_BATTERY_PERCENT, 0, UserHandle.USER_CURRENT);
Settings.System.putIntForUser(resolver,
Settings.System.STATUS_BAR_BATTERY_TEXT_CHARGING, 1, UserHandle.USER_CURRENT);
Settings.System.putIntForUser(resolver,
Settings.System.QS_BATTERY_STYLE, -1, UserHandle.USER_CURRENT);
Settings.System.putIntForUser(resolver,
Settings.System.QS_SHOW_BATTERY_PERCENT, 2, UserHandle.USER_CURRENT);
}
@Override
public int getMetricsCategory() {
return MetricsProto.MetricsEvent.CHERISH_SETTINGS;
private void enableStatusBarBatteryDependents(int batteryIconStyle) {
if (batteryIconStyle == STATUS_BAR_BATTERY_STYLE_TEXT) {
mStatusBarBatteryShowPercent.setEnabled(false);
} else {
mStatusBarBatteryShowPercent.setEnabled(true);
}
}
}

View File

@@ -27,6 +27,7 @@ import android.view.View;
import com.android.settings.SettingsPreferenceFragment;
import com.cherish.settings.preferences.CustomSeekBarPreference;
import com.cherish.settings.preferences.SecureSettingSwitchPreference;
import com.cherish.settings.preferences.SystemSettingSeekBarPreference;
import com.cherish.settings.preferences.SystemSettingListPreference;
import com.cherish.settings.preferences.SystemSettingSwitchPreference;
@@ -47,20 +48,97 @@ import java.util.Collections;
@SearchIndexable(forTarget = SearchIndexable.ALL & ~SearchIndexable.ARC)
public class StatusBarSettings extends SettingsPreferenceFragment implements
OnPreferenceChangeListener {
private static final String SYSTEMUI_PACKAGE = "com.android.systemui";
private static final String CONFIG_RESOURCE_NAME = "flag_combined_status_bar_signal_icons";
private static final String COBINED_STATUSBAR_ICONS = "show_combined_status_bar_signal_icons";
private static final String STATUS_BAR_CLOCK_STYLE = "status_bar_clock";
private static final String KEY_STATUS_BAR_CLOCK_SIZE = "status_bar_clock_size";
private static final String PREF_CLOCK_BG = "statusbar_clock_chip";
private SecureSettingSwitchPreference mCombinedIcons;
private SystemSettingListPreference mStatusBarClock;
private CustomSeekBarPreference mClockSize;
private SwitchPreference mStatusBarClockBG;
@Override
public void onCreate(Bundle icicle) {
super.onCreate(icicle);
addPreferencesFromResource(R.xml.cherish_settings_statusbar);
ContentResolver resolver = getActivity().getContentResolver();
PreferenceScreen prefSet = getPreferenceScreen();
final Context mContext = getActivity().getApplicationContext();
final ContentResolver resolver = getActivity().getContentResolver();
PreferenceScreen prefSet = getPreferenceScreen();
mClockSize = (CustomSeekBarPreference) findPreference(KEY_STATUS_BAR_CLOCK_SIZE);
int clockSize = Settings.System.getInt(getActivity().getContentResolver(),
Settings.System.STATUS_BAR_CLOCK_SIZE, 14);
mClockSize.setValue(clockSize / 1);
mClockSize.setOnPreferenceChangeListener(this);
mStatusBarClockBG = (SwitchPreference) findPreference(PREF_CLOCK_BG);
mStatusBarClockBG.setChecked((Settings.System.getInt(getActivity()
.getContentResolver(), Settings.System.STATUSBAR_CLOCK_CHIP, 1) == 1));
mStatusBarClockBG.setOnPreferenceChangeListener(this);
mCombinedIcons = (SecureSettingSwitchPreference)
findPreference(COBINED_STATUSBAR_ICONS);
Resources sysUIRes = null;
boolean def = false;
int resId = 0;
try {
sysUIRes = getActivity().getPackageManager()
.getResourcesForApplication(SYSTEMUI_PACKAGE);
} catch (Exception ignored) {
// If you don't have system UI you have bigger issues
}
if (sysUIRes != null) {
resId = sysUIRes.getIdentifier(
CONFIG_RESOURCE_NAME, "bool", SYSTEMUI_PACKAGE);
if (resId != 0) def = sysUIRes.getBoolean(resId);
}
boolean enabled = Settings.Secure.getInt(resolver,
COBINED_STATUSBAR_ICONS, def ? 1 : 0) == 1;
mCombinedIcons.setChecked(enabled);
mCombinedIcons.setOnPreferenceChangeListener(this);
mStatusBarClock =
(SystemSettingListPreference) findPreference(STATUS_BAR_CLOCK_STYLE);
// Adjust status bar preferences for RTL
if (getResources().getConfiguration().getLayoutDirection() == View.LAYOUT_DIRECTION_RTL) {
if (CherishUtils.hasNotch(mContext)) {
mStatusBarClock.setEntries(R.array.status_bar_clock_position_entries_notch_rtl);
mStatusBarClock.setEntryValues(R.array.status_bar_clock_position_values_notch_rtl);
} else {
mStatusBarClock.setEntries(R.array.status_bar_clock_position_entries_rtl);
mStatusBarClock.setEntryValues(R.array.status_bar_clock_position_values_rtl);
}
} else if (CherishUtils.hasNotch(mContext)) {
mStatusBarClock.setEntries(R.array.status_bar_clock_position_entries_notch);
mStatusBarClock.setEntryValues(R.array.status_bar_clock_position_values_notch);
}
}
@Override
public boolean onPreferenceChange(Preference preference, Object objValue) {
ContentResolver resolver = getActivity().getContentResolver();
if (preference == mCombinedIcons) {
boolean enabled = (boolean) objValue;
Settings.Secure.putInt(resolver,
COBINED_STATUSBAR_ICONS, enabled ? 1 : 0);
return true;
} else if (preference == mClockSize) {
int width = ((Integer)objValue).intValue();
Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.STATUS_BAR_CLOCK_SIZE, width);
return true;
} else if (preference == mStatusBarClockBG) {
boolean value = (Boolean) objValue;
Settings.System.putInt(getActivity().getContentResolver(),
Settings.System.STATUSBAR_CLOCK_CHIP, value ? 1 : 0);
return true;
}
return false;
}

Some files were not shown because too many files have changed in this diff Show More