Восстановил поломанную отправку и печать

This commit is contained in:
Халимов Рустам
2026-04-20 12:06:43 +03:00
parent b65c8f3633
commit c592197017
10 changed files with 214 additions and 6 deletions
@@ -194,7 +194,35 @@ class ChatRepositoryImpl @Inject constructor(
messageDao.insertMessage(localMessage)
Log.d(TAG, "Saved local message: $localId")
MessageSyncWorker.scheduleSync(context)
// Пробуем отправить НЕМЕДЛЕННО через API
try {
Log.d(TAG, "Sending message immediately via API: $localId")
val request = SendMessageRequest(
content = content,
type = type,
attachments = attachments,
replyToId = replyToId
)
val response = api.sendMessage(chatId, request)
Log.d(TAG, "Message sent successfully: ${response.id}")
// Обновляем сообщение в базе с серверными данными
val syncedMessage = localMessage.copy(
id = response.id,
sequenceId = response.sequenceId ?: 0,
createdAt = response.createdAt ?: localMessage.createdAt,
syncStatus = SyncStatus.SYNCED
)
messageDao.insertMessage(syncedMessage)
// Возвращаем доменную модель с серверными данными
return response.toDomain(userId, baseUrl)
} catch (e: Exception) {
Log.e(TAG, "Failed to send message immediately, scheduling sync: ${e.message}")
// Ошибка - планируем синхронизацию через WorkManager
MessageSyncWorker.scheduleSync(context)
}
// Создаём доменную модель вручную для локального сообщения
return Message(