commit 574775f65c3790a42d97d45cc2d257d34353addf
parent c695145b50de154b27d435d232085a305536170f
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Sun,  6 Oct 2024 10:39:52 +0200

fix(core/ui): snap preview overlapping

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/MessageIndicators.kt | 9+--------
Mcore/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/SnapPreview.kt | 6++++--
2 files changed, 5 insertions(+), 10 deletions(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/MessageIndicators.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/MessageIndicators.kt @@ -6,11 +6,7 @@ import android.widget.LinearLayout import androidx.compose.foundation.Image import androidx.compose.foundation.layout.* import androidx.compose.material.icons.Icons -import androidx.compose.material.icons.filled.Android -import androidx.compose.material.icons.filled.Edit -import androidx.compose.material.icons.filled.Laptop -import androidx.compose.material.icons.filled.LocationOn -import androidx.compose.material.icons.filled.Lock +import androidx.compose.material.icons.filled.* import androidx.compose.material3.Text import androidx.compose.runtime.getValue import androidx.compose.ui.Alignment @@ -27,7 +23,6 @@ import me.rhunk.snapenhance.common.util.protobuf.ProtoReader import me.rhunk.snapenhance.core.event.events.impl.BindViewEvent import me.rhunk.snapenhance.core.features.Feature import me.rhunk.snapenhance.core.ui.AppleLogo -import me.rhunk.snapenhance.core.ui.removeForegroundDrawable import kotlin.random.Random class MessageIndicators : Feature("Message Indicators") { @@ -44,8 +39,6 @@ class MessageIndicators : Feature("Message Indicators") { val view = event.view as? ViewGroup ?: return@subscribe view.findViewWithTag<View>(messageInfoTag)?.let { view.removeView(it) } - event.view.removeForegroundDrawable("messageIndicators") - val message = event.databaseMessage ?: return@chatMessage if (message.contentType != ContentType.SNAP.id && message.contentType != ContentType.EXTERNAL_MEDIA.id) return@chatMessage val reader = ProtoReader(message.messageContent ?: return@chatMessage) diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/SnapPreview.kt b/core/src/main/kotlin/me/rhunk/snapenhance/core/features/impl/ui/SnapPreview.kt @@ -5,6 +5,7 @@ import android.graphics.Canvas import android.graphics.Paint import android.graphics.drawable.ShapeDrawable import android.graphics.drawable.shapes.Shape +import android.view.ViewGroup import me.rhunk.snapenhance.common.data.ContentType import me.rhunk.snapenhance.common.util.protobuf.ProtoReader import me.rhunk.snapenhance.core.event.events.impl.BindViewEvent @@ -57,7 +58,8 @@ class SnapPreview : Feature("SnapPreview") { context.event.subscribe(BindViewEvent::class) { event -> event.chatMessage { _, _ -> - event.view.removeForegroundDrawable("snapPreview") + val messageLinearLayout = (event.view as ViewGroup).getChildAt(0) as? ViewGroup ?: return@subscribe + messageLinearLayout.removeForegroundDrawable("snapPreview") val message = event.databaseMessage ?: return@chatMessage val messageReader = ProtoReader(message.messageContent ?: return@chatMessage) @@ -67,7 +69,7 @@ class SnapPreview : Feature("SnapPreview") { val mediaIdKey = messageReader.getString(4, 5, 1, 3, 2, 2) ?: return@chatMessage - event.view.addForegroundDrawable("snapPreview", ShapeDrawable(object: Shape() { + messageLinearLayout.addForegroundDrawable("snapPreview", ShapeDrawable(object: Shape() { override fun draw(canvas: Canvas, paint: Paint) { val bitmap = mediaFileCache[mediaIdKey]?.let { decodeMedia(it) } ?: return