Merge pull request #3797 from vector-im/feature/ons/fix_voice_message_crash

Voice Message - Fix amplitude update java.util.ConcurrentModificationException
This commit is contained in:
Onuray Sahin 2021-08-05 16:36:25 +03:00 committed by GitHub
commit 78653eb1d9
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
2 changed files with 8 additions and 7 deletions

1
changelog.d/3796.bugfix Normal file
View file

@ -0,0 +1 @@
Voice Message - Amplitude update java.util.ConcurrentModificationException

View file

@ -326,11 +326,11 @@ class VoiceMessageRecorderView @JvmOverloads constructor(
} }
} }
private fun renderRecordingWaveform(amplitudeList: List<Int>) { private fun renderRecordingWaveform(amplitudeList: Array<Int>) {
views.voicePlaybackWaveform.apply {
post { post {
amplitudeList.forEach { amplitude -> views.voicePlaybackWaveform.apply {
update(amplitude) amplitudeList.iterator().forEach {
update(it)
} }
} }
} }
@ -503,7 +503,7 @@ class VoiceMessageRecorderView @JvmOverloads constructor(
override fun onUpdate(state: VoiceMessagePlaybackTracker.Listener.State) { override fun onUpdate(state: VoiceMessagePlaybackTracker.Listener.State) {
when (state) { when (state) {
is VoiceMessagePlaybackTracker.Listener.State.Recording -> { is VoiceMessagePlaybackTracker.Listener.State.Recording -> {
renderRecordingWaveform(state.amplitudeList) renderRecordingWaveform(state.amplitudeList.toTypedArray())
} }
is VoiceMessagePlaybackTracker.Listener.State.Playing -> { is VoiceMessagePlaybackTracker.Listener.State.Playing -> {
views.voicePlaybackControlButton.setImageResource(R.drawable.ic_play_pause_pause) views.voicePlaybackControlButton.setImageResource(R.drawable.ic_play_pause_pause)