Skip to content

feat: Update to patcher v22 #4409

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 295 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
295 commits
Select commit Hold shift + click to select a range
9ca9479
refactor: Simplify
LisoUseInAIKyrios Jan 25, 2025
d55cb5d
Add debugging code
LisoUseInAIKyrios Jan 27, 2025
e4c298e
Revert "Add debugging code"
LisoUseInAIKyrios Jan 27, 2025
6acbf34
refactor: Remove ClassProxy wrapper that's no longer needed
LisoUseInAIKyrios Jan 28, 2025
d151839
refactor
LisoUseInAIKyrios Jan 28, 2025
d9679c0
refactor
LisoUseInAIKyrios Jan 28, 2025
6ff3359
fix a/b seekbar color
LisoUseInAIKyrios Jan 29, 2025
a3339b4
add Miniplayer Modern 4, fix visual glitch if horizontal drag is enabled
LisoUseInAIKyrios Jan 29, 2025
af2e935
Add comments for literal filters
LisoUseInAIKyrios Jan 29, 2025
3ba91aa
fix Modern 4 hide overlay buttons
LisoUseInAIKyrios Jan 29, 2025
66dce1f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
fe3d0c0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
9cbc3ba
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
68b6d63
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
bdf60f8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 30, 2025
737e291
fix Twitch
LisoUseInAIKyrios Jan 30, 2025
f02489d
refactor
LisoUseInAIKyrios Jan 30, 2025
f0e179e
Unofficial support for 20.05 beta
LisoUseInAIKyrios Jan 30, 2025
fd571c3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 31, 2025
47b60c8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 31, 2025
c68f11d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 2, 2025
aceb3a6
Simplify with instruction filters
LisoUseInAIKyrios Feb 2, 2025
3d667d8
Remove `lastInstruction()` filter
LisoUseInAIKyrios Feb 2, 2025
08a5854
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 5, 2025
7b51a99
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 5, 2025
2d14bb0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 6, 2025
3b7b30c
refactor
LisoUseInAIKyrios Feb 6, 2025
0f693ef
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 7, 2025
02e66a4
Remove unneeded annotations
LisoUseInAIKyrios Feb 8, 2025
55e3070
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 8, 2025
91d19ad
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 10, 2025
a0135eb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 11, 2025
f23834a
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 11, 2025
9881f71
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 13, 2025
e5bf3d0
fix floating point literals
LisoUseInAIKyrios Feb 13, 2025
042f16f
Unofficial 20.07 support
LisoUseInAIKyrios Feb 13, 2025
093b3b7
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 13, 2025
2616ce2
refactor
LisoUseInAIKyrios Feb 13, 2025
bc40cc4
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 18, 2025
6feba55
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 18, 2025
b31b0eb
refactor: Use map instead of list to lookup resource ids
LisoUseInAIKyrios Feb 18, 2025
8421499
refactor: Use map resource lookup
LisoUseInAIKyrios Feb 18, 2025
58ab98f
fix: Remove deprecated and non functional legacy code
LisoUseInAIKyrios Feb 18, 2025
f82c817
refactor: Add method to check if a resource exists
LisoUseInAIKyrios Feb 18, 2025
fed59e1
refactor: Remove multi-threaded resource reading as it's faster witho…
LisoUseInAIKyrios Feb 19, 2025
3b64bf2
fix: Remove debugging code
LisoUseInAIKyrios Feb 19, 2025
2d18567
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 19, 2025
0033e8d
refactor: Simplify
LisoUseInAIKyrios Feb 20, 2025
010f876
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 20, 2025
8e160f1
refactor: Simplify
LisoUseInAIKyrios Feb 21, 2025
a1a5867
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 22, 2025
2038f97
Simplify with instruction filters
LisoUseInAIKyrios Feb 22, 2025
c04b620
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 22, 2025
ced3706
refactor
LisoUseInAIKyrios Feb 22, 2025
191a937
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 22, 2025
4767127
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 25, 2025
4c79270
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 27, 2025
8e47c2f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 27, 2025
ff020a0
Finish merge
LisoUseInAIKyrios Feb 27, 2025
c5b5695
Fix 20.07 dislikes span spacing
LisoUseInAIKyrios Feb 27, 2025
0ef9765
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Feb 27, 2025
845e034
Unofficial 20.09 support
LisoUseInAIKyrios Mar 1, 2025
080e500
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 1, 2025
eea8e5d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 2, 2025
11ef434
Finish merge
LisoUseInAIKyrios Mar 2, 2025
617487c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 3, 2025
0237bf9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
b3ef55d
refactor
LisoUseInAIKyrios Mar 6, 2025
50b5b66
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
205bd8b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
6051abb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 6, 2025
91e7e5f
Partial unofficial support for 20.10 support. High quality seekbar t…
LisoUseInAIKyrios Mar 6, 2025
29efd8f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 9, 2025
85bb1a9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 9, 2025
b013694
refactor(Spotify): Use instruction filters
LisoUseInAIKyrios Mar 9, 2025
b9349ad
fix: Turn off 20.03 / 20.10+ playback feature flags that breaks strea…
LisoUseInAIKyrios Mar 9, 2025
f8d0131
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 19, 2025
44198a1
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 19, 2025
92cd7c8
fix: add version checks warnings for 20.09+
LisoUseInAIKyrios Mar 19, 2025
7094941
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 20, 2025
5025591
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 21, 2025
03e9c88
feat: Unofficial support for 20.12, remove reflections usage in Spons…
LisoUseInAIKyrios Mar 21, 2025
208816a
fix: Restore autoplay behavior with 20.09+
LisoUseInAIKyrios Mar 22, 2025
3bbef34
refactor
LisoUseInAIKyrios Mar 22, 2025
5b5a669
refactor
LisoUseInAIKyrios Mar 22, 2025
c9056da
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 26, 2025
8328cc2
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 28, 2025
96022e0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 28, 2025
2ebe42d
fix: update compatibility
LisoUseInAIKyrios Mar 28, 2025
d7f0b8d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 28, 2025
ae9b0ca
refactor: Add helper method to find a free register for a specific in…
LisoUseInAIKyrios Mar 28, 2025
e89ee5e
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 29, 2025
cc6415f
refactor
LisoUseInAIKyrios Mar 29, 2025
4b7bc70
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Mar 30, 2025
7543b0f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 1, 2025
537b89b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 1, 2025
1f6d16b
fix: Remove deprecated binary compatibility classes
LisoUseInAIKyrios Apr 1, 2025
ab4b73b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 2, 2025
787e73b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 4, 2025
edba384
refactor: Simplify with instruction filters
LisoUseInAIKyrios Apr 4, 2025
99f419d
feat: Unofficial 20.24 support
LisoUseInAIKyrios Apr 4, 2025
43924a5
fix dislike spacing fixed with 20.14
LisoUseInAIKyrios Apr 7, 2025
b9b0c4d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 7, 2025
aae0d16
fix: Update RYD separator spacing of 20.12+ font.
LisoUseInAIKyrios Apr 8, 2025
b3e7bf3
refactor
LisoUseInAIKyrios Apr 8, 2025
ad98bc6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 10, 2025
fb34f4f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 11, 2025
fafca3a
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 11, 2025
b7a4455
fix: Remove obsolete code
LisoUseInAIKyrios Apr 11, 2025
73fd235
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 12, 2025
6d29254
feat: Unofficial 20.15 support
LisoUseInAIKyrios Apr 12, 2025
896ed1c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 13, 2025
a6d92b8
fix merge
LisoUseInAIKyrios Apr 13, 2025
d4bbef4
fix merge
LisoUseInAIKyrios Apr 13, 2025
02a6d4f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 13, 2025
e937737
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 13, 2025
3aa348d
finish merge
LisoUseInAIKyrios Apr 13, 2025
03f43a2
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 15, 2025
48d5949
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 16, 2025
c87dc6d
Finish merge
LisoUseInAIKyrios Apr 16, 2025
b0ceab0
Fix merge
LisoUseInAIKyrios Apr 16, 2025
04b708c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 17, 2025
87fd88f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 19, 2025
4526986
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 20, 2025
9a84789
feat: Unofficial 20.16
LisoUseInAIKyrios Apr 20, 2025
33323dd
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 20, 2025
12187bc
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 24, 2025
ccb5eac
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 26, 2025
2d34b2f
refactor
LisoUseInAIKyrios Apr 26, 2025
4b1c113
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 27, 2025
3b36deb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 29, 2025
8d2f3ab
refactor
LisoUseInAIKyrios Apr 29, 2025
f9fd9d6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Apr 30, 2025
dd12fd9
feat: Unofficial 20.18
LisoUseInAIKyrios May 2, 2025
79fc5e6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 5, 2025
d41c7dc
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 10, 2025
9a3ffbf
fix merge
LisoUseInAIKyrios May 10, 2025
8a3160b
20.19 work in progress (Doesn't work yet, lots of changes to fix)
LisoUseInAIKyrios May 10, 2025
32f8997
fix build
LisoUseInAIKyrios May 10, 2025
7c9eb84
unofficial 20.19
LisoUseInAIKyrios May 10, 2025
2fa35c7
perf: Skip re-writing public.xml file after reading
LisoUseInAIKyrios May 10, 2025
a7c813c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 13, 2025
e687849
cleanup
LisoUseInAIKyrios May 13, 2025
158957a
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 17, 2025
8e6a2e1
finish merge
LisoUseInAIKyrios May 17, 2025
8d804bf
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 17, 2025
03068a7
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 22, 2025
93bfcf8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 22, 2025
46dfe09
finish merge
LisoUseInAIKyrios May 22, 2025
b05683b
fix build
LisoUseInAIKyrios May 22, 2025
94734d5
Merge branch 'upstream-dev' into feat/patcher_instruction_filters
LisoUseInAIKyrios May 22, 2025
fa2df48
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 22, 2025
0c3f290
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 23, 2025
01506e4
refactor
LisoUseInAIKyrios May 25, 2025
fcff925
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 25, 2025
46f82ce
finish merge
LisoUseInAIKyrios May 25, 2025
886dca8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 26, 2025
8a5be4f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 26, 2025
c0451d6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 27, 2025
9a071a8
20.21 work in progress: App patches and works, but nav buttons patch …
LisoUseInAIKyrios May 27, 2025
1d80531
Unofficial 20.21 support
LisoUseInAIKyrios May 27, 2025
7d7416d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 28, 2025
edcc153
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios May 30, 2025
72611bd
20.22 work in progress (litho buffer filtering is broken)
LisoUseInAIKyrios May 30, 2025
4d0ffae
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 1, 2025
1d01ba7
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 2, 2025
a790aa0
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 3, 2025
2e7d0a7
finish merge
LisoUseInAIKyrios Jun 3, 2025
aceff7d
Remove instruction filter context receivers
LisoUseInAIKyrios Jun 3, 2025
1b9f7a1
fix: Turn off experimental non-litho Shorts player that breaks hide f…
LisoUseInAIKyrios Jun 4, 2025
3f0f177
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 4, 2025
39a0ffe
Comments
LisoUseInAIKyrios Jun 4, 2025
f5ad2d8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 5, 2025
331b22e
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 5, 2025
3ee82ee
Fix litho buffer filter work in progress
LisoUseInAIKyrios Jun 5, 2025
58eb2e7
Revert "Fix litho buffer filter work in progress"
LisoUseInAIKyrios Jun 5, 2025
361690f
feat: Add "Navigation bar animations" setting
LisoUseInAIKyrios Jun 5, 2025
37269c2
fix merged code
LisoUseInAIKyrios Jun 5, 2025
e959a50
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 6, 2025
1dd11ea
finish merge
LisoUseInAIKyrios Jun 6, 2025
257f403
refactor
LisoUseInAIKyrios Jun 6, 2025
585c0ee
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 6, 2025
dee1218
Work in progress fix for 20.22. Still doesn't work right, and action…
LisoUseInAIKyrios Jun 6, 2025
a29c4e4
refactor
LisoUseInAIKyrios Jun 6, 2025
c841662
Refactor litho filtering to a different method that doesn't need a th…
LisoUseInAIKyrios Jun 7, 2025
3df963f
fix min version for override tap and hold speed
LisoUseInAIKyrios Jun 7, 2025
8b5c42a
refactor
LisoUseInAIKyrios Jun 7, 2025
6798142
Comments
LisoUseInAIKyrios Jun 7, 2025
fcc3fb9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 7, 2025
8e45222
refactor
LisoUseInAIKyrios Jun 7, 2025
b6eb1ce
Add litho component type to filtering. Doesn't seem as useful as firs…
LisoUseInAIKyrios Jun 8, 2025
0fb8689
Revert "Add litho component type to filtering. Doesn't seem as useful…
LisoUseInAIKyrios Jun 8, 2025
f445a44
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 8, 2025
97e6e1d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 13, 2025
fb41be9
finish merge
LisoUseInAIKyrios Jun 13, 2025
612a714
finish merge
LisoUseInAIKyrios Jun 13, 2025
8f08897
Remove deprecated unused patch code
LisoUseInAIKyrios Jun 13, 2025
a08fcc6
fix merge
LisoUseInAIKyrios Jun 13, 2025
a34ccf1
refactor
LisoUseInAIKyrios Jun 13, 2025
7df8e8d
refactor
LisoUseInAIKyrios Jun 19, 2025
9cdd53d
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 20, 2025
af4e554
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 23, 2025
a2d6490
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 23, 2025
626f27c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 23, 2025
062a395
Half fix for player filter bar issue
LisoUseInAIKyrios Jun 23, 2025
a327ff5
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 24, 2025
2c1b279
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 25, 2025
65b1fae
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 25, 2025
5d2cc4f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 26, 2025
8777d03
fix build
LisoUseInAIKyrios Jun 27, 2025
85a0637
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 27, 2025
7fdc40d
fix apidump
LisoUseInAIKyrios Jun 27, 2025
3822a4d
refactor: 20.26 (Litho buffer filtering still not fixed)
LisoUseInAIKyrios Jun 27, 2025
5ffdae8
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 27, 2025
3854fbe
fix typo
LisoUseInAIKyrios Jun 27, 2025
5f3034b
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 28, 2025
4325ea3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 28, 2025
59ab4ea
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jun 30, 2025
a0191d2
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 1, 2025
4ad5f93
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 1, 2025
b632e23
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 2, 2025
9acac77
Finish merge
LisoUseInAIKyrios Jul 2, 2025
2eadd9c
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 4, 2025
3db6835
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 4, 2025
f44acf9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 5, 2025
8cf16d6
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 5, 2025
23fc4c5
remove fix no longer needed for v22
LisoUseInAIKyrios Jul 5, 2025
c2c6376
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 6, 2025
1476ec3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 6, 2025
54dfff2
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 6, 2025
dc6cc85
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 9, 2025
433e2d9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 10, 2025
699bd86
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 10, 2025
b4a6bd6
20.28 work in progress (litho filtering is still partially broken)
LisoUseInAIKyrios Jul 10, 2025
33c2377
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 10, 2025
4de94b3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 11, 2025
4d93219
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 12, 2025
948c161
refactor: Use enum for resource type
LisoUseInAIKyrios Jul 12, 2025
647aab9
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 13, 2025
529f2e5
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 14, 2025
146063f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 14, 2025
c23e694
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 20, 2025
492aea3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 24, 2025
fb5d617
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 25, 2025
ed535fb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 26, 2025
a7dc65c
Support 20.30.35 (Litho filtering still broken)
LisoUseInAIKyrios Jul 26, 2025
c86394e
feat(YouTube - Playback speed): Add "Restore old playback speed menu"
LisoUseInAIKyrios Jul 28, 2025
177d45e
cleanup
LisoUseInAIKyrios Jul 28, 2025
07c9b26
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 28, 2025
8cb6e02
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jul 28, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
The table of contents is too big for display.
Diff view
Diff view
  •  
  •  
  •  
Original file line number Diff line number Diff line change
@@ -0,0 +1,57 @@
package app.revanced.extension.shared;

import java.util.HashMap;
import java.util.Map;

public enum ResourceType {
ANIM("anim"),
ANIMATOR("animator"),
ARRAY("array"),
ATTR("attr"),
BOOL("bool"),
COLOR("color"),
DIMEN("dimen"),
DRAWABLE("drawable"),
FONT("font"),
FRACTION("fraction"),
ID("id"),
INTEGER("integer"),
INTERPOLATOR("interpolator"),
LAYOUT("layout"),
MENU("menu"),
MIPMAP("mipmap"),
NAVIGATION("navigation"),
PLURALS("plurals"),
RAW("raw"),
STRING("string"),
STYLE("style"),
STYLEABLE("styleable"),
TRANSITION("transition"),
VALUES("values"),
XML("xml");

private static final Map<String, ResourceType> VALUE_MAP;

static {
ResourceType[] values = values();
VALUE_MAP = new HashMap<>(2 * values.length);

for (ResourceType type : values) {
VALUE_MAP.put(type.value, type);
}
}

public final String value;

public static ResourceType fromValue(String value) {
ResourceType type = VALUE_MAP.get(value);
if (type == null) {
throw new IllegalArgumentException("Unknown resource type: " + value);
}
return type;
}

ResourceType(String value) {
this.value = value;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -148,12 +148,12 @@ public static String getApplicationName() {
/**
* Hide a view by setting its layout height and width to 1dp.
*
* @param condition The setting to check for hiding the view.
* @param setting The setting to check for hiding the view.
* @param view The view to hide.
*/
public static void hideViewBy0dpUnderCondition(BooleanSetting condition, View view) {
if (hideViewBy0dpUnderCondition(condition.get(), view)) {
Logger.printDebug(() -> "View hidden by setting: " + condition);
public static void hideViewBy0dpUnderCondition(BooleanSetting setting, View view) {
if (hideViewBy0dpUnderCondition(setting.get(), view)) {
Logger.printDebug(() -> "View hidden by setting: " + setting);
}
}

Expand All @@ -165,22 +165,47 @@ public static void hideViewBy0dpUnderCondition(BooleanSetting condition, View vi
*/
public static boolean hideViewBy0dpUnderCondition(boolean condition, View view) {
if (condition) {
hideViewByLayoutParams(view);
hideViewBy0dp(view);
return true;
}

return false;
}

/**
* Hide a view by setting its layout params to 0x0
* @param view The view to hide.
*/
public static void hideViewBy0dp(View view) {
if (view instanceof LinearLayout) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0, 0);
view.setLayoutParams(layoutParams);
} else if (view instanceof FrameLayout) {
FrameLayout.LayoutParams layoutParams2 = new FrameLayout.LayoutParams(0, 0);
view.setLayoutParams(layoutParams2);
} else if (view instanceof RelativeLayout) {
RelativeLayout.LayoutParams layoutParams3 = new RelativeLayout.LayoutParams(0, 0);
view.setLayoutParams(layoutParams3);
} else if (view instanceof Toolbar) {
Toolbar.LayoutParams layoutParams4 = new Toolbar.LayoutParams(0, 0);
view.setLayoutParams(layoutParams4);
} else {
ViewGroup.LayoutParams params = view.getLayoutParams();
params.width = 0;
params.height = 0;
view.setLayoutParams(params);
}
}

/**
* Hide a view by setting its visibility to GONE.
*
* @param condition The setting to check for hiding the view.
* @param setting The setting to check for hiding the view.
* @param view The view to hide.
*/
public static void hideViewUnderCondition(BooleanSetting condition, View view) {
if (hideViewUnderCondition(condition.get(), view)) {
Logger.printDebug(() -> "View hidden by setting: " + condition);
public static void hideViewUnderCondition(BooleanSetting setting, View view) {
if (hideViewUnderCondition(setting.get(), view)) {
Logger.printDebug(() -> "View hidden by setting: " + setting);
}
}

Expand All @@ -199,14 +224,14 @@ public static boolean hideViewUnderCondition(boolean condition, View view) {
return false;
}

public static void hideViewByRemovingFromParentUnderCondition(BooleanSetting condition, View view) {
if (hideViewByRemovingFromParentUnderCondition(condition.get(), view)) {
Logger.printDebug(() -> "View hidden by setting: " + condition);
public static void hideViewByRemovingFromParentUnderCondition(BooleanSetting setting, View view) {
if (hideViewByRemovingFromParentUnderCondition(setting.get(), view)) {
Logger.printDebug(() -> "View hidden by setting: " + setting);
}
}

public static boolean hideViewByRemovingFromParentUnderCondition(boolean setting, View view) {
if (setting) {
public static boolean hideViewByRemovingFromParentUnderCondition(boolean condition, View view) {
if (condition) {
ViewParent parent = view.getParent();
if (parent instanceof ViewGroup parentGroup) {
parentGroup.removeView(view);
Expand Down Expand Up @@ -277,42 +302,42 @@ public static int indexOfFirstFound(String value, String... targets) {
/**
* @return zero, if the resource is not found.
*/
@SuppressLint("DiscouragedApi")
public static int getResourceIdentifier(Context context, String resourceIdentifierName, String type) {
return context.getResources().getIdentifier(resourceIdentifierName, type, context.getPackageName());
public static int getResourceIdentifier(ResourceType type, String resourceIdentifierName) {
return getResourceIdentifier(getContext(), type, resourceIdentifierName);
}

/**
* @return zero, if the resource is not found.
*/
public static int getResourceIdentifier(String resourceIdentifierName, String type) {
return getResourceIdentifier(getContext(), resourceIdentifierName, type);
@SuppressLint("DiscouragedApi")
public static int getResourceIdentifier(Context context, ResourceType type, String resourceIdentifierName) {
return context.getResources().getIdentifier(resourceIdentifierName, type.value, context.getPackageName());
}

public static int getResourceInteger(String resourceIdentifierName) throws Resources.NotFoundException {
return getContext().getResources().getInteger(getResourceIdentifier(resourceIdentifierName, "integer"));
return getContext().getResources().getInteger(getResourceIdentifier(ResourceType.INTEGER, resourceIdentifierName));
}

public static Animation getResourceAnimation(String resourceIdentifierName) throws Resources.NotFoundException {
return AnimationUtils.loadAnimation(getContext(), getResourceIdentifier(resourceIdentifierName, "anim"));
return AnimationUtils.loadAnimation(getContext(), getResourceIdentifier(ResourceType.ANIM, resourceIdentifierName));
}

@ColorInt
public static int getResourceColor(String resourceIdentifierName) throws Resources.NotFoundException {
//noinspection deprecation
return getContext().getResources().getColor(getResourceIdentifier(resourceIdentifierName, "color"));
return getContext().getResources().getColor(getResourceIdentifier(ResourceType.COLOR, resourceIdentifierName));
}

public static int getResourceDimensionPixelSize(String resourceIdentifierName) throws Resources.NotFoundException {
return getContext().getResources().getDimensionPixelSize(getResourceIdentifier(resourceIdentifierName, "dimen"));
return getContext().getResources().getDimensionPixelSize(getResourceIdentifier(ResourceType.DIMEN, resourceIdentifierName));
}

public static float getResourceDimension(String resourceIdentifierName) throws Resources.NotFoundException {
return getContext().getResources().getDimension(getResourceIdentifier(resourceIdentifierName, "dimen"));
return getContext().getResources().getDimension(getResourceIdentifier(ResourceType.DIMEN, resourceIdentifierName));
}

public static String[] getResourceStringArray(String resourceIdentifierName) throws Resources.NotFoundException {
return getContext().getResources().getStringArray(getResourceIdentifier(resourceIdentifierName, "array"));
return getContext().getResources().getStringArray(getResourceIdentifier(ResourceType.ARRAY, resourceIdentifierName));
}

public interface MatchFilter<T> {
Expand All @@ -323,7 +348,7 @@ public interface MatchFilter<T> {
* Includes sub children.
*/
public static <R extends View> R getChildViewByResourceName(View view, String str) {
var child = view.findViewById(Utils.getResourceIdentifier(str, "id"));
var child = view.findViewById(Utils.getResourceIdentifier(ResourceType.ID, str));
if (child != null) {
//noinspection unchecked
return (R) child;
Expand Down Expand Up @@ -718,34 +743,6 @@ public static NetworkType getNetworkType() {
|| (type == ConnectivityManager.TYPE_BLUETOOTH) ? NetworkType.MOBILE : NetworkType.OTHER;
}

/**
* Hide a view by setting its layout params to 0x0
* @param view The view to hide.
*/
public static void hideViewByLayoutParams(View view) {
if (view instanceof LinearLayout) {
LinearLayout.LayoutParams layoutParams = new LinearLayout.LayoutParams(0, 0);
view.setLayoutParams(layoutParams);
} else if (view instanceof FrameLayout) {
FrameLayout.LayoutParams layoutParams2 = new FrameLayout.LayoutParams(0, 0);
view.setLayoutParams(layoutParams2);
} else if (view instanceof RelativeLayout) {
RelativeLayout.LayoutParams layoutParams3 = new RelativeLayout.LayoutParams(0, 0);
view.setLayoutParams(layoutParams3);
} else if (view instanceof Toolbar) {
Toolbar.LayoutParams layoutParams4 = new Toolbar.LayoutParams(0, 0);
view.setLayoutParams(layoutParams4);
} else if (view instanceof ViewGroup) {
ViewGroup.LayoutParams layoutParams5 = new ViewGroup.LayoutParams(0, 0);
view.setLayoutParams(layoutParams5);
} else {
ViewGroup.LayoutParams params = view.getLayoutParams();
params.width = 0;
params.height = 0;
view.setLayoutParams(params);
}
}

/**
* Creates a custom dialog with a styled layout, including a title, message, buttons, and an
* optional EditText. The dialog's appearance adapts to the app's dark mode setting, with
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import static android.text.Html.FROM_HTML_MODE_COMPACT;
import static app.revanced.extension.shared.StringRef.str;
import static app.revanced.extension.shared.Utils.DialogFragmentOnStartAction;
import static app.revanced.extension.shared.Utils.dipToPixels;

import android.annotation.SuppressLint;
import android.app.Activity;
Expand All @@ -24,6 +23,7 @@
import java.util.Collection;

import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.ResourceType;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseSettings;

Expand Down Expand Up @@ -127,7 +127,8 @@ static void issueWarning(Activity activity, Collection<Check> failedChecks) {

// Add icon to the dialog.
ImageView iconView = new ImageView(activity);
iconView.setImageResource(Utils.getResourceIdentifier("revanced_ic_dialog_alert", "drawable"));
iconView.setImageResource(Utils.getResourceIdentifier(
ResourceType.DRAWABLE, "revanced_ic_dialog_alert"));
iconView.setColorFilter(Utils.getAppForegroundColor(), PorterDuff.Mode.SRC_IN);
iconView.setPadding(0, 0, 0, 0);
LinearLayout.LayoutParams iconParams = new LinearLayout.LayoutParams(
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -23,6 +23,7 @@
import java.util.Objects;

import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.ResourceType;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.BaseSettings;
import app.revanced.extension.shared.settings.BooleanSetting;
Expand Down Expand Up @@ -105,7 +106,7 @@ protected void initialize() {
String preferenceResourceName = BaseSettings.SHOW_MENU_ICONS.get()
? "revanced_prefs_icons"
: "revanced_prefs";
final var identifier = Utils.getResourceIdentifier(preferenceResourceName, "xml");
final var identifier = Utils.getResourceIdentifier(ResourceType.XML, preferenceResourceName);
if (identifier == 0) return;
addPreferencesFromResource(identifier);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,6 +32,7 @@
import java.util.regex.Pattern;

import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.ResourceType;
import app.revanced.extension.shared.Utils;
import app.revanced.extension.shared.settings.Setting;
import app.revanced.extension.shared.settings.StringSetting;
Expand Down Expand Up @@ -171,7 +172,8 @@ private void init() {
}

// Set the widget layout to a custom layout containing the colored dot.
setWidgetLayoutResource(getResourceIdentifier("revanced_color_dot_widget", "layout"));
setWidgetLayoutResource(getResourceIdentifier(
ResourceType.LAYOUT, "revanced_color_dot_widget"));
}

/**
Expand Down Expand Up @@ -208,9 +210,11 @@ protected void onBindView(View view) {
super.onBindView(view);

widgetColorDot = view.findViewById(getResourceIdentifier(
"revanced_color_dot_widget", "id"));
ResourceType.ID,
"revanced_color_dot_widget"));
widgetColorDot.setBackgroundResource(getResourceIdentifier(
"revanced_settings_circle_background", "drawable"));
ResourceType.DRAWABLE,
"revanced_settings_circle_background"));
widgetColorDot.getBackground().setTint(currentColor | 0xFF000000);
widgetColorDot.setAlpha(isEnabled() ? 1.0f : DISABLED_ALPHA);
}
Expand Down Expand Up @@ -286,10 +290,10 @@ protected void showDialog(Bundle state) {
Context context = getContext();

// Inflate color picker view.
View colorPicker = LayoutInflater.from(context).inflate(
getResourceIdentifier("revanced_color_picker", "layout"), null);
dialogColorPickerView = colorPicker.findViewById(
getResourceIdentifier("revanced_color_picker_view", "id"));
View colorPicker = LayoutInflater.from(context).inflate(getResourceIdentifier(
ResourceType.LAYOUT, "revanced_color_picker"), null);
dialogColorPickerView = colorPicker.findViewById(getResourceIdentifier(
ResourceType.ID, "revanced_color_picker_view"));
dialogColorPickerView.setColor(currentColor);

// Horizontal layout for preview and EditText.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@

import androidx.annotation.NonNull;

import app.revanced.extension.shared.ResourceType;
import app.revanced.extension.shared.Utils;

/**
Expand Down Expand Up @@ -54,11 +55,14 @@ public View getView(int position, View convertView, @NonNull ViewGroup parent) {
view = inflater.inflate(layoutResourceId, parent, false);
holder = new SubViewDataContainer();
holder.checkIcon = view.findViewById(Utils.getResourceIdentifier(
"revanced_check_icon", "id"));
ResourceType.ID,
"revanced_check_icon"));
holder.placeholder = view.findViewById(Utils.getResourceIdentifier(
"revanced_check_icon_placeholder", "id"));
ResourceType.ID,
"revanced_check_icon_placeholder"));
holder.itemText = view.findViewById(Utils.getResourceIdentifier(
"revanced_item_text", "id"));
ResourceType.ID,
"revanced_item_text"));
view.setTag(holder);
} else {
holder = (SubViewDataContainer) view.getTag();
Expand Down Expand Up @@ -111,7 +115,7 @@ protected void showDialog(Bundle state) {
// Create custom adapter for the ListView.
ListPreferenceArrayAdapter adapter = new ListPreferenceArrayAdapter(
context,
Utils.getResourceIdentifier("revanced_custom_list_item_checked", "layout"),
Utils.getResourceIdentifier(ResourceType.LAYOUT, "revanced_custom_list_item_checked"),
getEntries(),
getEntryValues(),
getValue()
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package app.revanced.extension.spotify.layout.hide.createbutton;

import app.revanced.extension.shared.Logger;
import app.revanced.extension.shared.ResourceType;
import app.revanced.extension.spotify.shared.ComponentFilters.ComponentFilter;
import app.revanced.extension.spotify.shared.ComponentFilters.ResourceIdComponentFilter;
import app.revanced.extension.spotify.shared.ComponentFilters.StringComponentFilter;
Expand All @@ -15,7 +16,7 @@ public final class HideCreateButtonPatch {
* The main approach used is matching the resource id for the Create button title.
*/
private static final List<ComponentFilter> CREATE_BUTTON_COMPONENT_FILTERS = List.of(
new ResourceIdComponentFilter("navigationbar_musicappitems_create_title", "string"),
new ResourceIdComponentFilter(ResourceType.STRING, "navigationbar_musicappitems_create_title"),
// Temporary fallback and fix for APKs merged with AntiSplit-M not having resources properly encoded,
// and thus getting the resource identifier for the Create button title always return 0.
// FIXME: Remove this once the above issue is no longer relevant.
Expand All @@ -27,7 +28,7 @@ public final class HideCreateButtonPatch {
* Used in older versions of the app.
*/
private static final ResourceIdComponentFilter OLD_CREATE_BUTTON_COMPONENT_FILTER =
new ResourceIdComponentFilter("bottom_navigation_bar_create_tab_title", "string");
new ResourceIdComponentFilter(ResourceType.STRING, "bottom_navigation_bar_create_tab_title");

/**
* Injection point. This method is called on every navigation bar item to check whether it is the Create button.
Expand Down
Loading
Loading