mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-04 16:44:29 +02:00
feat(YouTube Music/Hide general ads): now patch hides new type of interstitial banner
This commit is contained in:
parent
ab23a84179
commit
9a815e98ab
@ -7,6 +7,7 @@ import app.revanced.patcher.patch.BytecodePatch
|
|||||||
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
import app.revanced.patcher.patch.annotation.CompatiblePackage
|
||||||
import app.revanced.patcher.patch.annotation.Patch
|
import app.revanced.patcher.patch.annotation.Patch
|
||||||
import app.revanced.patches.music.ads.general.fingerprints.FloatingLayoutFingerprint
|
import app.revanced.patches.music.ads.general.fingerprints.FloatingLayoutFingerprint
|
||||||
|
import app.revanced.patches.music.ads.general.fingerprints.InterstitialsContainerFingerprint
|
||||||
import app.revanced.patches.music.ads.general.fingerprints.NotifierShelfFingerprint
|
import app.revanced.patches.music.ads.general.fingerprints.NotifierShelfFingerprint
|
||||||
import app.revanced.patches.music.ads.music.MusicAdsPatch
|
import app.revanced.patches.music.ads.music.MusicAdsPatch
|
||||||
import app.revanced.patches.music.utils.integrations.Constants.ADS_PATH
|
import app.revanced.patches.music.utils.integrations.Constants.ADS_PATH
|
||||||
@ -15,11 +16,11 @@ import app.revanced.patches.music.utils.litho.LithoFilterPatch
|
|||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.ButtonContainer
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.ButtonContainer
|
||||||
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.FloatingLayout
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.FloatingLayout
|
||||||
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.InterstitialsContainer
|
||||||
import app.revanced.patches.music.utils.settings.CategoryType
|
import app.revanced.patches.music.utils.settings.CategoryType
|
||||||
import app.revanced.patches.music.utils.settings.SettingsPatch
|
import app.revanced.patches.music.utils.settings.SettingsPatch
|
||||||
import app.revanced.util.exception
|
import app.revanced.util.exception
|
||||||
import app.revanced.util.getWideLiteralInstructionIndex
|
import app.revanced.util.getWideLiteralInstructionIndex
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.FiveRegisterInstruction
|
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
||||||
|
|
||||||
@Patch(
|
@Patch(
|
||||||
@ -37,12 +38,28 @@ import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
|
|||||||
object GeneralAdsPatch : BytecodePatch(
|
object GeneralAdsPatch : BytecodePatch(
|
||||||
setOf(
|
setOf(
|
||||||
FloatingLayoutFingerprint,
|
FloatingLayoutFingerprint,
|
||||||
|
InterstitialsContainerFingerprint,
|
||||||
NotifierShelfFingerprint
|
NotifierShelfFingerprint
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
override fun execute(context: BytecodeContext) {
|
override fun execute(context: BytecodeContext) {
|
||||||
LithoFilterPatch.addFilter(FILTER_CLASS_DESCRIPTOR)
|
LithoFilterPatch.addFilter(FILTER_CLASS_DESCRIPTOR)
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Hides interstitials banner (non-litho)
|
||||||
|
*/
|
||||||
|
InterstitialsContainerFingerprint.result?.let {
|
||||||
|
it.mutableMethod.apply {
|
||||||
|
val targetIndex = getWideLiteralInstructionIndex(InterstitialsContainer) + 2
|
||||||
|
val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA
|
||||||
|
|
||||||
|
addInstruction(
|
||||||
|
targetIndex + 1,
|
||||||
|
"invoke-static {v$targetRegister}, $ADS_PATH/InterstitialsBannerPatch;->hideInterstitialsBanner(Landroid/view/View;)V"
|
||||||
|
)
|
||||||
|
}
|
||||||
|
} ?: throw InterstitialsContainerFingerprint.exception
|
||||||
|
|
||||||
/**
|
/**
|
||||||
* Hides premium promotion popup
|
* Hides premium promotion popup
|
||||||
*/
|
*/
|
||||||
|
@ -0,0 +1,13 @@
|
|||||||
|
package app.revanced.patches.music.ads.general.fingerprints
|
||||||
|
|
||||||
|
import app.revanced.patcher.extensions.or
|
||||||
|
import app.revanced.patches.music.utils.resourceid.SharedResourceIdPatch.InterstitialsContainer
|
||||||
|
import app.revanced.util.fingerprint.LiteralValueFingerprint
|
||||||
|
import com.android.tools.smali.dexlib2.AccessFlags
|
||||||
|
|
||||||
|
object InterstitialsContainerFingerprint : LiteralValueFingerprint(
|
||||||
|
returnType = "V",
|
||||||
|
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
|
||||||
|
parameters = listOf("Ljava/lang/Object;"),
|
||||||
|
literalSupplier = { InterstitialsContainer }
|
||||||
|
)
|
@ -25,6 +25,7 @@ object SharedResourceIdPatch : ResourcePatch() {
|
|||||||
var FloatingLayout: Long = -1
|
var FloatingLayout: Long = -1
|
||||||
var HistoryMenuItem: Long = -1
|
var HistoryMenuItem: Long = -1
|
||||||
var InlineTimeBarAdBreakMarkerColor: Long = -1
|
var InlineTimeBarAdBreakMarkerColor: Long = -1
|
||||||
|
var InterstitialsContainer: Long = -1
|
||||||
var IsTablet: Long = -1
|
var IsTablet: Long = -1
|
||||||
var MenuEntry: Long = -1
|
var MenuEntry: Long = -1
|
||||||
var MusicMenuLikeButtons: Long = -1
|
var MusicMenuLikeButtons: Long = -1
|
||||||
@ -55,6 +56,7 @@ object SharedResourceIdPatch : ResourcePatch() {
|
|||||||
FloatingLayout = find(ID, "floating_layout")
|
FloatingLayout = find(ID, "floating_layout")
|
||||||
HistoryMenuItem = find(ID, "history_menu_item")
|
HistoryMenuItem = find(ID, "history_menu_item")
|
||||||
InlineTimeBarAdBreakMarkerColor = find(COLOR, "inline_time_bar_ad_break_marker_color")
|
InlineTimeBarAdBreakMarkerColor = find(COLOR, "inline_time_bar_ad_break_marker_color")
|
||||||
|
InterstitialsContainer = find(ID, "interstitials_container")
|
||||||
IsTablet = find(BOOL, "is_tablet")
|
IsTablet = find(BOOL, "is_tablet")
|
||||||
MenuEntry = find(LAYOUT, "menu_entry")
|
MenuEntry = find(LAYOUT, "menu_entry")
|
||||||
MusicMenuLikeButtons = find(LAYOUT, "music_menu_like_buttons")
|
MusicMenuLikeButtons = find(LAYOUT, "music_menu_like_buttons")
|
||||||
|
Loading…
x
Reference in New Issue
Block a user