Skip to content

Commit 320e039

Browse files
authored
chore: Merge branch dev to main (#3266)
2 parents 54d671d + 6b9c13d commit 320e039

File tree

94 files changed

+1012
-254
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

94 files changed

+1012
-254
lines changed

CHANGELOG.md

Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,52 @@
1+
# [4.9.0-dev.7](https://github.com/ReVanced/revanced-patches/compare/v4.9.0-dev.6...v4.9.0-dev.7) (2024-06-02)
2+
3+
4+
### Features
5+
6+
* **YouTube - Playback speed:** Add option to show speed dialog button in video player ([#3197](https://github.com/ReVanced/revanced-patches/issues/3197)) ([ad00305](https://github.com/ReVanced/revanced-patches/commit/ad00305ff57d5e8041de7375bea7d3ad6f18c4e2))
7+
8+
# [4.9.0-dev.6](https://github.com/ReVanced/revanced-patches/compare/v4.9.0-dev.5...v4.9.0-dev.6) (2024-06-02)
9+
10+
11+
### Bug Fixes
12+
13+
* **YouTube - Spoof client:** Restore playback speed menu when spoofing to an iOS client ([95f290f](https://github.com/ReVanced/revanced-patches/commit/95f290f1139cc8679beecac53c623847668f885e))
14+
15+
# [4.9.0-dev.5](https://github.com/ReVanced/revanced-patches/compare/v4.9.0-dev.4...v4.9.0-dev.5) (2024-06-01)
16+
17+
18+
### Features
19+
20+
* **YouTube:** Support version `19.12`, `19.13`, `19.14`, `19.15` and `19.16` ([#3239](https://github.com/ReVanced/revanced-patches/issues/3239)) ([99b07e0](https://github.com/ReVanced/revanced-patches/commit/99b07e0e18574668f36bb3c962c8d11222114be4))
21+
22+
# [4.9.0-dev.4](https://github.com/ReVanced/revanced-patches/compare/v4.9.0-dev.3...v4.9.0-dev.4) (2024-06-01)
23+
24+
25+
### Features
26+
27+
* **Messenger:** Add `Hide inbox subtabs` patch ([#3163](https://github.com/ReVanced/revanced-patches/issues/3163)) ([24e4ebd](https://github.com/ReVanced/revanced-patches/commit/24e4ebd77ad0f349b479926bf3983b72c2683496))
28+
29+
# [4.9.0-dev.3](https://github.com/ReVanced/revanced-patches/compare/v4.9.0-dev.2...v4.9.0-dev.3) (2024-06-01)
30+
31+
32+
### Features
33+
34+
* **YouTube Music:** Support version `7.03` ([#3272](https://github.com/ReVanced/revanced-patches/issues/3272)) ([d1ceca3](https://github.com/ReVanced/revanced-patches/commit/d1ceca39984f7933b28d81802d04bb3ead327595))
35+
36+
# [4.9.0-dev.2](https://github.com/ReVanced/revanced-patches/compare/v4.9.0-dev.1...v4.9.0-dev.2) (2024-06-01)
37+
38+
39+
### Bug Fixes
40+
41+
* **YouTube - Spoof client:** Allow swipe gestures to enter/exit fullscreen when spoofing with `Android VR` client ([#3259](https://github.com/ReVanced/revanced-patches/issues/3259)) ([5114900](https://github.com/ReVanced/revanced-patches/commit/5114900b1b5572c04ba6759eedab77f0a934b058))
42+
43+
# [4.9.0-dev.1](https://github.com/ReVanced/revanced-patches/compare/v4.8.3...v4.9.0-dev.1) (2024-05-31)
44+
45+
46+
### Features
47+
48+
* **YouTube - Hide layout components:** Disable like / subscribe button glow animation ([#3265](https://github.com/ReVanced/revanced-patches/issues/3265)) ([68d35ea](https://github.com/ReVanced/revanced-patches/commit/68d35eafc15513c23cd5220260023e7ec5b7978a))
49+
150
## [4.8.3](https://github.com/ReVanced/revanced-patches/compare/v4.8.2...v4.8.3) (2024-05-31)
251

352

api/revanced-patches.api

Lines changed: 22 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -277,20 +277,26 @@ public final class app/revanced/patches/memegenerator/misc/pro/UnlockProVersionP
277277
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
278278
}
279279

280-
public final class app/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch : app/revanced/patcher/patch/BytecodePatch {
281-
public static final field INSTANCE Lapp/revanced/patches/messenger/ads/inbox/patch/HideInboxAdsPatch;
280+
public final class app/revanced/patches/messenger/inbox/HideInboxAdsPatch : app/revanced/patcher/patch/BytecodePatch {
281+
public static final field INSTANCE Lapp/revanced/patches/messenger/inbox/HideInboxAdsPatch;
282282
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
283283
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
284284
}
285285

286-
public final class app/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch : app/revanced/patcher/patch/BytecodePatch {
287-
public static final field INSTANCE Lapp/revanced/patches/messenger/inputfield/patch/DisableSwitchingEmojiToStickerPatch;
286+
public final class app/revanced/patches/messenger/inbox/HideInboxSubtabsPatch : app/revanced/patcher/patch/BytecodePatch {
287+
public static final field INSTANCE Lapp/revanced/patches/messenger/inbox/HideInboxSubtabsPatch;
288288
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
289289
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
290290
}
291291

292-
public final class app/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch : app/revanced/patcher/patch/BytecodePatch {
293-
public static final field INSTANCE Lapp/revanced/patches/messenger/inputfield/patch/DisableTypingIndicatorPatch;
292+
public final class app/revanced/patches/messenger/inputfield/DisableSwitchingEmojiToStickerPatch : app/revanced/patcher/patch/BytecodePatch {
293+
public static final field INSTANCE Lapp/revanced/patches/messenger/inputfield/DisableSwitchingEmojiToStickerPatch;
294+
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
295+
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
296+
}
297+
298+
public final class app/revanced/patches/messenger/inputfield/DisableTypingIndicatorPatch : app/revanced/patcher/patch/BytecodePatch {
299+
public static final field INSTANCE Lapp/revanced/patches/messenger/inputfield/DisableTypingIndicatorPatch;
294300
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
295301
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
296302
}
@@ -1834,6 +1840,12 @@ public final class app/revanced/patches/youtube/video/speed/PlaybackSpeedPatch :
18341840
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
18351841
}
18361842

1843+
public final class app/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonPatch : app/revanced/patcher/patch/BytecodePatch {
1844+
public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/button/PlaybackSpeedButtonPatch;
1845+
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
1846+
public synthetic fun execute (Lapp/revanced/patcher/data/Context;)V
1847+
}
1848+
18371849
public final class app/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch : app/revanced/patcher/patch/BytecodePatch {
18381850
public static final field INSTANCE Lapp/revanced/patches/youtube/video/speed/custom/CustomPlaybackSpeedPatch;
18391851
public fun execute (Lapp/revanced/patcher/data/BytecodeContext;)V
@@ -1883,7 +1895,11 @@ public final class app/revanced/util/BytecodeUtilsKt {
18831895
public static final fun containsWideLiteralInstructionValue (Lcom/android/tools/smali/dexlib2/iface/Method;J)Z
18841896
public static final fun findMutableMethodOf (Lapp/revanced/patcher/util/proxy/mutableTypes/MutableClass;Lcom/android/tools/smali/dexlib2/iface/Method;)Lapp/revanced/patcher/util/proxy/mutableTypes/MutableMethod;
18851897
public static final fun getException (Lapp/revanced/patcher/fingerprint/MethodFingerprint;)Lapp/revanced/patcher/patch/PatchException;
1898+
public static final fun indexOfFirstInstruction (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;)I
18861899
public static final fun indexOfFirstInstruction (Lcom/android/tools/smali/dexlib2/iface/Method;Lkotlin/jvm/functions/Function1;)I
1900+
public static synthetic fun indexOfFirstInstruction$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)I
1901+
public static final fun indexOfFirstInstructionOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;)I
1902+
public static synthetic fun indexOfFirstInstructionOrThrow$default (Lcom/android/tools/smali/dexlib2/iface/Method;ILkotlin/jvm/functions/Function1;ILjava/lang/Object;)I
18871903
public static final fun indexOfFirstWideLiteralInstructionValue (Lcom/android/tools/smali/dexlib2/iface/Method;J)I
18881904
public static final fun indexOfIdResource (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I
18891905
public static final fun indexOfIdResourceOrThrow (Lcom/android/tools/smali/dexlib2/iface/Method;Ljava/lang/String;)I

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
11
org.gradle.parallel = true
22
org.gradle.caching = true
33
kotlin.code.style = official
4-
version = 4.8.3
4+
version = 4.9.0-dev.7
Original file line numberDiff line numberDiff line change
@@ -1,26 +1,25 @@
1-
package app.revanced.patches.messenger.ads.inbox.patch
1+
package app.revanced.patches.messenger.inbox
22

3-
import app.revanced.util.exception
43
import app.revanced.patcher.data.BytecodeContext
54
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
65
import app.revanced.patcher.patch.BytecodePatch
76
import app.revanced.patcher.patch.annotation.CompatiblePackage
87
import app.revanced.patcher.patch.annotation.Patch
9-
import app.revanced.patches.messenger.ads.inbox.fingerprints.LoadInboxAdsFingerprint
8+
import app.revanced.patches.messenger.inbox.fingerprints.LoadInboxAdsFingerprint
9+
import app.revanced.util.exception
1010

1111
@Patch(
1212
name = "Hide inbox ads",
1313
description = "Hides ads in inbox.",
14-
compatiblePackages = [CompatiblePackage("com.facebook.orca")]
14+
compatiblePackages = [CompatiblePackage("com.facebook.orca")],
1515
)
1616
@Suppress("unused")
1717
object HideInboxAdsPatch : BytecodePatch(
18-
setOf(LoadInboxAdsFingerprint)
18+
setOf(LoadInboxAdsFingerprint),
1919
) {
2020
override fun execute(context: BytecodeContext) {
2121
LoadInboxAdsFingerprint.result?.mutableMethod?.apply {
2222
this.replaceInstruction(0, "return-void")
2323
} ?: throw LoadInboxAdsFingerprint.exception
2424
}
2525
}
26-
Lines changed: 24 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,24 @@
1+
package app.revanced.patches.messenger.inbox
2+
3+
import app.revanced.patcher.data.BytecodeContext
4+
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
5+
import app.revanced.patcher.patch.BytecodePatch
6+
import app.revanced.patcher.patch.annotation.CompatiblePackage
7+
import app.revanced.patcher.patch.annotation.Patch
8+
import app.revanced.patches.messenger.inbox.fingerprints.CreateInboxSubTabsFingerprint
9+
import app.revanced.util.exception
10+
11+
@Patch(
12+
name = "Hide inbox subtabs",
13+
description = "Hides Home and Channels tabs between active now tray and chats.",
14+
compatiblePackages = [CompatiblePackage("com.facebook.orca")],
15+
)
16+
@Suppress("unused")
17+
object HideInboxSubtabsPatch : BytecodePatch(
18+
setOf(CreateInboxSubTabsFingerprint),
19+
) {
20+
// Set InboxSubtabsItemSupplierImplementation boolean attribute to false.
21+
override fun execute(context: BytecodeContext) = CreateInboxSubTabsFingerprint.result?.mutableMethod
22+
?.replaceInstruction(2, "const/4 v0, 0x0")
23+
?: throw CreateInboxSubTabsFingerprint.exception
24+
}
Lines changed: 23 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,23 @@
1+
package app.revanced.patches.messenger.inbox.fingerprints
2+
3+
import app.revanced.patcher.extensions.or
4+
import app.revanced.patcher.fingerprint.MethodFingerprint
5+
import com.android.tools.smali.dexlib2.AccessFlags
6+
import com.android.tools.smali.dexlib2.Opcode
7+
import com.android.tools.smali.dexlib2.iface.value.StringEncodedValue
8+
9+
internal object CreateInboxSubTabsFingerprint : MethodFingerprint(
10+
returnType = "V",
11+
accessFlags = AccessFlags.PUBLIC or AccessFlags.FINAL,
12+
opcodes = listOf(
13+
Opcode.CONST_4,
14+
Opcode.INVOKE_VIRTUAL,
15+
Opcode.RETURN_VOID,
16+
),
17+
customFingerprint = { methodDef, classDef ->
18+
methodDef.name == "run" && classDef.fields.any any@{ field ->
19+
if (field.name != "__redex_internal_original_name") return@any false
20+
(field.initialValue as? StringEncodedValue)?.value == "InboxSubtabsItemSupplierImplementation\$onSubscribe\$1"
21+
}
22+
},
23+
)
Original file line numberDiff line numberDiff line change
@@ -1,4 +1,4 @@
1-
package app.revanced.patches.messenger.ads.inbox.fingerprints
1+
package app.revanced.patches.messenger.inbox.fingerprints
22

33
import app.revanced.patcher.extensions.or
44
import app.revanced.patcher.fingerprint.MethodFingerprint
@@ -8,11 +8,10 @@ internal object LoadInboxAdsFingerprint : MethodFingerprint(
88
returnType = "V",
99
strings = listOf(
1010
"ads_load_begin",
11-
"inbox_ads_fetch_start"
11+
"inbox_ads_fetch_start",
1212
),
1313
accessFlags = AccessFlags.PUBLIC or AccessFlags.STATIC,
1414
customFingerprint = { methodDef, _ ->
1515
methodDef.definingClass == "Lcom/facebook/messaging/business/inboxads/plugins/inboxads/itemsupplier/InboxAdsItemSupplierImplementation;"
16-
}
16+
},
1717
)
18-
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,23 +1,23 @@
1-
package app.revanced.patches.messenger.inputfield.patch
1+
package app.revanced.patches.messenger.inputfield
22

3-
import app.revanced.util.exception
43
import app.revanced.patcher.data.BytecodeContext
54
import app.revanced.patcher.extensions.InstructionExtensions.getInstruction
65
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
76
import app.revanced.patcher.patch.BytecodePatch
87
import app.revanced.patcher.patch.annotation.CompatiblePackage
98
import app.revanced.patcher.patch.annotation.Patch
109
import app.revanced.patches.messenger.inputfield.fingerprints.SwitchMessangeInputEmojiButtonFingerprint
10+
import app.revanced.util.exception
1111
import com.android.tools.smali.dexlib2.iface.instruction.OneRegisterInstruction
1212

1313
@Patch(
1414
name = "Disable switching emoji to sticker",
1515
description = "Disables switching from emoji to sticker search mode in message input field.",
16-
compatiblePackages = [CompatiblePackage("com.facebook.orca")]
16+
compatiblePackages = [CompatiblePackage("com.facebook.orca")],
1717
)
1818
@Suppress("unused")
1919
object DisableSwitchingEmojiToStickerPatch : BytecodePatch(
20-
setOf(SwitchMessangeInputEmojiButtonFingerprint)
20+
setOf(SwitchMessangeInputEmojiButtonFingerprint),
2121
) {
2222
override fun execute(context: BytecodeContext) {
2323
SwitchMessangeInputEmojiButtonFingerprint.result?.let {
@@ -28,7 +28,7 @@ object DisableSwitchingEmojiToStickerPatch : BytecodePatch(
2828

2929
replaceInstruction(
3030
setStringIndex,
31-
"const-string v$targetRegister, \"expression\""
31+
"const-string v$targetRegister, \"expression\"",
3232
)
3333
}
3434
} ?: throw SwitchMessangeInputEmojiButtonFingerprint.exception
Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -1,22 +1,22 @@
1-
package app.revanced.patches.messenger.inputfield.patch
1+
package app.revanced.patches.messenger.inputfield
22

3-
import app.revanced.util.exception
43
import app.revanced.patcher.data.BytecodeContext
54
import app.revanced.patcher.extensions.InstructionExtensions.replaceInstruction
65
import app.revanced.patcher.patch.BytecodePatch
76
import app.revanced.patcher.patch.annotation.CompatiblePackage
87
import app.revanced.patcher.patch.annotation.Patch
98
import app.revanced.patches.messenger.inputfield.fingerprints.SendTypingIndicatorFingerprint
9+
import app.revanced.util.exception
1010

1111
@Patch(
1212
name = "Disable typing indicator",
1313
description = "Disables the indicator while typing a message.",
14-
compatiblePackages = [CompatiblePackage("com.facebook.orca")]
14+
compatiblePackages = [CompatiblePackage("com.facebook.orca")],
1515
)
1616
@Suppress("unused")
1717
object DisableTypingIndicatorPatch : BytecodePatch(
18-
setOf(SendTypingIndicatorFingerprint)
19-
){
18+
setOf(SendTypingIndicatorFingerprint),
19+
) {
2020
override fun execute(context: BytecodeContext) {
2121
SendTypingIndicatorFingerprint.result?.mutableMethod?.replaceInstruction(0, "return-void")
2222
?: throw SendTypingIndicatorFingerprint.exception

src/main/kotlin/app/revanced/patches/music/ad/video/HideMusicVideoAds.kt

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,7 +11,18 @@ import app.revanced.util.exception
1111

1212
@Patch(
1313
name = "Hide music video ads",
14-
compatiblePackages = [CompatiblePackage("com.google.android.apps.youtube.music")],
14+
compatiblePackages = [
15+
CompatiblePackage(
16+
"com.google.android.apps.youtube.music",
17+
[
18+
"6.45.54",
19+
"6.51.53",
20+
"7.01.53",
21+
"7.02.52",
22+
"7.03.52",
23+
]
24+
)
25+
],
1526
)
1627
@Suppress("unused")
1728
object HideMusicVideoAds : BytecodePatch(

0 commit comments

Comments
 (0)