Merge pull request #1691 from vector-im/jonny/fix-composer-scaling
Fix scaling of composer UI
This commit is contained in:
commit
d640b04728
11 changed files with 37 additions and 53 deletions
|
|
@ -51,7 +51,6 @@ import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.components.media.createFakeWaveform
|
import io.element.android.libraries.designsystem.components.media.createFakeWaveform
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
|
import io.element.android.libraries.designsystem.theme.components.CircularProgressIndicator
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
|
|
@ -135,7 +134,7 @@ fun TextComposer(
|
||||||
@Composable {
|
@Composable {
|
||||||
ComposerOptionsButton(
|
ComposerOptionsButton(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
onClick = onAddAttachment
|
onClick = onAddAttachment
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -182,7 +181,7 @@ fun TextComposer(
|
||||||
}
|
}
|
||||||
val uploadVoiceProgress = @Composable {
|
val uploadVoiceProgress = @Composable {
|
||||||
CircularProgressIndicator(
|
CircularProgressIndicator(
|
||||||
modifier = Modifier.size(24.dp.applyScaleUp()),
|
modifier = Modifier.size(24.dp),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
@ -289,7 +288,7 @@ private fun StandardLayout(
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(bottom = 5.dp, top = 5.dp, end = 3.dp, start = 3.dp)
|
.padding(bottom = 5.dp, top = 5.dp, end = 3.dp, start = 3.dp)
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
contentAlignment = Alignment.Center,
|
contentAlignment = Alignment.Center,
|
||||||
) {
|
) {
|
||||||
voiceDeleteButton()
|
voiceDeleteButton()
|
||||||
|
|
@ -322,7 +321,7 @@ private fun StandardLayout(
|
||||||
Box(
|
Box(
|
||||||
Modifier
|
Modifier
|
||||||
.padding(bottom = 5.dp, top = 5.dp, end = 6.dp, start = 6.dp)
|
.padding(bottom = 5.dp, top = 5.dp, end = 6.dp, start = 6.dp)
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
contentAlignment = Alignment.Center,
|
contentAlignment = Alignment.Center,
|
||||||
) {
|
) {
|
||||||
endButton()
|
endButton()
|
||||||
|
|
@ -393,7 +392,7 @@ private fun TextInput(
|
||||||
.clip(roundedCorners)
|
.clip(roundedCorners)
|
||||||
.border(0.5.dp, borderColor, roundedCorners)
|
.border(0.5.dp, borderColor, roundedCorners)
|
||||||
.background(color = bgColor)
|
.background(color = bgColor)
|
||||||
.requiredHeightIn(min = 42.dp.applyScaleUp())
|
.requiredHeightIn(min = 42.dp)
|
||||||
.fillMaxSize(),
|
.fillMaxSize(),
|
||||||
) {
|
) {
|
||||||
if (composerMode is MessageComposerMode.Special) {
|
if (composerMode is MessageComposerMode.Special) {
|
||||||
|
|
@ -402,12 +401,7 @@ private fun TextInput(
|
||||||
val defaultTypography = ElementTheme.typography.fontBodyLgRegular
|
val defaultTypography = ElementTheme.typography.fontBodyLgRegular
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(
|
.padding(top = 4.dp, bottom = 4.dp, start = 12.dp, end = 42.dp)
|
||||||
top = 4.dp.applyScaleUp(),
|
|
||||||
bottom = 4.dp.applyScaleUp(),
|
|
||||||
start = 12.dp.applyScaleUp(),
|
|
||||||
end = 42.dp.applyScaleUp()
|
|
||||||
)
|
|
||||||
.testTag(TestTags.richTextEditor),
|
.testTag(TestTags.richTextEditor),
|
||||||
contentAlignment = Alignment.CenterStart,
|
contentAlignment = Alignment.CenterStart,
|
||||||
) {
|
) {
|
||||||
|
|
@ -429,7 +423,7 @@ private fun TextInput(
|
||||||
// This prevents it gaining focus and mutating the state.
|
// This prevents it gaining focus and mutating the state.
|
||||||
registerStateUpdates = !subcomposing,
|
registerStateUpdates = !subcomposing,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(top = 6.dp.applyScaleUp(), bottom = 6.dp.applyScaleUp())
|
.padding(top = 6.dp, bottom = 6.dp)
|
||||||
.fillMaxWidth(),
|
.fillMaxWidth(),
|
||||||
style = ElementRichTextEditorStyle.create(
|
style = ElementRichTextEditorStyle.create(
|
||||||
hasFocus = state.hasFocus
|
hasFocus = state.hasFocus
|
||||||
|
|
@ -481,7 +475,7 @@ private fun EditingModeView(
|
||||||
tint = ElementTheme.materialColors.secondary,
|
tint = ElementTheme.materialColors.secondary,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(vertical = 8.dp)
|
.padding(vertical = 8.dp)
|
||||||
.size(16.dp.applyScaleUp()),
|
.size(16.dp),
|
||||||
)
|
)
|
||||||
Text(
|
Text(
|
||||||
stringResource(CommonStrings.common_editing),
|
stringResource(CommonStrings.common_editing),
|
||||||
|
|
@ -498,7 +492,7 @@ private fun EditingModeView(
|
||||||
tint = ElementTheme.materialColors.secondary,
|
tint = ElementTheme.materialColors.secondary,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(top = 8.dp, bottom = 8.dp, start = 16.dp, end = 12.dp)
|
.padding(top = 8.dp, bottom = 8.dp, start = 16.dp, end = 12.dp)
|
||||||
.size(16.dp.applyScaleUp())
|
.size(16.dp)
|
||||||
.clickable(
|
.clickable(
|
||||||
enabled = true,
|
enabled = true,
|
||||||
onClick = onResetComposerMode,
|
onClick = onResetComposerMode,
|
||||||
|
|
@ -561,7 +555,7 @@ private fun ReplyToModeView(
|
||||||
tint = MaterialTheme.colorScheme.secondary,
|
tint = MaterialTheme.colorScheme.secondary,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.padding(end = 4.dp, top = 4.dp, start = 16.dp, bottom = 16.dp)
|
.padding(end = 4.dp, top = 4.dp, start = 16.dp, bottom = 16.dp)
|
||||||
.size(16.dp.applyScaleUp())
|
.size(16.dp)
|
||||||
.clickable(
|
.clickable(
|
||||||
enabled = true,
|
enabled = true,
|
||||||
onClick = onResetComposerMode,
|
onClick = onResetComposerMode,
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
|
|
@ -37,11 +36,11 @@ internal fun ComposerOptionsButton(
|
||||||
) {
|
) {
|
||||||
IconButton(
|
IconButton(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
onClick = onClick
|
onClick = onClick
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(30.dp.applyScaleUp()),
|
modifier = Modifier.size(30.dp),
|
||||||
resourceId = CommonDrawables.ic_plus,
|
resourceId = CommonDrawables.ic_plus,
|
||||||
contentDescription = stringResource(R.string.rich_text_editor_a11y_add_attachment),
|
contentDescription = stringResource(R.string.rich_text_editor_a11y_add_attachment),
|
||||||
tint = ElementTheme.colors.iconPrimary,
|
tint = ElementTheme.colors.iconPrimary,
|
||||||
|
|
|
||||||
|
|
@ -23,7 +23,6 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
|
|
@ -37,11 +36,11 @@ internal fun DismissTextFormattingButton(
|
||||||
) {
|
) {
|
||||||
IconButton(
|
IconButton(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
onClick = onClick
|
onClick = onClick
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(30.dp.applyScaleUp()),
|
modifier = Modifier.size(30.dp),
|
||||||
resourceId = CommonDrawables.ic_cancel,
|
resourceId = CommonDrawables.ic_cancel,
|
||||||
contentDescription = stringResource(CommonStrings.action_close),
|
contentDescription = stringResource(CommonStrings.action_close),
|
||||||
tint = ElementTheme.colors.iconPrimary,
|
tint = ElementTheme.colors.iconPrimary,
|
||||||
|
|
|
||||||
|
|
@ -34,7 +34,6 @@ import androidx.compose.ui.res.vectorResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.iconSuccessPrimaryBackground
|
import io.element.android.libraries.designsystem.theme.iconSuccessPrimaryBackground
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
|
|
@ -68,21 +67,21 @@ internal fun FormattingOption(
|
||||||
interactionSource = remember { MutableInteractionSource() },
|
interactionSource = remember { MutableInteractionSource() },
|
||||||
indication = rememberRipple(
|
indication = rememberRipple(
|
||||||
bounded = false,
|
bounded = false,
|
||||||
radius = 20.dp.applyScaleUp(),
|
radius = 20.dp,
|
||||||
),
|
),
|
||||||
)
|
)
|
||||||
.size(48.dp.applyScaleUp())
|
.size(48.dp)
|
||||||
) {
|
) {
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.size(36.dp.applyScaleUp())
|
.size(36.dp)
|
||||||
.align(Alignment.Center)
|
.align(Alignment.Center)
|
||||||
.background(backgroundColor, shape = RoundedCornerShape(8.dp.applyScaleUp()))
|
.background(backgroundColor, shape = RoundedCornerShape(8.dp))
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.align(Alignment.Center)
|
.align(Alignment.Center)
|
||||||
.size(20.dp.applyScaleUp()),
|
.size(20.dp),
|
||||||
imageVector = imageVector,
|
imageVector = imageVector,
|
||||||
contentDescription = contentDescription,
|
contentDescription = contentDescription,
|
||||||
tint = foregroundColor,
|
tint = foregroundColor,
|
||||||
|
|
|
||||||
|
|
@ -41,7 +41,6 @@ import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.components.media.drawWaveform
|
import io.element.android.libraries.designsystem.components.media.drawWaveform
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.theme.ElementTheme
|
import io.element.android.libraries.theme.ElementTheme
|
||||||
import kotlinx.collections.immutable.ImmutableList
|
import kotlinx.collections.immutable.ImmutableList
|
||||||
import kotlinx.collections.immutable.toPersistentList
|
import kotlinx.collections.immutable.toPersistentList
|
||||||
|
|
@ -71,7 +70,7 @@ fun LiveWaveformView(
|
||||||
Box(contentAlignment = Alignment.CenterEnd,
|
Box(contentAlignment = Alignment.CenterEnd,
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.height(waveFormHeight.applyScaleUp())
|
.height(waveFormHeight)
|
||||||
.onSizeChanged { parentWidth = it.width }
|
.onSizeChanged { parentWidth = it.width }
|
||||||
) {
|
) {
|
||||||
Canvas(
|
Canvas(
|
||||||
|
|
|
||||||
|
|
@ -29,7 +29,6 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
|
|
@ -97,11 +96,11 @@ private fun RecordButtonView(
|
||||||
) {
|
) {
|
||||||
IconButton(
|
IconButton(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
onClick = {},
|
onClick = {},
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(24.dp.applyScaleUp()),
|
modifier = Modifier.size(24.dp),
|
||||||
resourceId = if (isPressed) {
|
resourceId = if (isPressed) {
|
||||||
CommonDrawables.ic_compound_mic_on_solid
|
CommonDrawables.ic_compound_mic_on_solid
|
||||||
} else {
|
} else {
|
||||||
|
|
|
||||||
|
|
@ -32,7 +32,6 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
|
|
@ -49,7 +48,7 @@ internal fun SendButton(
|
||||||
) {
|
) {
|
||||||
IconButton(
|
IconButton(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
enabled = canSendMessage,
|
enabled = canSendMessage,
|
||||||
) {
|
) {
|
||||||
|
|
@ -73,12 +72,12 @@ internal fun SendButton(
|
||||||
Box(
|
Box(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.clip(CircleShape)
|
.clip(CircleShape)
|
||||||
.size(36.dp.applyScaleUp())
|
.size(36.dp)
|
||||||
.background(if (canSendMessage) ElementTheme.colors.iconAccentTertiary else Color.Transparent)
|
.background(if (canSendMessage) ElementTheme.colors.iconAccentTertiary else Color.Transparent)
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.height(iconSize.applyScaleUp())
|
.height(iconSize)
|
||||||
.padding(start = iconStartPadding)
|
.padding(start = iconStartPadding)
|
||||||
.align(Alignment.Center),
|
.align(Alignment.Center),
|
||||||
resourceId = iconId,
|
resourceId = iconId,
|
||||||
|
|
|
||||||
|
|
@ -21,15 +21,14 @@ import androidx.compose.animation.core.tween
|
||||||
import androidx.compose.foundation.shape.RoundedCornerShape
|
import androidx.compose.foundation.shape.RoundedCornerShape
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
import io.element.android.libraries.textcomposer.model.MessageComposerMode
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
internal fun textInputRoundedCornerShape(
|
internal fun textInputRoundedCornerShape(
|
||||||
composerMode: MessageComposerMode,
|
composerMode: MessageComposerMode,
|
||||||
): RoundedCornerShape {
|
): RoundedCornerShape {
|
||||||
val roundCornerSmall = 20.dp.applyScaleUp()
|
val roundCornerSmall = 20.dp
|
||||||
val roundCornerLarge = 21.dp.applyScaleUp()
|
val roundCornerLarge = 21.dp
|
||||||
|
|
||||||
val roundedCornerSize = if (composerMode is MessageComposerMode.Special) {
|
val roundedCornerSize = if (composerMode is MessageComposerMode.Special) {
|
||||||
roundCornerSmall
|
roundCornerSmall
|
||||||
|
|
|
||||||
|
|
@ -24,7 +24,6 @@ import androidx.compose.ui.res.stringResource
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||||
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
import io.element.android.libraries.designsystem.utils.CommonDrawables
|
||||||
|
|
@ -39,12 +38,12 @@ fun VoiceMessageDeleteButton(
|
||||||
) {
|
) {
|
||||||
IconButton(
|
IconButton(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.size(48.dp.applyScaleUp()),
|
.size(48.dp),
|
||||||
enabled = enabled,
|
enabled = enabled,
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
modifier = Modifier.size(24.dp.applyScaleUp()),
|
modifier = Modifier.size(24.dp),
|
||||||
resourceId = CommonDrawables.ic_compound_delete,
|
resourceId = CommonDrawables.ic_compound_delete,
|
||||||
contentDescription = stringResource(CommonStrings.a11y_delete),
|
contentDescription = stringResource(CommonStrings.a11y_delete),
|
||||||
tint = if (enabled) {
|
tint = if (enabled) {
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ import io.element.android.libraries.designsystem.components.media.WaveformPlayba
|
||||||
import io.element.android.libraries.designsystem.components.media.createFakeWaveform
|
import io.element.android.libraries.designsystem.components.media.createFakeWaveform
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Icon
|
import io.element.android.libraries.designsystem.theme.components.Icon
|
||||||
import io.element.android.libraries.designsystem.theme.components.IconButton
|
import io.element.android.libraries.designsystem.theme.components.IconButton
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
|
|
@ -72,7 +71,7 @@ internal fun VoiceMessagePreview(
|
||||||
shape = MaterialTheme.shapes.medium,
|
shape = MaterialTheme.shapes.medium,
|
||||||
)
|
)
|
||||||
.padding(start = 8.dp, end = 20.dp, top = 6.dp, bottom = 6.dp)
|
.padding(start = 8.dp, end = 20.dp, top = 6.dp, bottom = 6.dp)
|
||||||
.heightIn(26.dp.applyScaleUp()),
|
.heightIn(26.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
if (isPlaying) {
|
if (isPlaying) {
|
||||||
|
|
@ -104,7 +103,7 @@ internal fun VoiceMessagePreview(
|
||||||
WaveformPlaybackView(
|
WaveformPlaybackView(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.weight(1f)
|
.weight(1f)
|
||||||
.height(26.dp.applyScaleUp()),
|
.height(26.dp),
|
||||||
playbackProgress = playbackProgress,
|
playbackProgress = playbackProgress,
|
||||||
showCursor = isInteractive,
|
showCursor = isInteractive,
|
||||||
waveform = waveform,
|
waveform = waveform,
|
||||||
|
|
@ -129,7 +128,7 @@ private fun PlayerButton(
|
||||||
onClick = onClick,
|
onClick = onClick,
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.background(color = ElementTheme.colors.bgCanvasDefault, shape = CircleShape)
|
.background(color = ElementTheme.colors.bgCanvasDefault, shape = CircleShape)
|
||||||
.size(30.dp.applyScaleUp()),
|
.size(30.dp),
|
||||||
enabled = enabled,
|
enabled = enabled,
|
||||||
colors = IconButtonDefaults.iconButtonColors(
|
colors = IconButtonDefaults.iconButtonColors(
|
||||||
contentColor = ElementTheme.colors.iconSecondary,
|
contentColor = ElementTheme.colors.iconSecondary,
|
||||||
|
|
@ -147,14 +146,14 @@ private fun PlayerButton(
|
||||||
private fun PauseIcon() = Icon(
|
private fun PauseIcon() = Icon(
|
||||||
resourceId = R.drawable.ic_pause,
|
resourceId = R.drawable.ic_pause,
|
||||||
contentDescription = stringResource(id = CommonStrings.a11y_pause),
|
contentDescription = stringResource(id = CommonStrings.a11y_pause),
|
||||||
modifier = Modifier.size(20.dp.applyScaleUp()),
|
modifier = Modifier.size(20.dp),
|
||||||
)
|
)
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
private fun PlayIcon() = Icon(
|
private fun PlayIcon() = Icon(
|
||||||
resourceId = R.drawable.ic_play,
|
resourceId = R.drawable.ic_play,
|
||||||
contentDescription = stringResource(id = CommonStrings.a11y_play),
|
contentDescription = stringResource(id = CommonStrings.a11y_play),
|
||||||
modifier = Modifier.size(20.dp.applyScaleUp()),
|
modifier = Modifier.size(20.dp),
|
||||||
)
|
)
|
||||||
|
|
||||||
@PreviewsDayNight
|
@PreviewsDayNight
|
||||||
|
|
|
||||||
|
|
@ -40,7 +40,6 @@ import androidx.compose.ui.draw.alpha
|
||||||
import androidx.compose.ui.unit.dp
|
import androidx.compose.ui.unit.dp
|
||||||
import io.element.android.libraries.designsystem.preview.ElementPreview
|
import io.element.android.libraries.designsystem.preview.ElementPreview
|
||||||
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
import io.element.android.libraries.designsystem.preview.PreviewsDayNight
|
||||||
import io.element.android.libraries.designsystem.text.applyScaleUp
|
|
||||||
import io.element.android.libraries.designsystem.theme.components.Text
|
import io.element.android.libraries.designsystem.theme.components.Text
|
||||||
import io.element.android.libraries.theme.ElementTheme
|
import io.element.android.libraries.theme.ElementTheme
|
||||||
import io.element.android.libraries.ui.utils.time.formatShort
|
import io.element.android.libraries.ui.utils.time.formatShort
|
||||||
|
|
@ -63,7 +62,7 @@ internal fun VoiceMessageRecording(
|
||||||
shape = MaterialTheme.shapes.medium,
|
shape = MaterialTheme.shapes.medium,
|
||||||
)
|
)
|
||||||
.padding(start = 12.dp, end = 20.dp, top = 8.dp, bottom = 8.dp)
|
.padding(start = 12.dp, end = 20.dp, top = 8.dp, bottom = 8.dp)
|
||||||
.heightIn(26.dp.applyScaleUp()),
|
.heightIn(26.dp),
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
) {
|
) {
|
||||||
RedRecordingDot()
|
RedRecordingDot()
|
||||||
|
|
@ -81,7 +80,7 @@ internal fun VoiceMessageRecording(
|
||||||
|
|
||||||
LiveWaveformView(
|
LiveWaveformView(
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.height(26.dp.applyScaleUp())
|
.height(26.dp)
|
||||||
.weight(1f),
|
.weight(1f),
|
||||||
levels = levels
|
levels = levels
|
||||||
)
|
)
|
||||||
|
|
@ -104,7 +103,7 @@ private fun RedRecordingDot(
|
||||||
)
|
)
|
||||||
Box(
|
Box(
|
||||||
modifier = modifier
|
modifier = modifier
|
||||||
.size(8.dp.applyScaleUp())
|
.size(8.dp)
|
||||||
.alpha(alpha)
|
.alpha(alpha)
|
||||||
.background(color = ElementTheme.colors.textCriticalPrimary, shape = CircleShape)
|
.background(color = ElementTheme.colors.textCriticalPrimary, shape = CircleShape)
|
||||||
)
|
)
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue