From ce8c4b2b8462557cc17fd59291a56d756a01ccf3 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Thu, 26 Sep 2024 16:35:08 +0200 Subject: [PATCH 1/3] fix file name of voice recording Signed-off-by: sowjanyakch --- .../talk/chat/data/io/MediaRecorderManager.kt | 11 ++++++++--- 1 file changed, 8 insertions(+), 3 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt b/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt index 6e2bae64b..1a50af5b9 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt @@ -140,14 +140,19 @@ class MediaRecorderManager : LifecycleAwareManager { private fun setVoiceRecordFileName(context: Context, currentConversation: ConversationModel) { val simpleDateFormat = SimpleDateFormat(FILE_DATE_PATTERN) val date: String = simpleDateFormat.format(Date()) + val regex = "[/\\\\:%]".toRegex() + val displayName = currentConversation.displayName.replace(regex, " ") + val validDisplayName = displayName.replace("\\s+".toRegex(), " ") - val fileNameWithoutSuffix = String.format( + var fileNameWithoutSuffix = String.format( context.resources.getString(R.string.nc_voice_message_filename), date, - currentConversation.displayName + validDisplayName ) + if (fileNameWithoutSuffix.length > 146) { + fileNameWithoutSuffix = fileNameWithoutSuffix.substring(0, 146) + } val fileName = fileNameWithoutSuffix + VOICE_MESSAGE_FILE_SUFFIX - currentVoiceRecordFile = "${context.cacheDir.absolutePath}/$fileName" } From 2478aa884b3d90fd5253a174774afb563b7ec4e7 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Thu, 26 Sep 2024 16:49:07 +0200 Subject: [PATCH 2/3] put file length value in utils Signed-off-by: sowjanyakch --- .../com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt | 5 +++-- app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt | 1 + 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt b/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt index 1a50af5b9..168d8a284 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt @@ -13,6 +13,7 @@ import android.media.MediaRecorder import android.util.Log import com.nextcloud.talk.R import com.nextcloud.talk.models.domain.ConversationModel +import com.nextcloud.talk.utils.FileUtils import java.io.IOException import java.text.SimpleDateFormat import java.util.Date @@ -149,8 +150,8 @@ class MediaRecorderManager : LifecycleAwareManager { date, validDisplayName ) - if (fileNameWithoutSuffix.length > 146) { - fileNameWithoutSuffix = fileNameWithoutSuffix.substring(0, 146) + if (fileNameWithoutSuffix.length > FileUtils.FILE_MAX_LENGTH) { + fileNameWithoutSuffix = fileNameWithoutSuffix.substring(0, FileUtils.FILE_MAX_LENGTH) } val fileName = fileNameWithoutSuffix + VOICE_MESSAGE_FILE_SUFFIX currentVoiceRecordFile = "${context.cacheDir.absolutePath}/$fileName" diff --git a/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt index 7a9ea633b..c7ab91281 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt @@ -27,6 +27,7 @@ object FileUtils { private val TAG = FileUtils::class.java.simpleName private const val RADIX: Int = 16 private const val MD5_LENGTH: Int = 32 + const val FILE_MAX_LENGTH = 146 /** * Creates a new [File] From de582f8b0b7bd4a8304418698ba964b5d1c8d487 Mon Sep 17 00:00:00 2001 From: sowjanyakch Date: Fri, 27 Sep 2024 12:33:52 +0200 Subject: [PATCH 3/3] use variable "VOICE_MESSAGE_PREFIX_MAX_LENGTH" to restrict length of voice recording file name Signed-off-by: sowjanyakch --- .../com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt | 6 +++--- app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt | 1 - 2 files changed, 3 insertions(+), 4 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt b/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt index 168d8a284..a08ef504e 100644 --- a/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt +++ b/app/src/main/java/com/nextcloud/talk/chat/data/io/MediaRecorderManager.kt @@ -13,7 +13,6 @@ import android.media.MediaRecorder import android.util.Log import com.nextcloud.talk.R import com.nextcloud.talk.models.domain.ConversationModel -import com.nextcloud.talk.utils.FileUtils import java.io.IOException import java.text.SimpleDateFormat import java.util.Date @@ -32,6 +31,7 @@ class MediaRecorderManager : LifecycleAwareManager { private const val VOICE_MESSAGE_CHANNELS = 1 private const val FILE_DATE_PATTERN = "yyyy-MM-dd HH-mm-ss" private const val VOICE_MESSAGE_FILE_SUFFIX = ".mp3" + private const val VOICE_MESSAGE_PREFIX_MAX_LENGTH = 146 } var currentVoiceRecordFile: String = "" @@ -150,8 +150,8 @@ class MediaRecorderManager : LifecycleAwareManager { date, validDisplayName ) - if (fileNameWithoutSuffix.length > FileUtils.FILE_MAX_LENGTH) { - fileNameWithoutSuffix = fileNameWithoutSuffix.substring(0, FileUtils.FILE_MAX_LENGTH) + if (fileNameWithoutSuffix.length > VOICE_MESSAGE_PREFIX_MAX_LENGTH) { + fileNameWithoutSuffix = fileNameWithoutSuffix.substring(0, VOICE_MESSAGE_PREFIX_MAX_LENGTH) } val fileName = fileNameWithoutSuffix + VOICE_MESSAGE_FILE_SUFFIX currentVoiceRecordFile = "${context.cacheDir.absolutePath}/$fileName" diff --git a/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt b/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt index c7ab91281..7a9ea633b 100644 --- a/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt +++ b/app/src/main/java/com/nextcloud/talk/utils/FileUtils.kt @@ -27,7 +27,6 @@ object FileUtils { private val TAG = FileUtils::class.java.simpleName private const val RADIX: Int = 16 private const val MD5_LENGTH: Int = 32 - const val FILE_MAX_LENGTH = 146 /** * Creates a new [File]