fix: improve message ID generation and enhance pagination handling in chat screen
This commit is contained in:
@@ -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)
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user