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 171 commits into
base: dev
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
171 commits
Select commit Hold shift + click to select a range
bf83db8
refactor: Basic use of patcher v22 instruction filters
LisoUseInAIKyrios Jan 1, 2025
6111bca
refactor
LisoUseInAIKyrios Jan 2, 2025
f9767e1
refactor
LisoUseInAIKyrios Jan 2, 2025
96e60a4
fix: add missing dependency used by fingerprints
LisoUseInAIKyrios Jan 2, 2025
cfce280
refactor: use 'by' semantic
LisoUseInAIKyrios Jan 3, 2025
2d1f7ff
Allow using a fingerprint result inside another fingerprint
LisoUseInAIKyrios Jan 3, 2025
5c3fb65
refactor
LisoUseInAIKyrios Jan 3, 2025
3db7566
use non deprecated method
LisoUseInAIKyrios Jan 3, 2025
f3b8602
Simplify
LisoUseInAIKyrios Jan 3, 2025
d2fbbf5
refactor: Simplify with class (parent) fingerprint
LisoUseInAIKyrios Jan 3, 2025
37833a0
refactor
LisoUseInAIKyrios Jan 4, 2025
0dfa503
use `NewInstanceFilter` filter
LisoUseInAIKyrios Jan 4, 2025
adc89a6
fix version constrain
LisoUseInAIKyrios Jan 4, 2025
e823574
refactor
LisoUseInAIKyrios Jan 4, 2025
2c1cdcc
Restore use of context receivers
LisoUseInAIKyrios Jan 5, 2025
d44f860
refactor: Rename to `MethodCallFilter` and `FieldCallFilter`
LisoUseInAIKyrios Jan 5, 2025
7ca1542
Revert "refactor: Simplify with class (parent) fingerprint"
LisoUseInAIKyrios Jan 5, 2025
d270192
refactor: Rename FieldCallFilter -> FieldAccessFilter
LisoUseInAIKyrios Jan 6, 2025
e0d97f4
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 6, 2025
8114617
refactor: Use DSL style constructor functions
LisoUseInAIKyrios Jan 7, 2025
dfd6149
refactor: Use String literal instruction filter
LisoUseInAIKyrios Jan 7, 2025
d2900b7
refactor
LisoUseInAIKyrios Jan 8, 2025
41f753e
simplify
LisoUseInAIKyrios Jan 9, 2025
0277624
vastly simplify
LisoUseInAIKyrios Jan 10, 2025
676991a
refactor: Match class types using endsWith
LisoUseInAIKyrios Jan 10, 2025
d293cdd
unofficial 20.02
LisoUseInAIKyrios Jan 10, 2025
1802d00
refactor
LisoUseInAIKyrios Jan 12, 2025
ce7613f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 15, 2025
8a9c5ab
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 18, 2025
c57ad58
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 20, 2025
5322672
fix merge
LisoUseInAIKyrios Jan 20, 2025
9d3ba64
refactor
LisoUseInAIKyrios Jan 20, 2025
d20905e
unofficial 20.03 support
LisoUseInAIKyrios Jan 20, 2025
62be6fb
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 20, 2025
7ddd83b
fix Open Shorts fullscreen patch with 19.50+
LisoUseInAIKyrios Jan 21, 2025
573c628
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 21, 2025
598baa4
refactor, fix 19.25
LisoUseInAIKyrios Jan 21, 2025
e802bc3
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 22, 2025
76b5f23
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 22, 2025
f05794a
simplify
LisoUseInAIKyrios Jan 22, 2025
0f7fc1f
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 23, 2025
605044e
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 23, 2025
d68b096
refactor
LisoUseInAIKyrios Jan 23, 2025
4658742
Merge remote-tracking branch 'upstream/dev' into feat/patcher_instruc…
LisoUseInAIKyrios Jan 25, 2025
24daaac
refactor: Simplify
LisoUseInAIKyrios Jan 25, 2025
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
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
Expand Up @@ -23,7 +23,7 @@ public final class DownloadsPatch {
/**
* Injection point.
*/
public static void activityCreated(Activity mainActivity) {
public static void setMainActivity(Activity mainActivity) {
activityRef = new WeakReference<>(mainActivity);
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -20,15 +20,6 @@ public enum ShortsPlayerType {
REGULAR_PLAYER_FULLSCREEN
}

static {
if (!VersionCheckPatch.IS_19_46_OR_GREATER
&& Settings.SHORTS_PLAYER_TYPE.get() == ShortsPlayerType.REGULAR_PLAYER_FULLSCREEN) {
// User imported newer settings to an older app target.
Logger.printInfo(() -> "Resetting " + Settings.SHORTS_PLAYER_TYPE);
Settings.SHORTS_PLAYER_TYPE.resetToDefault();
}
}

private static WeakReference<Activity> mainActivityRef = new WeakReference<>(null);

/**
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -24,18 +24,20 @@ private static boolean isFullScreenPatchIncluded() {

/**
* Injection point.
*
* Returns negated value.
*/
public static boolean openVideoFullscreenPortrait(boolean original) {
public static boolean doNotOpenVideoFullscreenPortrait(boolean original) {
Boolean openFullscreen = openNextVideoFullscreen;
if (openFullscreen != null) {
openNextVideoFullscreen = null;
return openFullscreen;
return !openFullscreen;
}

if (!isFullScreenPatchIncluded()) {
return false;
return original;
}

return Settings.OPEN_VIDEOS_FULLSCREEN_PORTRAIT.get();
return !Settings.OPEN_VIDEOS_FULLSCREEN_PORTRAIT.get();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,8 @@

import android.app.Activity;

import androidx.annotation.Nullable;

import java.lang.ref.WeakReference;
import java.util.Objects;

Expand All @@ -28,10 +30,15 @@ private enum ShortsLoopBehavior {

static void setYTEnumValue(Enum<?> ytBehavior) {
for (ShortsLoopBehavior rvBehavior : values()) {
if (ytBehavior.name().endsWith(rvBehavior.name())) {
rvBehavior.ytEnumValue = ytBehavior;

Logger.printDebug(() -> rvBehavior + " set to YT enum: " + ytBehavior.name());
String ytName = ytBehavior.name();
if (ytName.endsWith(rvBehavior.name())) {
if (rvBehavior.ytEnumValue != null) {
Logger.printException(() -> "Conflicting behavior names: " + rvBehavior
+ " ytBehavior: " + ytName);
} else {
rvBehavior.ytEnumValue = ytBehavior;
Logger.printDebug(() -> rvBehavior + " set to YT enum: " + ytName);
}
return;
}
}
Expand Down Expand Up @@ -76,10 +83,9 @@ public static void setYTShortsRepeatEnum(Enum<?> ytEnum) {
/**
* Injection point.
*/
public static Enum<?> changeShortsRepeatBehavior(Enum<?> original) {
public static Enum<?> changeShortsRepeatBehavior(@Nullable Enum<?> original) {
try {
final boolean autoplay;

if (isAppInBackgroundPiPMode()) {
if (!VersionCheckPatch.IS_19_34_OR_GREATER) {
// 19.34+ is required to set background play behavior.
Expand All @@ -93,22 +99,31 @@ public static Enum<?> changeShortsRepeatBehavior(Enum<?> original) {
autoplay = Settings.SHORTS_AUTOPLAY.get();
}

final ShortsLoopBehavior behavior = autoplay
Enum<?> overrideBehavior = (autoplay
? ShortsLoopBehavior.SINGLE_PLAY
: ShortsLoopBehavior.REPEAT;
: ShortsLoopBehavior.REPEAT).ytEnumValue;

if (behavior.ytEnumValue != null) {
Logger.printDebug(() -> behavior.ytEnumValue == original
? "Changing Shorts repeat behavior from: " + original.name() + " to: " + behavior.ytEnumValue
: "Behavior setting is same as original. Using original: " + original.name()
);
if (overrideBehavior != null) {
Logger.printDebug(() -> {
String name = (original == null ? "unknown (null)" : original.name());
return overrideBehavior == original
? "Behavior setting is same as original. Using original: " + name
: "Changing Shorts repeat behavior from: " + name + " to: " + overrideBehavior.name();
});

return behavior.ytEnumValue;
return overrideBehavior;
}
} catch (Exception ex) {
Logger.printException(() -> "changeShortsRepeatState failure", ex);
Logger.printException(() -> "changeShortsRepeatBehavior failure", ex);
}

return original;
}

/**
* Injection point.
*/
public static boolean isAutoPlay(Enum<?> original) {
return ShortsLoopBehavior.SINGLE_PLAY.ytEnumValue == original;
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,5 +13,5 @@ private static boolean isVersionOrGreater(String version) {
public static final boolean IS_19_26_OR_GREATER = isVersionOrGreater("19.26.00");
public static final boolean IS_19_29_OR_GREATER = isVersionOrGreater("19.29.00");
public static final boolean IS_19_34_OR_GREATER = isVersionOrGreater("19.34.00");
public static final boolean IS_19_46_OR_GREATER = isVersionOrGreater("19.46.00");
public static final boolean IS_20_07_OR_GREATER = isVersionOrGreater("20.07.00");
}
Original file line number Diff line number Diff line change
Expand Up @@ -373,17 +373,6 @@ private static boolean shouldHideShortsFeedItems() {
};
}

/**
* Injection point. Only used if patching older than 19.03.
* This hook may be obsolete even for old versions
* as they now use a litho layout like newer versions.
*/
public static void hideShortsShelf(final View shortsShelfView) {
if (shouldHideShortsFeedItems()) {
Utils.hideViewByLayoutParams(shortsShelfView);
}
}

public static int getSoundButtonSize(int original) {
if (Settings.HIDE_SHORTS_SOUND_BUTTON.get()) {
return 0;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -201,16 +201,16 @@ public static void setSplashAnimationLottie(LottieAnimationView view, int resour
}

if (BaseSettings.DEBUG.get() && (!json.contains(originalPrimary) || !json.contains(originalAccent))) {
String jsonFinal = json;
Logger.printException(() -> "Could not replace launch animation colors: " + jsonFinal);
Logger.printException(() -> "Could not replace launch animation colors: " + json);
}

Logger.printDebug(() -> "Replacing Lottie animation JSON");
json = json.replace(originalPrimary, replacementPrimary);
json = json.replace(originalAccent, replacementAccent);
String replacementJson = json
.replace(originalPrimary, replacementPrimary)
.replace(originalAccent, replacementAccent);

// cacheKey is not needed since the animation will not be reused.
view.patch_setAnimation(new ByteArrayInputStream(json.getBytes()), null);
view.patch_setAnimation(new ByteArrayInputStream(replacementJson.getBytes()), null);
} catch (Exception ex) {
Logger.printException(() -> "setSplashAnimationLottie failure", ex);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -259,7 +259,8 @@ private static SpannableString createDislikeSpan(@NonNull Spanned oldSpannable,
// middle separator
String middleSeparatorString = compactLayout
? " " + MIDDLE_SEPARATOR_CHARACTER + " "
: " \u2009" + MIDDLE_SEPARATOR_CHARACTER + "\u2009 "; // u2009 = 'narrow space' character
: " \u2009\u2009" + MIDDLE_SEPARATOR_CHARACTER + "\u2009\u2009 "; // u2009 = 'narrow space'

final int shapeInsertionIndex = middleSeparatorString.length() / 2;
Spannable middleSeparatorSpan = new SpannableString(middleSeparatorString);
ShapeDrawable shapeDrawable = new ShapeDrawable(new OvalShape());
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
import static app.revanced.extension.youtube.patches.ChangeStartPagePatch.StartPage;
import static app.revanced.extension.youtube.patches.ExitFullscreenPatch.FullscreenMode;
import static app.revanced.extension.youtube.patches.ForceOriginalAudioPatch.ForceOriginalAudioAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHideOverlayButtonsAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerHorizontalDragAvailability;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType;
import static app.revanced.extension.youtube.patches.MiniplayerPatch.MiniplayerType.MINIMAL;
Expand Down Expand Up @@ -41,7 +42,6 @@
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.StillImagesAvailability;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailOption;
import app.revanced.extension.youtube.patches.AlternativeThumbnailsPatch.ThumbnailStillTime;
import app.revanced.extension.youtube.patches.MiniplayerPatch;
import app.revanced.extension.youtube.sponsorblock.SponsorBlockSettings;

public class Settings extends BaseSettings {
Expand Down Expand Up @@ -159,8 +159,8 @@ public class Settings extends BaseSettings {
public static final BooleanSetting MINIPLAYER_DOUBLE_TAP_ACTION = new BooleanSetting("revanced_miniplayer_double_tap_action", TRUE, true, MINIPLAYER_ANY_MODERN);
public static final BooleanSetting MINIPLAYER_DRAG_AND_DROP = new BooleanSetting("revanced_miniplayer_drag_and_drop", TRUE, true, MINIPLAYER_ANY_MODERN);
public static final BooleanSetting MINIPLAYER_HORIZONTAL_DRAG = new BooleanSetting("revanced_miniplayer_horizontal_drag", FALSE, true, new MiniplayerHorizontalDragAvailability());
public static final BooleanSetting MINIPLAYER_HIDE_OVERLAY_BUTTONS = new BooleanSetting("revanced_miniplayer_hide_overlay_buttons", FALSE, true, new MiniplayerPatch.MiniplayerHideOverlayButtonsAvailability());
public static final BooleanSetting MINIPLAYER_HIDE_SUBTEXT = new BooleanSetting("revanced_miniplayer_hide_subtext", FALSE, true, MINIPLAYER_TYPE.availability(MODERN_1, MODERN_3));
public static final BooleanSetting MINIPLAYER_HIDE_OVERLAY_BUTTONS = new BooleanSetting("revanced_miniplayer_hide_overlay_buttons", FALSE, true, new MiniplayerHideOverlayButtonsAvailability());
public static final BooleanSetting MINIPLAYER_HIDE_SUBTEXT = new BooleanSetting("revanced_miniplayer_hide_subtext", FALSE, true, MINIPLAYER_TYPE.availability(MODERN_1, MODERN_3, MODERN_4));
public static final BooleanSetting MINIPLAYER_HIDE_REWIND_FORWARD = new BooleanSetting("revanced_miniplayer_hide_rewind_forward", TRUE, true, MINIPLAYER_TYPE.availability(MODERN_1));
public static final BooleanSetting MINIPLAYER_ROUNDED_CORNERS = new BooleanSetting("revanced_miniplayer_rounded_corners", TRUE, true, MINIPLAYER_ANY_MODERN);
public static final IntegerSetting MINIPLAYER_WIDTH_DIP = new IntegerSetting("revanced_miniplayer_width_dip", 192, true, MINIPLAYER_ANY_MODERN);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,6 @@ package app.revanced.extension.youtube.shared

import app.revanced.extension.shared.Logger
import app.revanced.extension.youtube.Event
import app.revanced.extension.youtube.patches.VideoInformation

/**
* Regular player type.
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,6 @@
import androidx.annotation.NonNull;
import androidx.annotation.Nullable;

import java.lang.reflect.Field;
import java.util.*;

import app.revanced.extension.shared.Logger;
Expand Down Expand Up @@ -100,9 +99,9 @@ public class SegmentPlaybackController {
@Nullable
private static String timeWithoutSegments;

private static int sponsorBarAbsoluteLeft;
private static int sponsorAbsoluteBarRight;
private static int sponsorBarThickness;
private static int seekbarAbsoluteLeft;
private static int seekbarAbsoluteRight;
private static int seekbarThickness;

@Nullable
static SponsorSegment[] getSegments() {
Expand Down Expand Up @@ -629,40 +628,26 @@ public static void onSkipSegmentClicked(@NonNull SponsorSegment segment) {
* Injection point
*/
@SuppressWarnings("unused")
public static void setSponsorBarRect(final Object self) {
try {
Field field = self.getClass().getDeclaredField("replaceMeWithsetSponsorBarRect");
field.setAccessible(true);
Rect rect = (Rect) Objects.requireNonNull(field.get(self));
setSponsorBarAbsoluteLeft(rect);
setSponsorBarAbsoluteRight(rect);
} catch (Exception ex) {
Logger.printException(() -> "setSponsorBarRect failure", ex);
}
}

private static void setSponsorBarAbsoluteLeft(Rect rect) {
final int left = rect.left;
if (sponsorBarAbsoluteLeft != left) {
Logger.printDebug(() -> "setSponsorBarAbsoluteLeft: " + left);
sponsorBarAbsoluteLeft = left;
public static void setSeekbarRectangle(Rect seekbarRect) {
final int left = seekbarRect.left;
if (seekbarAbsoluteLeft != left) {
Logger.printDebug(() -> "setSeekbarRectangle left: " + left);
seekbarAbsoluteLeft = left;
}
}

private static void setSponsorBarAbsoluteRight(Rect rect) {
final int right = rect.right;
if (sponsorAbsoluteBarRight != right) {
Logger.printDebug(() -> "setSponsorBarAbsoluteRight: " + right);
sponsorAbsoluteBarRight = right;
final int right = seekbarRect.right;
if (seekbarAbsoluteRight != right) {
Logger.printDebug(() -> "setSeekbarRectangle right: " + right);
seekbarAbsoluteRight = right;
}
}

/**
* Injection point
*/
@SuppressWarnings("unused")
public static void setSponsorBarThickness(int thickness) {
sponsorBarThickness = thickness;
public static void setSeekbarThickness(int thickness) {
seekbarThickness = thickness;
}

/**
Expand Down Expand Up @@ -741,17 +726,17 @@ private static int getHighlightSegmentTimeBarScreenWidth() {
* Injection point.
*/
@SuppressWarnings("unused")
public static void drawSponsorTimeBars(final Canvas canvas, final float posY) {
public static void drawSegmentTimeBars(final Canvas canvas, final float posY) {
try {
if (segments == null) return;
final long videoLength = VideoInformation.getVideoLength();
if (videoLength <= 0) return;

final int thicknessDiv2 = sponsorBarThickness / 2; // rounds down
final float top = posY - (sponsorBarThickness - thicknessDiv2);
final int thicknessDiv2 = seekbarThickness / 2; // rounds down
final float top = posY - (seekbarThickness - thicknessDiv2);
final float bottom = posY + thicknessDiv2;
final float videoMillisecondsToPixels = (1f / videoLength) * (sponsorAbsoluteBarRight - sponsorBarAbsoluteLeft);
final float leftPadding = sponsorBarAbsoluteLeft;
final float videoMillisecondsToPixels = (1f / videoLength) * (seekbarAbsoluteRight - seekbarAbsoluteLeft);
final float leftPadding = seekbarAbsoluteLeft;

for (SponsorSegment segment : segments) {
final float left = leftPadding + segment.start * videoMillisecondsToPixels;
Expand Down
4 changes: 2 additions & 2 deletions gradle/libs.versions.toml
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
[versions]
revanced-patcher = "21.0.0"
revanced-patcher = "22.0.0"
# Tracking https://github.com/google/smali/issues/64.
#noinspection GradleDependency
smali = "3.0.5"
smali = "3.0.8"
# 8.3.0 causes java verifier error: https://github.com/ReVanced/revanced-patches/issues/2818.
#noinspection GradleDependency
agp = "8.2.2"
Expand Down
Loading
Loading