fix(youtube/return-youtube-dislike): fix dislikes not showing in some situations (#439)

This commit is contained in:
LisoUseInAIKyrios 2023-07-16 20:39:51 +04:00 committed by GitHub
parent 5056adbc3c
commit 7a28c2fa13
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 11 additions and 5 deletions

View File

@ -202,7 +202,13 @@ public class ReturnYouTubeDislikePatch {
*/ */
public static boolean setShortsDislikes(@NonNull View likeDislikeView) { public static boolean setShortsDislikes(@NonNull View likeDislikeView) {
try { try {
if (!SettingsEnum.RYD_ENABLED.getBoolean() || !SettingsEnum.RYD_SHORTS.getBoolean()) { if (!SettingsEnum.RYD_ENABLED.getBoolean()) {
return false;
}
if (!SettingsEnum.RYD_SHORTS.getBoolean()) {
// Must clear the data here, in case a new video was loaded while PlayerType
// suggested the video was not a short (can happen when spoofing to an old app version).
ReturnYouTubeDislike.setCurrentVideoId(null);
return false; return false;
} }
LogHelper.printDebug(() -> "setShortsDislikes"); LogHelper.printDebug(() -> "setShortsDislikes");
@ -302,7 +308,7 @@ public class ReturnYouTubeDislikePatch {
if (!videoId.equals(currentVideoId)) { if (!videoId.equals(currentVideoId)) {
currentVideoId = videoId; currentVideoId = videoId;
final boolean noneHiddenOrMinimized = PlayerType.getCurrent().isNoneHiddenOrMinimized(); final boolean noneHiddenOrMinimized = PlayerType.getCurrent().isNoneOrHidden();
if (noneHiddenOrMinimized && !SettingsEnum.RYD_SHORTS.getBoolean()) { if (noneHiddenOrMinimized && !SettingsEnum.RYD_SHORTS.getBoolean()) {
ReturnYouTubeDislike.setCurrentVideoId(null); ReturnYouTubeDislike.setCurrentVideoId(null);
return; return;

View File

@ -255,7 +255,7 @@ public class ReturnYouTubeDislike {
// If a Short is opened while a regular video is on screen, this will incorrectly set this as false. // If a Short is opened while a regular video is on screen, this will incorrectly set this as false.
// But this check is needed to fix unusual situations of opening/closing the app // But this check is needed to fix unusual situations of opening/closing the app
// while both a regular video and a short are on screen. // while both a regular video and a short are on screen.
dislikeDataIsShort = currentPlayerType.isNoneHiddenOrMinimized(); dislikeDataIsShort = currentPlayerType.isNoneOrHidden();
RYDCachedFetch entry = futureCache.get(videoId); RYDCachedFetch entry = futureCache.get(videoId);
if (entry != null && entry.futureInProgressOrFinishedSuccessfully()) { if (entry != null && entry.futureInProgressOrFinishedSuccessfully()) {
@ -371,7 +371,7 @@ public class ReturnYouTubeDislike {
// Must make a local copy of videoId, since it may change between now and when the vote thread runs. // Must make a local copy of videoId, since it may change between now and when the vote thread runs.
String videoIdToVoteFor = getCurrentVideoId(); String videoIdToVoteFor = getCurrentVideoId();
if (videoIdToVoteFor == null || if (videoIdToVoteFor == null ||
(SettingsEnum.RYD_SHORTS.getBoolean() && dislikeDataIsShort != PlayerType.getCurrent().isNoneHiddenOrMinimized())) { (SettingsEnum.RYD_SHORTS.getBoolean() && dislikeDataIsShort != PlayerType.getCurrent().isNoneOrHidden())) {
// User enabled RYD after starting playback of a video. // User enabled RYD after starting playback of a video.
// Or shorts was loaded with regular video present, then shorts was closed, // Or shorts was loaded with regular video present, then shorts was closed,
// and then user voted on the now visible original video. // and then user voted on the now visible original video.

View File

@ -18,7 +18,7 @@ enum class PlayerType {
HIDDEN, HIDDEN,
/** /**
* When spoofing to 16.x YouTube and watching a short with a regular video in the background, * When spoofing to 16.x YouTube and watching a short with a regular video in the background,
* the type will be this (and not [HIDDEN]). * the type can be this (and not [HIDDEN]).
*/ */
WATCH_WHILE_MINIMIZED, WATCH_WHILE_MINIMIZED,
WATCH_WHILE_MAXIMIZED, WATCH_WHILE_MAXIMIZED,