fix: improve message ID generation and enhance pagination handling in chat screen

This commit is contained in:
k1ngsterr1
2026-02-02 15:04:22 +05:00
parent 311144ff4d
commit c41c27e6d9
4 changed files with 107 additions and 38 deletions

View File

@@ -92,15 +92,13 @@ class MessageRepository private constructor(private val context: Context) {
}
/**
* Генерация детерминированного messageId на основе данных сообщения
* Аналог generateRandomKeyFormSeed из Архива
* Генерация уникального messageId
* 🔥 ИСПРАВЛЕНО: Используем UUID вместо детерминированного хэша,
* чтобы избежать коллизий при одинаковом timestamp (при спаме сообщениями)
*/
fun generateMessageId(fromPublicKey: String, toPublicKey: String, timestamp: Long): String {
val seed = fromPublicKey + toPublicKey + timestamp.toString()
val hash = java.security.MessageDigest.getInstance("SHA-256")
.digest(seed.toByteArray())
// Берём первые 16 символов hex-представления
return hash.take(8).joinToString("") { String.format("%02x", it) }
// Генерируем UUID для гарантии уникальности
return UUID.randomUUID().toString().replace("-", "").take(32)
}
}