Восстановил поломанную отправку и печать
This commit is contained in:
@@ -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(
|
||||
|
||||
Reference in New Issue
Block a user