From 3273b6fc8ca0982a54f8ed5c15b97da5dcb95e77 Mon Sep 17 00:00:00 2001 From: inotia00 <108592928+inotia00@users.noreply.github.com> Date: Wed, 18 Oct 2023 06:30:18 +0900 Subject: [PATCH] fix(YouTube/Return YouTube Dislike): dislike count for previous video is displayed after clicking dislike button in Shorts --- .../shorts/ReturnYouTubeDislikeShortsPatch.kt | 12 ++++++++++++ .../shorts/fingerprints/IncognitoFingerprint.kt | 11 +++++++++++ 2 files changed, 23 insertions(+) create mode 100644 src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/IncognitoFingerprint.kt diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/ReturnYouTubeDislikeShortsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/ReturnYouTubeDislikeShortsPatch.kt index bacc97654..6580f395f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/ReturnYouTubeDislikeShortsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/ReturnYouTubeDislikeShortsPatch.kt @@ -2,6 +2,7 @@ package app.revanced.patches.youtube.utils.returnyoutubedislike.shorts import app.revanced.extensions.exception import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction import app.revanced.patcher.extensions.InstructionExtensions.addInstructions import app.revanced.patcher.extensions.InstructionExtensions.addInstructionsWithLabels import app.revanced.patcher.extensions.InstructionExtensions.getInstruction @@ -9,6 +10,7 @@ import app.revanced.patcher.extensions.InstructionExtensions.removeInstruction import app.revanced.patcher.patch.BytecodePatch import app.revanced.patcher.patch.annotation.Patch import app.revanced.patcher.util.smali.ExternalLabel +import app.revanced.patches.youtube.utils.returnyoutubedislike.shorts.fingerprints.IncognitoFingerprint import app.revanced.patches.youtube.utils.returnyoutubedislike.shorts.fingerprints.ShortsTextViewFingerprint import app.revanced.patches.youtube.utils.returnyoutubedislike.shorts.fingerprints.TextComponentSpecFingerprint import app.revanced.patches.youtube.utils.settings.SettingsPatch @@ -21,6 +23,7 @@ import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction @Patch(dependencies = [SettingsPatch::class]) object ReturnYouTubeDislikeShortsPatch : BytecodePatch( setOf( + IncognitoFingerprint, ShortsTextViewFingerprint, TextComponentSpecFingerprint ) @@ -85,6 +88,15 @@ object ReturnYouTubeDislikeShortsPatch : BytecodePatch( removeInstruction(insertIndex) } } ?: throw TextComponentSpecFingerprint.exception + + IncognitoFingerprint.result?.let { + it.mutableMethod.apply { + addInstruction( + 1, + "sput-boolean p4, $INTEGRATIONS_RYD_CLASS_DESCRIPTOR->isIncognito:Z" + ) + } + } ?: throw IncognitoFingerprint.exception } } diff --git a/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/IncognitoFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/IncognitoFingerprint.kt new file mode 100644 index 000000000..252aa3a1c --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/youtube/utils/returnyoutubedislike/shorts/fingerprints/IncognitoFingerprint.kt @@ -0,0 +1,11 @@ +package app.revanced.patches.youtube.utils.returnyoutubedislike.shorts.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import com.android.tools.smali.dexlib2.AccessFlags + +object IncognitoFingerprint : MethodFingerprint( + returnType = "V", + accessFlags = AccessFlags.PUBLIC or AccessFlags.CONSTRUCTOR, + customFingerprint = { methodDef, _ -> methodDef.definingClass.endsWith("${'$'}AutoValue_AccountIdentity;") } +) \ No newline at end of file