From dd8041b30f8c70a4e77d2b56084507355b448736 Mon Sep 17 00:00:00 2001 From: evgeny Date: Thu, 1 Oct 2026 19:06:19 +0300 Subject: [PATCH] Retain picker cache ownership on native PM rejection --- .../app/src/main/java/com/utun/chat/data/NativeLib.kt | 4 ++-- .../src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt | 5 ++++- 2 files changed, 6 insertions(+), 3 deletions(-) diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/NativeLib.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/NativeLib.kt index 54adeb14..9a3f662a 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/data/NativeLib.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/data/NativeLib.kt @@ -186,7 +186,7 @@ object NativeLib { fun dmSend(convId: String, text: String) { nativeDmSend(convId, text) } fun dmRequestConversations() { nativeDmRequestConversations() } fun dmRequestMessages(convId: String) { nativeDmRequestMessages(convId) } - fun dmSendFile(convId: String, path: String, name: String) { nativeDmSendFile(convId, path, name) } + fun dmSendFile(convId: String, path: String, name: String): Boolean = nativeDmSendFile(convId, path, name) private external fun nativeInit(dbPath: String, controlPort: Int, config: Any, logCb: Any): Boolean private external fun nativeStart(configText: String): Boolean @@ -299,5 +299,5 @@ object NativeLib { private external fun nativeDmSend(convId: String, text: String) private external fun nativeDmRequestConversations() private external fun nativeDmRequestMessages(convId: String) - private external fun nativeDmSendFile(convId: String, path: String, name: String) + private external fun nativeDmSendFile(convId: String, path: String, name: String): Boolean } diff --git a/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt b/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt index 1f1206a3..8fc494f6 100644 --- a/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt +++ b/tools/chatgui-android/app/src/main/java/com/utun/chat/viewmodel/ChatViewModel.kt @@ -1025,7 +1025,10 @@ class ChatViewModel : ViewModel() { fun sendAttachment(filePath: String, target: ConversationTarget, name: String = File(filePath).name) { val r = repo ?: throw IllegalStateException("Сервис чата остановлен") - if (target is ConversationTarget.Pm) { NativeLib.dmSendFile(target.id, filePath, name); return } + if (target is ConversationTarget.Pm) { + if (!NativeLib.dmSendFile(target.id, filePath, name)) throw IllegalStateException("Не удалось отправить вложение") + return + } val chId = target.id val ext = filePath.substringAfterLast('.', "").lowercase() if (ext in IMAGE_EXTENSIONS) {