feat: Update avatar handling to include data URL prefix and improve encryption process in ChatViewModel
This commit is contained in:
@@ -1879,6 +1879,15 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) {
|
||||
Log.d(TAG, "👤 Avatar blob read successfully, length: ${avatarBlob.length}")
|
||||
Log.d(TAG, "👤 Avatar blob first 100 chars: ${avatarBlob.take(100)}")
|
||||
|
||||
// 🔥 КРИТИЧНО: Desktop ожидает полный data URL, а не просто Base64!
|
||||
// Добавляем префикс если его нет
|
||||
val avatarDataUrl = if (avatarBlob.startsWith("data:image")) {
|
||||
avatarBlob
|
||||
} else {
|
||||
"data:image/png;base64,$avatarBlob"
|
||||
}
|
||||
Log.d(TAG, "👤 Avatar data URL length: ${avatarDataUrl.length}")
|
||||
|
||||
// Генерируем blurhash для preview (как на desktop)
|
||||
val avatarBlurhash = withContext(Dispatchers.IO) {
|
||||
try {
|
||||
@@ -1925,7 +1934,8 @@ class ChatViewModel(application: Application) : AndroidViewModel(application) {
|
||||
|
||||
// 🔥 КРИТИЧНО: Как в desktop - шифруем аватар с ChaCha ключом (plainKeyAndNonce)
|
||||
// НЕ с AVATAR_PASSWORD! AVATAR_PASSWORD используется только для локального хранения
|
||||
val encryptedAvatarBlob = MessageCrypto.encryptReplyBlob(avatarBlob, plainKeyAndNonce)
|
||||
// Используем avatarDataUrl (с префиксом data:image/...) а не avatarBlob!
|
||||
val encryptedAvatarBlob = MessageCrypto.encryptReplyBlob(avatarDataUrl, plainKeyAndNonce)
|
||||
Log.d(TAG, "👤 Avatar encrypted with ChaCha key, length: ${encryptedAvatarBlob.length}")
|
||||
|
||||
val avatarAttachmentId = "avatar_$timestamp"
|
||||
|
||||
Reference in New Issue
Block a user