Merge pull request #3195 from nextcloud/audio-duration-bug-fix

Rewind & Replay bug fix for Audio Duration
This commit is contained in:
Andy Scherzinger 2023-07-20 18:58:53 +02:00 committed by GitHub
commit 74a138077e
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
3 changed files with 6 additions and 7 deletions

View File

@ -101,7 +101,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) :
setParentMessageDataOnMessageItem(message) setParentMessageDataOnMessageItem(message)
updateDownloadState(message) updateDownloadState(message)
binding.seekbar.max = message.voiceMessageDuration binding.seekbar.max = message.voiceMessageDuration - 1
viewThemeUtils.platform.themeHorizontalSeekBar(binding.seekbar) viewThemeUtils.platform.themeHorizontalSeekBar(binding.seekbar)
viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT) viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT)

View File

@ -98,7 +98,7 @@ class OutcomingVoiceMessageViewHolder(outcomingView: View) :
setParentMessageDataOnMessageItem(message) setParentMessageDataOnMessageItem(message)
updateDownloadState(message) updateDownloadState(message)
binding.seekbar.max = message.voiceMessageDuration binding.seekbar.max = message.voiceMessageDuration - 1
viewThemeUtils.platform.themeHorizontalSeekBar(binding.seekbar) viewThemeUtils.platform.themeHorizontalSeekBar(binding.seekbar)
viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT) viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT)

View File

@ -1715,18 +1715,17 @@ class ChatActivity :
mediaPlayerHandler = Handler() mediaPlayerHandler = Handler()
runOnUiThread(object : Runnable { runOnUiThread(object : Runnable {
var timeElapsed = if (message.voiceMessagePlayedSeconds > 0) message.voiceMessagePlayedSeconds else 0
override fun run() { override fun run() {
if (mediaPlayer != null) { if (mediaPlayer != null) {
if (message.isPlayingVoiceMessage) { if (message.isPlayingVoiceMessage) {
if (timeElapsed < (mediaPlayer!!.duration / VOICE_MESSAGE_SEEKBAR_BASE)) { val pos = mediaPlayer!!.currentPosition / VOICE_MESSAGE_SEEKBAR_BASE
timeElapsed += 1 if (pos < (mediaPlayer!!.duration / VOICE_MESSAGE_SEEKBAR_BASE)) {
message.voiceMessagePlayedSeconds = timeElapsed message.voiceMessagePlayedSeconds = pos
adapter?.update(message) adapter?.update(message)
} else { } else {
message.resetVoiceMessage = true message.resetVoiceMessage = true
message.voiceMessagePlayedSeconds = 0
adapter?.update(message) adapter?.update(message)
timeElapsed = 0
stopMediaPlayer(message) stopMediaPlayer(message)
} }
} }