Fix naming and waveform previews
This commit is contained in:
parent
ad81e2898c
commit
34dda1b568
4 changed files with 11 additions and 9 deletions
|
|
@ -37,6 +37,6 @@ internal fun aVoiceMessageComposerState(
|
||||||
eventSink = {},
|
eventSink = {},
|
||||||
)
|
)
|
||||||
|
|
||||||
internal var aWaveformLevels = List(100) { it.toFloat() / 200 }.toPersistentList()
|
internal var aWaveformLevels = List(100) { it.toFloat() / 100 }.toPersistentList()
|
||||||
|
|
||||||
|
|
||||||
|
|
|
||||||
|
|
@ -817,7 +817,7 @@ internal fun TextComposerVoicePreview() = ElementPreview {
|
||||||
enableVoiceMessages = true,
|
enableVoiceMessages = true,
|
||||||
)
|
)
|
||||||
PreviewColumn(items = persistentListOf({
|
PreviewColumn(items = persistentListOf({
|
||||||
VoicePreview(voiceMessageState = VoiceMessageState.Recording(61.seconds, List(100) { it.toFloat() / 200 }.toPersistentList()))
|
VoicePreview(voiceMessageState = VoiceMessageState.Recording(61.seconds, List(100) { it.toFloat() / 100 }.toPersistentList()))
|
||||||
}, {
|
}, {
|
||||||
VoicePreview(voiceMessageState = VoiceMessageState.Preview(isPlaying = false))
|
VoicePreview(voiceMessageState = VoiceMessageState.Preview(isPlaying = false))
|
||||||
}, {
|
}, {
|
||||||
|
|
|
||||||
|
|
@ -58,27 +58,29 @@ fun LiveWaveformView(
|
||||||
) {
|
) {
|
||||||
var canvasSize by remember { mutableStateOf(DpSize(0.dp, 0.dp)) }
|
var canvasSize by remember { mutableStateOf(DpSize(0.dp, 0.dp)) }
|
||||||
|
|
||||||
|
var parentWidth by remember { mutableIntStateOf(0) }
|
||||||
|
|
||||||
val waveformWidth by remember(levels, lineWidth, linePadding) {
|
val waveformWidth by remember(levels, lineWidth, linePadding) {
|
||||||
derivedStateOf {
|
derivedStateOf {
|
||||||
levels.size * (lineWidth.value + linePadding.value)
|
levels.size * (lineWidth.value + linePadding.value)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
var width by remember { mutableIntStateOf(0) }
|
|
||||||
|
|
||||||
Box(contentAlignment = Alignment.CenterEnd,
|
Box(contentAlignment = Alignment.CenterEnd,
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.height(waveFormHeight)
|
.height(waveFormHeight)
|
||||||
.onSizeChanged { width = it.width }
|
.onSizeChanged { parentWidth = it.width }
|
||||||
) {
|
) {
|
||||||
Canvas(
|
Canvas(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.width(canvasSize.width)
|
.width(Dp(waveformWidth))
|
||||||
.graphicsLayer(alpha = DEFAULT_GRAPHICS_LAYER_ALPHA)
|
.graphicsLayer(alpha = DEFAULT_GRAPHICS_LAYER_ALPHA)
|
||||||
.then(modifier)
|
.then(modifier)
|
||||||
) {
|
) {
|
||||||
canvasSize = DpSize(Dp(min(waveformWidth, width.toFloat())), size.height.toDp())
|
canvasSize = DpSize(Dp(min(waveformWidth, parentWidth.toFloat())), size.height.toDp())
|
||||||
val countThatFitsWidth = (width.toFloat() / (lineWidth.toPx() + linePadding.toPx())).toInt()
|
val countThatFitsWidth = (parentWidth.toFloat() / (lineWidth.toPx() + linePadding.toPx())).toInt()
|
||||||
drawWaveform(
|
drawWaveform(
|
||||||
waveformData = levels.takeLast(countThatFitsWidth).toPersistentList(),
|
waveformData = levels.takeLast(countThatFitsWidth).toPersistentList(),
|
||||||
canvasSize = canvasSize,
|
canvasSize = canvasSize,
|
||||||
|
|
@ -96,7 +98,7 @@ internal fun LiveWaveformViewPreview() = ElementPreview {
|
||||||
Column {
|
Column {
|
||||||
|
|
||||||
LiveWaveformView(
|
LiveWaveformView(
|
||||||
levels = List(100) { it.toFloat() / 200 }.toPersistentList(),
|
levels = List(100) { it.toFloat() / 100 }.toPersistentList(),
|
||||||
modifier = Modifier.height(34.dp),
|
modifier = Modifier.height(34.dp),
|
||||||
)
|
)
|
||||||
LiveWaveformView(
|
LiveWaveformView(
|
||||||
|
|
|
||||||
|
|
@ -92,5 +92,5 @@ private fun RedRecordingDot(
|
||||||
@PreviewsDayNight
|
@PreviewsDayNight
|
||||||
@Composable
|
@Composable
|
||||||
internal fun VoiceMessageRecordingPreview() = ElementPreview {
|
internal fun VoiceMessageRecordingPreview() = ElementPreview {
|
||||||
VoiceMessageRecording(List(100) { it.toFloat() / 200 }.toPersistentList(), 0.seconds)
|
VoiceMessageRecording(List(100) { it.toFloat() / 100 }.toPersistentList(), 0.seconds)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue