diff --git a/src/main/kotlin/app/revanced/patches/youtube/general/components/LayoutComponentsPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/general/components/LayoutComponentsPatch.kt index 116fef7db..d1f102d8d 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/general/components/LayoutComponentsPatch.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/components/LayoutComponentsPatch.kt @@ -5,6 +5,7 @@ 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 +import app.revanced.patcher.patch.PatchException import app.revanced.patcher.util.smali.ExternalLabel import app.revanced.patches.shared.litho.LithoFilterPatch import app.revanced.patches.youtube.general.components.fingerprints.AccountListFingerprint @@ -13,7 +14,10 @@ import app.revanced.patches.youtube.general.components.fingerprints.AccountMenuF import app.revanced.patches.youtube.general.components.fingerprints.AccountSwitcherAccessibilityLabelFingerprint import app.revanced.patches.youtube.general.components.fingerprints.BottomUiContainerFingerprint import app.revanced.patches.youtube.general.components.fingerprints.FloatingMicrophoneFingerprint +import app.revanced.patches.youtube.general.components.fingerprints.PiPNotificationFingerprint import app.revanced.patches.youtube.general.components.fingerprints.SettingsMenuFingerprint +import app.revanced.patches.youtube.general.components.fingerprints.TooltipContentFullscreenFingerprint +import app.revanced.patches.youtube.general.components.fingerprints.TooltipContentViewFingerprint import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE import app.revanced.patches.youtube.utils.fingerprints.AccountMenuParentFingerprint import app.revanced.patches.youtube.utils.integrations.Constants.COMPONENTS_PATH @@ -30,6 +34,7 @@ import app.revanced.util.patch.BaseBytecodePatch import app.revanced.util.resultOrThrow import com.android.tools.smali.dexlib2.Opcode import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction +import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction @Suppress("unused") @@ -49,7 +54,10 @@ object LayoutComponentsPatch : BaseBytecodePatch( AccountSwitcherAccessibilityLabelFingerprint, BottomUiContainerFingerprint, FloatingMicrophoneFingerprint, - SettingsMenuFingerprint + PiPNotificationFingerprint, + SettingsMenuFingerprint, + TooltipContentFullscreenFingerprint, + TooltipContentViewFingerprint ) ) { private const val CUSTOM_FILTER_CLASS_DESCRIPTOR = @@ -59,6 +67,33 @@ object LayoutComponentsPatch : BaseBytecodePatch( override fun execute(context: BytecodeContext) { + // region patch for disable pip notification + + PiPNotificationFingerprint.resultOrThrow().let { + it.mutableMethod.apply { + val checkCastCalls = implementation!!.instructions.withIndex() + .filter { instruction -> + (instruction.value as? ReferenceInstruction)?.reference.toString() == "Lcom/google/apps/tiktok/account/AccountId;" + } + + val checkCastCallSize = checkCastCalls.size + if (checkCastCallSize != 3) + throw PatchException("Couldn't find target index, size: $checkCastCallSize") + + arrayOf( + checkCastCalls.elementAt(1).index, + checkCastCalls.elementAt(0).index + ).forEach { index -> + addInstruction( + index + 1, + "return-void" + ) + } + } + } + + // endregion + // region patch for hide account menu // for you tab @@ -171,6 +206,20 @@ object LayoutComponentsPatch : BaseBytecodePatch( // endregion + // region patch for hide tooltip content + + arrayOf( + TooltipContentFullscreenFingerprint, + TooltipContentViewFingerprint + ).forEach { fingerprint -> + fingerprint.resultOrThrow().mutableMethod.addInstruction( + 0, + "return-void" + ) + } + + // endregion + LithoFilterPatch.addFilter(CUSTOM_FILTER_CLASS_DESCRIPTOR) LithoFilterPatch.addFilter(LAYOUT_COMPONENTS_FILTER_CLASS_DESCRIPTOR) diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/fingerprints/PiPNotificationFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/PiPNotificationFingerprint.kt similarity index 86% rename from src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/fingerprints/PiPNotificationFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/PiPNotificationFingerprint.kt index ac3a07c36..82974ffa2 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/fingerprints/PiPNotificationFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/PiPNotificationFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.layout.pipnotification.fingerprints +package app.revanced.patches.youtube.general.components.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.EditSettingsAction diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentFullscreenFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/TooltipContentFullscreenFingerprint.kt similarity index 74% rename from src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentFullscreenFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/TooltipContentFullscreenFingerprint.kt index 488c39acd..b3bdff38f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentFullscreenFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/TooltipContentFullscreenFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.layout.tooltip.fingerprints +package app.revanced.patches.youtube.general.components.fingerprints import app.revanced.util.fingerprint.LiteralValueFingerprint diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentViewFingerprint.kt b/src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/TooltipContentViewFingerprint.kt similarity index 87% rename from src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentViewFingerprint.kt rename to src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/TooltipContentViewFingerprint.kt index 6fae48c41..dca75978f 100644 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/fingerprints/TooltipContentViewFingerprint.kt +++ b/src/main/kotlin/app/revanced/patches/youtube/general/components/fingerprints/TooltipContentViewFingerprint.kt @@ -1,4 +1,4 @@ -package app.revanced.patches.youtube.layout.tooltip.fingerprints +package app.revanced.patches.youtube.general.components.fingerprints import app.revanced.patcher.extensions.or import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ToolTipContentView diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch.kt deleted file mode 100644 index 8c6dd658b..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/pipnotification/PiPNotificationPatch.kt +++ /dev/null @@ -1,51 +0,0 @@ -package app.revanced.patches.youtube.layout.pipnotification - -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstruction -import app.revanced.patcher.patch.PatchException -import app.revanced.patches.youtube.layout.pipnotification.fingerprints.PiPNotificationFingerprint -import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE -import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch -import app.revanced.patches.youtube.utils.settings.SettingsPatch -import app.revanced.util.patch.BaseBytecodePatch -import app.revanced.util.resultOrThrow -import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction - -@Suppress("unused") -object PiPNotificationPatch : BaseBytecodePatch( - name = "Disable pip notification", - description = "Disable pip notification when you first launch pip mode.", - dependencies = setOf( - SettingsPatch::class, - SharedResourceIdPatch::class - ), - compatiblePackages = COMPATIBLE_PACKAGE, - fingerprints = setOf(PiPNotificationFingerprint) -) { - override fun execute(context: BytecodeContext) { - - PiPNotificationFingerprint.resultOrThrow().let { - it.mutableMethod.apply { - val checkCastCalls = implementation!!.instructions.withIndex() - .filter { instruction -> - (instruction.value as? ReferenceInstruction)?.reference.toString() == "Lcom/google/apps/tiktok/account/AccountId;" - } - - if (checkCastCalls.size != 3) - throw PatchException("Couldn't find target Index") - - arrayOf( - checkCastCalls.elementAt(1).index, - checkCastCalls.elementAt(0).index - ).forEach { index -> - addInstruction( - index + 1, - "return-void" - ) - } - } - } - - SettingsPatch.updatePatchStatus(this) - } -} \ No newline at end of file diff --git a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch.kt b/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch.kt deleted file mode 100644 index faee2a225..000000000 --- a/src/main/kotlin/app/revanced/patches/youtube/layout/tooltip/TooltipContentViewPatch.kt +++ /dev/null @@ -1,41 +0,0 @@ -package app.revanced.patches.youtube.layout.tooltip - -import app.revanced.patcher.data.BytecodeContext -import app.revanced.patcher.extensions.InstructionExtensions.addInstruction -import app.revanced.patches.youtube.layout.tooltip.fingerprints.TooltipContentFullscreenFingerprint -import app.revanced.patches.youtube.layout.tooltip.fingerprints.TooltipContentViewFingerprint -import app.revanced.patches.youtube.utils.compatibility.Constants.COMPATIBLE_PACKAGE -import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch -import app.revanced.patches.youtube.utils.settings.SettingsPatch -import app.revanced.util.patch.BaseBytecodePatch -import app.revanced.util.resultOrThrow - -@Suppress("unused") -object TooltipContentViewPatch : BaseBytecodePatch( - name = "Hide tooltip content", - description = "Hides the tooltip box that appears on first install.", - dependencies = setOf( - SettingsPatch::class, - SharedResourceIdPatch::class - ), - compatiblePackages = COMPATIBLE_PACKAGE, - fingerprints = setOf( - TooltipContentFullscreenFingerprint, - TooltipContentViewFingerprint - ) -) { - override fun execute(context: BytecodeContext) { - - arrayOf( - TooltipContentFullscreenFingerprint, - TooltipContentViewFingerprint - ).forEach { fingerprint -> - fingerprint.resultOrThrow().mutableMethod.addInstruction( - 0, - "return-void" - ) - } - - SettingsPatch.updatePatchStatus(this) - } -} diff --git a/src/main/resources/youtube/settings/xml/revanced_prefs.xml b/src/main/resources/youtube/settings/xml/revanced_prefs.xml index 0659af4de..87cba5d5f 100644 --- a/src/main/resources/youtube/settings/xml/revanced_prefs.xml +++ b/src/main/resources/youtube/settings/xml/revanced_prefs.xml @@ -621,11 +621,9 @@ - -