From 410b27b72c869dcfa5339db5d267f8cb98bbcc3d Mon Sep 17 00:00:00 2001 From: Giacomo Pacini Date: Sun, 15 Dec 2024 22:29:08 +0100 Subject: [PATCH] when the voice message duration is known, always shows it when not playing Signed-off-by: Giacomo Pacini --- .../messages/IncomingVoiceMessageViewHolder.kt | 11 ++++++++++- .../messages/OutcomingVoiceMessageViewHolder.kt | 13 ++++++++++++- 2 files changed, 22 insertions(+), 2 deletions(-) diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt index e16d1a45e..68aa7d43e 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/IncomingVoiceMessageViewHolder.kt @@ -107,6 +107,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) : viewThemeUtils.talk.themeWaveFormSeekBar(binding.seekbar) viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT) + showVoiceMessageDuration(message) if (message.isDownloadingVoiceMessage) { showVoiceMessageLoading() } else { @@ -154,6 +155,14 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) : isBound = true } + private fun showVoiceMessageDuration(message: ChatMessage){ + if (message.voiceMessageDuration > 0) { + binding.voiceMessageDuration.text = android.text.format.DateUtils.formatElapsedTime(message.voiceMessageDuration.toLong()) + binding.voiceMessageDuration.visibility = View.VISIBLE + } else { + binding.voiceMessageDuration.visibility = View.INVISIBLE + } + } private fun resetVoiceMessage(chatMessage: ChatMessage) { binding.playPauseBtn.visibility = View.VISIBLE @@ -164,7 +173,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) : binding.seekbar.progress = SEEKBAR_START chatMessage.resetVoiceMessage = false chatMessage.voiceMessagePlayedSeconds = 0 - binding.voiceMessageDuration.visibility = View.INVISIBLE + showVoiceMessageDuration(message) } private fun longClickOnReaction(chatMessage: ChatMessage) { diff --git a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt index 1e6715cde..f58722534 100644 --- a/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt +++ b/app/src/main/java/com/nextcloud/talk/adapters/messages/OutcomingVoiceMessageViewHolder.kt @@ -111,6 +111,8 @@ class OutcomingVoiceMessageViewHolder(outcomingView: View) : viewThemeUtils.talk.themeWaveFormSeekBar(binding.seekbar) viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT) + showVoiceMessageDuration(message) + handleIsDownloadingVoiceMessageState(message) handleResetVoiceMessageState(message) @@ -189,11 +191,20 @@ class OutcomingVoiceMessageViewHolder(outcomingView: View) : ) binding.seekbar.progress = SEEKBAR_START message.voiceMessagePlayedSeconds = 0 - binding.voiceMessageDuration.visibility = View.INVISIBLE + showVoiceMessageDuration(message) message.resetVoiceMessage = false } } + private fun showVoiceMessageDuration(message: ChatMessage){ + if (message.voiceMessageDuration > 0) { + binding.voiceMessageDuration.text = android.text.format.DateUtils.formatElapsedTime(message.voiceMessageDuration.toLong()) + binding.voiceMessageDuration.visibility = View.VISIBLE + } else { + binding.voiceMessageDuration.visibility = View.INVISIBLE + } + } + private fun handleIsDownloadingVoiceMessageState(message: ChatMessage) { if (message.isDownloadingVoiceMessage) { showVoiceMessageLoading()