Skip to content

Commit

Permalink
Merge pull request #3195 from nextcloud/audio-duration-bug-fix
Browse files Browse the repository at this point in the history
Rewind & Replay bug fix for Audio Duration
  • Loading branch information
AndyScherzinger authored Jul 20, 2023
2 parents cc00535 + 6654f6a commit 74a1380
Show file tree
Hide file tree
Showing 3 changed files with 6 additions and 7 deletions.
Original file line number Diff line number Diff line change
Expand Up @@ -101,7 +101,7 @@ class IncomingVoiceMessageViewHolder(incomingView: View, payload: Any) :
setParentMessageDataOnMessageItem(message)

updateDownloadState(message)
binding.seekbar.max = message.voiceMessageDuration
binding.seekbar.max = message.voiceMessageDuration - 1
viewThemeUtils.platform.themeHorizontalSeekBar(binding.seekbar)
viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT)

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -98,7 +98,7 @@ class OutcomingVoiceMessageViewHolder(outcomingView: View) :
setParentMessageDataOnMessageItem(message)

updateDownloadState(message)
binding.seekbar.max = message.voiceMessageDuration
binding.seekbar.max = message.voiceMessageDuration - 1
viewThemeUtils.platform.themeHorizontalSeekBar(binding.seekbar)
viewThemeUtils.platform.colorCircularProgressBar(binding.progressBar, ColorRole.ON_SURFACE_VARIANT)

Expand Down
9 changes: 4 additions & 5 deletions app/src/main/java/com/nextcloud/talk/chat/ChatActivity.kt
Original file line number Diff line number Diff line change
Expand Up @@ -1715,18 +1715,17 @@ class ChatActivity :

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

0 comments on commit 74a1380

Please sign in to comment.