mirror of
https://github.com/rhunk/SnapEnhance.git
synced 2025-06-12 13:17:42 +02:00
fix(send_override): media extras (mentions, places, ...)
This commit is contained in:
@ -12,20 +12,25 @@ class MessageSender(
|
||||
private val context: ModContext,
|
||||
) {
|
||||
companion object {
|
||||
val redSnapProto: () -> ByteArray = {
|
||||
val redSnapProto: (ByteArray?) -> ByteArray = { extras ->
|
||||
ProtoWriter().apply {
|
||||
from(11, 5) {
|
||||
from(1) {
|
||||
from(11) {
|
||||
from(5) {
|
||||
from(1) {
|
||||
addVarInt(2, 0)
|
||||
addVarInt(12, 0)
|
||||
addVarInt(15, 0)
|
||||
from(1) {
|
||||
addVarInt(2, 0)
|
||||
addVarInt(12, 0)
|
||||
addVarInt(15, 0)
|
||||
}
|
||||
addVarInt(6, 0)
|
||||
}
|
||||
from(2) {
|
||||
addVarInt(5, 1) // audio by default
|
||||
addBuffer(6, byteArrayOf())
|
||||
}
|
||||
addVarInt(6, 0)
|
||||
}
|
||||
from(2) {
|
||||
addVarInt(5, 1) // audio by default
|
||||
addBuffer(6, byteArrayOf())
|
||||
extras?.let {
|
||||
addBuffer(13, it)
|
||||
}
|
||||
}
|
||||
}.toByteArray()
|
||||
|
@ -11,7 +11,7 @@ import me.rhunk.snapenhance.ui.ViewAppearanceHelper
|
||||
import me.rhunk.snapenhance.util.protobuf.ProtoEditor
|
||||
import me.rhunk.snapenhance.util.protobuf.ProtoReader
|
||||
|
||||
class GalleryMediaSendOverride : Feature("Gallery Media Send Override", loadParams = FeatureLoadParams.INIT_SYNC) {
|
||||
class SendOverride : Feature("Send Override", loadParams = FeatureLoadParams.INIT_SYNC) {
|
||||
private var isLastSnapSavable = false
|
||||
|
||||
override fun init() {
|
||||
@ -37,7 +37,6 @@ class GalleryMediaSendOverride : Feature("Gallery Media Send Override", loadPara
|
||||
// only affect snaps
|
||||
if (!it.containsPath(*Constants.ARROYO_MEDIA_CONTAINER_PROTO_PATH, 11)) return@subscribe
|
||||
}
|
||||
isLastSnapSavable = false
|
||||
|
||||
event.buffer = ProtoEditor(event.buffer).apply {
|
||||
//remove the max view time
|
||||
@ -59,6 +58,7 @@ class GalleryMediaSendOverride : Feature("Gallery Media Send Override", loadPara
|
||||
context.event.subscribe(SendMessageWithContentEvent::class, {
|
||||
context.config.messaging.galleryMediaSendOverride.get()
|
||||
}) { event ->
|
||||
isLastSnapSavable = false
|
||||
val localMessageContent = event.messageContent
|
||||
if (localMessageContent.contentType != ContentType.EXTERNAL_MEDIA) return@subscribe
|
||||
|
||||
@ -86,8 +86,10 @@ class GalleryMediaSendOverride : Feature("Gallery Media Send Override", loadPara
|
||||
|
||||
when (overrideType) {
|
||||
"SNAP", "SAVABLE_SNAP" -> {
|
||||
val extras = messageProtoReader.followPath(3, 3, 13)?.getBuffer()
|
||||
|
||||
localMessageContent.contentType = ContentType.SNAP
|
||||
localMessageContent.content = MessageSender.redSnapProto()
|
||||
localMessageContent.content = MessageSender.redSnapProto(extras)
|
||||
if (overrideType == "SAVABLE_SNAP") {
|
||||
isLastSnapSavable = true
|
||||
}
|
@ -27,7 +27,7 @@ import me.rhunk.snapenhance.features.impl.tweaks.AutoSave
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.CameraTweaks
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.DisableReplayInFF
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.DisableVideoLengthRestriction
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.GalleryMediaSendOverride
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.SendOverride
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.GooglePlayServicesDialogs
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.LocationSpoofer
|
||||
import me.rhunk.snapenhance.features.impl.tweaks.MediaQualityLevelOverride
|
||||
@ -77,7 +77,7 @@ class FeatureManager(private val context: ModContext) : Manager {
|
||||
register(AutoSave::class)
|
||||
register(UITweaks::class)
|
||||
register(ConfigurationOverride::class)
|
||||
register(GalleryMediaSendOverride::class)
|
||||
register(SendOverride::class)
|
||||
register(UnlimitedSnapViewTime::class)
|
||||
register(DisableVideoLengthRestriction::class)
|
||||
register(MediaQualityLevelOverride::class)
|
||||
|
Reference in New Issue
Block a user