Fix crash when recording long voice message.
This commit is contained in:
parent
da57eaadf2
commit
f3d7b16463
4 changed files with 10 additions and 4 deletions
|
|
@ -192,7 +192,10 @@ class DefaultVoiceMessageComposerPresenter(
|
|||
voiceMessageState = when (val state = recorderState) {
|
||||
is VoiceRecorderState.Recording -> VoiceMessageState.Recording(
|
||||
duration = state.elapsedTime,
|
||||
levels = state.levels.toImmutableList(),
|
||||
levels = state.levels
|
||||
// Keep only the last 128 samples for display, else we can have a crash
|
||||
.takeLast(128)
|
||||
.toImmutableList(),
|
||||
)
|
||||
is VoiceRecorderState.Finished ->
|
||||
previewState(
|
||||
|
|
|
|||
|
|
@ -299,7 +299,10 @@ fun TextComposer(
|
|||
onSeek = onSeekVoiceMessage,
|
||||
)
|
||||
is VoiceMessageState.Recording ->
|
||||
VoiceMessageRecording(voiceMessageState.levels, voiceMessageState.duration)
|
||||
VoiceMessageRecording(
|
||||
levels = voiceMessageState.levels,
|
||||
duration = voiceMessageState.duration,
|
||||
)
|
||||
VoiceMessageState.Idle -> {}
|
||||
}
|
||||
}
|
||||
|
|
|
|||
|
|
@ -54,7 +54,7 @@ fun LiveWaveformView(
|
|||
|
||||
var parentWidth by remember { mutableIntStateOf(0) }
|
||||
|
||||
val waveformWidth by remember(levels, lineWidth, linePadding) {
|
||||
val waveformWidth by remember(levels.size, lineWidth, linePadding) {
|
||||
derivedStateOf {
|
||||
levels.size * (lineWidth.value + linePadding.value)
|
||||
}
|
||||
|
|
|
|||
|
|
@ -74,7 +74,7 @@ internal fun VoiceMessageRecording(
|
|||
modifier = Modifier
|
||||
.height(26.dp)
|
||||
.weight(1f),
|
||||
levels = levels
|
||||
levels = levels,
|
||||
)
|
||||
}
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue