when the voice message duration is known, always shows it when not playing

Signed-off-by: Giacomo Pacini <giacomopacini98@gmail.com>
This commit is contained in:
Giacomo Pacini 2024-12-15 22:29:08 +01:00
parent 053407f900
commit 410b27b72c
No known key found for this signature in database
GPG Key ID: 2FBC97406B43D889
2 changed files with 22 additions and 2 deletions

View File

@ -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) {

View File

@ -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()