From d66c8bc44a9e49a7cd117ed5adeb1968b502a50e Mon Sep 17 00:00:00 2001 From: Sylvain Berfini Date: Fri, 26 Feb 2021 11:32:58 +0100 Subject: [PATCH] Added setting to prevent sending of multiple files in the same chat message until iOS app will be able to handle it --- .../main/chat/viewmodels/ChatMessageSendingViewModel.kt | 6 +++++- app/src/main/java/org/linphone/core/CorePreferences.kt | 7 +++++++ build.gradle | 2 +- 3 files changed, 13 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt index f90080a6e..3f69ad17d 100644 --- a/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt +++ b/app/src/main/java/org/linphone/activities/main/chat/viewmodels/ChatMessageSendingViewModel.kt @@ -109,6 +109,7 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() message.addUtf8TextContent(toSend) } + var fileContent = false for (attachment in attachments.value.orEmpty()) { val content = Factory.instance().createContent() @@ -121,11 +122,14 @@ class ChatMessageSendingViewModel(private val chatRoom: ChatRoom) : ViewModel() content.name = attachment.fileName content.filePath = attachment.path // Let the file body handler take care of the upload - if (isBasicChatRoom) { + // Do not send file in the same message as the text in a BasicChatRoom + // and don't send multiple files in the same message if setting says so + if (isBasicChatRoom or (corePreferences.preventMoreThanOneFilePerMessage and fileContent)) { val fileMessage: ChatMessage = chatRoom.createFileTransferMessage(content) fileMessage.send() } else { message.addFileContent(content) + fileContent = true } } diff --git a/app/src/main/java/org/linphone/core/CorePreferences.kt b/app/src/main/java/org/linphone/core/CorePreferences.kt index 808fb5bef..fdce95602 100644 --- a/app/src/main/java/org/linphone/core/CorePreferences.kt +++ b/app/src/main/java/org/linphone/core/CorePreferences.kt @@ -107,6 +107,13 @@ class CorePreferences constructor(private val context: Context) { /* Chat */ + // iOS app currently can't display more than 1 file per message + var preventMoreThanOneFilePerMessage: Boolean + get() = config.getBool("app", "prevent_more_than_one_file_per_message", true) + set(value) { + config.setBool("app", "prevent_more_than_one_file_per_message", value) + } + var markAsReadUponChatMessageNotificationDismissal: Boolean get() = config.getBool("app", "mark_as_read_notif_dismissal", false) set(value) { diff --git a/build.gradle b/build.gradle index af9bed404..58dd384a1 100644 --- a/build.gradle +++ b/build.gradle @@ -1,7 +1,7 @@ // Top-level build file where you can add configuration options common to all sub-projects/modules. buildscript { - ext.kotlin_version = '1.4.30' + ext.kotlin_version = '1.4.31' repositories { google()