From 2d9daa051838c1aaac6eeaac055a42d9ff841ef8 Mon Sep 17 00:00:00 2001 From: inotia00 Date: Tue, 5 Sep 2023 10:56:16 +0900 Subject: [PATCH] feat(music) add `hide-tooltip-content` patch --- .../TooltipContentViewFingerprint.kt | 14 +++++++++ .../tooltip/patch/TooltipContentViewPatch.kt | 31 +++++++++++++++++++ .../resourceid/patch/SharedResourceIdPatch.kt | 2 ++ 3 files changed, 47 insertions(+) create mode 100644 src/main/kotlin/app/revanced/patches/music/general/tooltip/fingerprints/TooltipContentViewFingerprint.kt create mode 100644 src/main/kotlin/app/revanced/patches/music/general/tooltip/patch/TooltipContentViewPatch.kt diff --git a/src/main/kotlin/app/revanced/patches/music/general/tooltip/fingerprints/TooltipContentViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/music/general/tooltip/fingerprints/TooltipContentViewFingerprint.kt new file mode 100644 index 000000000..b4233dab5 --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/music/general/tooltip/fingerprints/TooltipContentViewFingerprint.kt @@ -0,0 +1,14 @@ +package app.revanced.patches.music.general.tooltip.fingerprints + +import app.revanced.patcher.extensions.or +import app.revanced.patcher.fingerprint.method.impl.MethodFingerprint +import app.revanced.patches.music.utils.resourceid.patch.SharedResourceIdPatch.Companion.ToolTipContentView +import app.revanced.util.bytecode.isWideLiteralExists +import com.android.tools.smali.dexlib2.AccessFlags + +object TooltipContentViewFingerprint : MethodFingerprint( + returnType = "V", + accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL, + parameters = listOf("L"), + customFingerprint = { methodDef, _ -> methodDef.isWideLiteralExists(ToolTipContentView) } +) diff --git a/src/main/kotlin/app/revanced/patches/music/general/tooltip/patch/TooltipContentViewPatch.kt b/src/main/kotlin/app/revanced/patches/music/general/tooltip/patch/TooltipContentViewPatch.kt new file mode 100644 index 000000000..f215307ea --- /dev/null +++ b/src/main/kotlin/app/revanced/patches/music/general/tooltip/patch/TooltipContentViewPatch.kt @@ -0,0 +1,31 @@ +package app.revanced.patches.music.general.tooltip.patch + +import app.revanced.extensions.exception +import app.revanced.patcher.annotation.Description +import app.revanced.patcher.annotation.Name +import app.revanced.patcher.data.BytecodeContext +import app.revanced.patcher.extensions.InstructionExtensions.addInstruction +import app.revanced.patcher.patch.BytecodePatch +import app.revanced.patcher.patch.annotations.DependsOn +import app.revanced.patcher.patch.annotations.Patch +import app.revanced.patches.music.general.tooltip.fingerprints.TooltipContentViewFingerprint +import app.revanced.patches.music.utils.annotations.MusicCompatibility +import app.revanced.patches.music.utils.resourceid.patch.SharedResourceIdPatch + +@Patch +@Name("Hide tooltip content") +@Description("Hides the tooltip box that appears on first install.") +@DependsOn([SharedResourceIdPatch::class]) +@MusicCompatibility +class TooltipContentViewPatch : BytecodePatch( + listOf(TooltipContentViewFingerprint) +) { + override fun execute(context: BytecodeContext) { + + TooltipContentViewFingerprint.result?.mutableMethod?.addInstruction( + 0, + "return-void" + ) ?: throw TooltipContentViewFingerprint.exception + + } +} diff --git a/src/main/kotlin/app/revanced/patches/music/utils/resourceid/patch/SharedResourceIdPatch.kt b/src/main/kotlin/app/revanced/patches/music/utils/resourceid/patch/SharedResourceIdPatch.kt index e9490bdc5..648adeace 100644 --- a/src/main/kotlin/app/revanced/patches/music/utils/resourceid/patch/SharedResourceIdPatch.kt +++ b/src/main/kotlin/app/revanced/patches/music/utils/resourceid/patch/SharedResourceIdPatch.kt @@ -26,6 +26,7 @@ class SharedResourceIdPatch : ResourcePatch { var PrivacyTosFooter: Long = -1 var QualityTitle: Long = -1 var Text1: Long = -1 + var ToolTipContentView: Long = -1 } override fun execute(context: ResourceContext) { @@ -44,6 +45,7 @@ class SharedResourceIdPatch : ResourcePatch { PrivacyTosFooter = find(ID, "privacy_tos_footer") QualityTitle = find(STRING, "quality_title") Text1 = find(ID, "text1") + ToolTipContentView = find(LAYOUT, "tooltip_content_view") } } \ No newline at end of file