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:
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