commit 910cbd0bbadd45690c673aa81cdd3501be6cc95e
parent 3df11aadb8546f5997e2f36b9790f4e96e12b1df
Author: rhunk <101876869+rhunk@users.noreply.github.com>
Date:   Fri,  4 Aug 2023 13:17:21 +0200

fix: friend menu injection

Diffstat:
Mcore/src/main/kotlin/me/rhunk/snapenhance/database/DatabaseAccess.kt | 16++++++++++++++++
Mcore/src/main/kotlin/me/rhunk/snapenhance/features/impl/Messaging.kt | 4+++-
2 files changed, 19 insertions(+), 1 deletion(-)

diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/database/DatabaseAccess.kt b/core/src/main/kotlin/me/rhunk/snapenhance/database/DatabaseAccess.kt @@ -141,6 +141,22 @@ class DatabaseAccess(private val context: ModContext) : Manager { } } + fun getConversationType(conversationId: String): Int? { + return safeDatabaseOperation(openArroyo()) { + val cursor = it.rawQuery( + "SELECT * FROM user_conversation WHERE client_conversation_id = ?", + arrayOf(conversationId) + ) + if (!cursor.moveToFirst()) { + cursor.close() + return@safeDatabaseOperation null + } + val type = cursor.getInt(cursor.getColumnIndex("conversation_type")) + cursor.close() + type + } + } + fun getDMConversationIdFromUserId(userId: String): UserConversationLink? { return safeDatabaseOperation(openArroyo()) { readDatabaseObject( diff --git a/core/src/main/kotlin/me/rhunk/snapenhance/features/impl/Messaging.kt b/core/src/main/kotlin/me/rhunk/snapenhance/features/impl/Messaging.kt @@ -33,7 +33,9 @@ class Messaging : Feature("Messaging", loadParams = FeatureLoadParams.ACTIVITY_C val conversationId = viewItem.substringAfter("conversationId: ").substring(0, 36).also { if (it.startsWith("null")) return@hook } - lastFetchGroupConversationUUID = SnapUUID.fromString(conversationId) + context.database.getConversationType(conversationId)?.takeIf { it == 1 }?.run { + lastFetchGroupConversationUUID = SnapUUID.fromString(conversationId) + } } }