mirror of
https://github.com/inotia00/revanced-patches.git
synced 2025-05-03 08:04:36 +02:00
fix(Shorts components): Hide sound button
doesn't work (A/B tests)
This commit is contained in:
parent
ea2f4eac25
commit
df97e5340a
@ -13,7 +13,6 @@ import app.revanced.patcher.util.smali.ExternalLabel
|
|||||||
import app.revanced.patches.shared.litho.LithoFilterPatch
|
import app.revanced.patches.shared.litho.LithoFilterPatch
|
||||||
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsButtonFingerprint
|
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsButtonFingerprint
|
||||||
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPaidPromotionFingerprint
|
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPaidPromotionFingerprint
|
||||||
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPivotFingerprint
|
|
||||||
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPivotLegacyFingerprint
|
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsPivotLegacyFingerprint
|
||||||
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletFingerprint
|
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletFingerprint
|
||||||
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletParentFingerprint
|
import app.revanced.patches.youtube.shorts.components.fingerprints.ShortsSubscriptionsTabletParentFingerprint
|
||||||
@ -27,17 +26,19 @@ import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch
|
|||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelDynRemix
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelDynRemix
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelDynShare
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelDynShare
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelForcedMuteButton
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelForcedMuteButton
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPivotButton
|
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerFooter
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerFooter
|
||||||
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelPlayerRightPivotV2Size
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightDislikeIcon
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightDislikeIcon
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightLikeIcon
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.ReelRightLikeIcon
|
||||||
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.RightComment
|
import app.revanced.patches.youtube.utils.resourceid.SharedResourceIdPatch.RightComment
|
||||||
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
import app.revanced.patches.youtube.utils.settings.SettingsPatch
|
||||||
import app.revanced.patches.youtube.video.information.VideoInformationPatch
|
import app.revanced.patches.youtube.video.information.VideoInformationPatch
|
||||||
|
import app.revanced.util.REGISTER_TEMPLATE_REPLACEMENT
|
||||||
import app.revanced.util.getTargetIndexOrThrow
|
import app.revanced.util.getTargetIndexOrThrow
|
||||||
import app.revanced.util.getTargetIndexReversedOrThrow
|
import app.revanced.util.getTargetIndexReversedOrThrow
|
||||||
import app.revanced.util.getTargetIndexWithReferenceOrThrow
|
import app.revanced.util.getTargetIndexWithReferenceOrThrow
|
||||||
import app.revanced.util.getWideLiteralInstructionIndex
|
import app.revanced.util.getWideLiteralInstructionIndex
|
||||||
|
import app.revanced.util.literalInstructionHook
|
||||||
import app.revanced.util.patch.BaseBytecodePatch
|
import app.revanced.util.patch.BaseBytecodePatch
|
||||||
import app.revanced.util.resultOrThrow
|
import app.revanced.util.resultOrThrow
|
||||||
import com.android.tools.smali.dexlib2.Opcode
|
import com.android.tools.smali.dexlib2.Opcode
|
||||||
@ -45,7 +46,6 @@ 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
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.ReferenceInstruction
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
import com.android.tools.smali.dexlib2.iface.instruction.TwoRegisterInstruction
|
||||||
import com.android.tools.smali.dexlib2.iface.instruction.WideLiteralInstruction
|
|
||||||
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
|
import com.android.tools.smali.dexlib2.iface.reference.FieldReference
|
||||||
|
|
||||||
@Suppress("unused")
|
@Suppress("unused")
|
||||||
@ -65,7 +65,6 @@ object ShortsComponentPatch : BaseBytecodePatch(
|
|||||||
fingerprints = setOf(
|
fingerprints = setOf(
|
||||||
ShortsButtonFingerprint,
|
ShortsButtonFingerprint,
|
||||||
ShortsPaidPromotionFingerprint,
|
ShortsPaidPromotionFingerprint,
|
||||||
ShortsPivotFingerprint,
|
|
||||||
ShortsPivotLegacyFingerprint,
|
ShortsPivotLegacyFingerprint,
|
||||||
ShortsSubscriptionsTabletParentFingerprint,
|
ShortsSubscriptionsTabletParentFingerprint,
|
||||||
TextComponentSpecFingerprint
|
TextComponentSpecFingerprint
|
||||||
@ -134,8 +133,11 @@ object ShortsComponentPatch : BaseBytecodePatch(
|
|||||||
|
|
||||||
// region patch for hide sound button
|
// region patch for hide sound button
|
||||||
|
|
||||||
ShortsPivotLegacyFingerprint.result?.let {
|
val shortsPivotLegacyFingerprintResult = ShortsPivotLegacyFingerprint.result
|
||||||
it.mutableMethod.apply {
|
|
||||||
|
if (shortsPivotLegacyFingerprintResult != null) {
|
||||||
|
// Legacy method.
|
||||||
|
shortsPivotLegacyFingerprintResult.mutableMethod.apply {
|
||||||
val targetIndex = getWideLiteralInstructionIndex(ReelForcedMuteButton)
|
val targetIndex = getWideLiteralInstructionIndex(ReelForcedMuteButton)
|
||||||
val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA
|
val targetRegister = getInstruction<OneRegisterInstruction>(targetIndex).registerA
|
||||||
|
|
||||||
@ -150,23 +152,19 @@ object ShortsComponentPatch : BaseBytecodePatch(
|
|||||||
""", ExternalLabel("hide", getInstruction(jumpIndex))
|
""", ExternalLabel("hide", getInstruction(jumpIndex))
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
} ?: ShortsPivotFingerprint.resultOrThrow().let {
|
} else if (ReelPlayerRightPivotV2Size != -1L) {
|
||||||
it.mutableMethod.apply {
|
// Invoke Sound button dimen into integrations.
|
||||||
val constCalls = implementation!!.instructions.withIndex()
|
val smaliInstruction = """
|
||||||
.filter { instruction ->
|
invoke-static {v$REGISTER_TEMPLATE_REPLACEMENT}, $SHORTS_CLASS_DESCRIPTOR->getShortsSoundButtonDimenId(I)I
|
||||||
(instruction.value as? WideLiteralInstruction)?.wideLiteral == ReelPivotButton
|
move-result v$REGISTER_TEMPLATE_REPLACEMENT
|
||||||
}
|
"""
|
||||||
val targetIndex = constCalls.elementAt(constCalls.size - 1).index
|
|
||||||
val insertIndex =
|
|
||||||
getTargetIndexReversedOrThrow(targetIndex, Opcode.INVOKE_STATIC) + 1
|
|
||||||
if (insertIndex == 0)
|
|
||||||
throw PatchException("insert index not found")
|
|
||||||
|
|
||||||
hideButtons(
|
context.literalInstructionHook(
|
||||||
insertIndex,
|
ReelPlayerRightPivotV2Size,
|
||||||
"hideShortsSoundButton(Ljava/lang/Object;)Ljava/lang/Object;"
|
smaliInstruction
|
||||||
)
|
)
|
||||||
}
|
} else {
|
||||||
|
throw PatchException("ReelPlayerRightPivotV2Size is not found")
|
||||||
}
|
}
|
||||||
|
|
||||||
// endregion
|
// endregion
|
||||||
|
@ -79,8 +79,8 @@ object SharedResourceIdPatch : ResourcePatch() {
|
|||||||
var ReelDynRemix = -1L
|
var ReelDynRemix = -1L
|
||||||
var ReelDynShare = -1L
|
var ReelDynShare = -1L
|
||||||
var ReelForcedMuteButton = -1L
|
var ReelForcedMuteButton = -1L
|
||||||
var ReelPivotButton = -1L
|
|
||||||
var ReelPlayerFooter = -1L
|
var ReelPlayerFooter = -1L
|
||||||
|
var ReelPlayerRightPivotV2Size = -1L
|
||||||
var ReelRightDislikeIcon = -1L
|
var ReelRightDislikeIcon = -1L
|
||||||
var ReelRightLikeIcon = -1L
|
var ReelRightLikeIcon = -1L
|
||||||
var ReelTimeBarPlayedColor = -1L
|
var ReelTimeBarPlayedColor = -1L
|
||||||
@ -176,8 +176,8 @@ object SharedResourceIdPatch : ResourcePatch() {
|
|||||||
ReelDynRemix = getId(ID, "reel_dyn_remix")
|
ReelDynRemix = getId(ID, "reel_dyn_remix")
|
||||||
ReelDynShare = getId(ID, "reel_dyn_share")
|
ReelDynShare = getId(ID, "reel_dyn_share")
|
||||||
ReelForcedMuteButton = getId(ID, "reel_player_forced_mute_button")
|
ReelForcedMuteButton = getId(ID, "reel_player_forced_mute_button")
|
||||||
ReelPivotButton = getId(ID, "reel_pivot_button")
|
|
||||||
ReelPlayerFooter = getId(LAYOUT, "reel_player_dyn_footer_vert_stories3")
|
ReelPlayerFooter = getId(LAYOUT, "reel_player_dyn_footer_vert_stories3")
|
||||||
|
ReelPlayerRightPivotV2Size = getId(DIMEN, "reel_player_right_pivot_v2_size")
|
||||||
ReelRightDislikeIcon = getId(DRAWABLE, "reel_right_dislike_icon")
|
ReelRightDislikeIcon = getId(DRAWABLE, "reel_right_dislike_icon")
|
||||||
ReelRightLikeIcon = getId(DRAWABLE, "reel_right_like_icon")
|
ReelRightLikeIcon = getId(DRAWABLE, "reel_right_like_icon")
|
||||||
ReelTimeBarPlayedColor = getId(COLOR, "reel_time_bar_played_color")
|
ReelTimeBarPlayedColor = getId(COLOR, "reel_time_bar_played_color")
|
||||||
|
@ -1,5 +1,6 @@
|
|||||||
<?xml version="1.0" encoding="utf-8"?>
|
<?xml version="1.0" encoding="utf-8"?>
|
||||||
<resources>
|
<resources>
|
||||||
|
<item type="dimen" name="revanced_zero_padding">0.0dip</item>
|
||||||
<item type="dimen" name="revanced_edit_text_dialog_min_width_major">80.0%</item>
|
<item type="dimen" name="revanced_edit_text_dialog_min_width_major">80.0%</item>
|
||||||
<item type="dimen" name="revanced_edit_text_dialog_min_width_minor">90.0%</item>
|
<item type="dimen" name="revanced_edit_text_dialog_min_width_minor">90.0%</item>
|
||||||
</resources>
|
</resources>
|
||||||
|
Loading…
x
Reference in New Issue
Block a user