Rename Button to ButtonType to avoid confusion.
This commit is contained in:
parent
a10ac8aaab
commit
07be3d01b2
6 changed files with 53 additions and 53 deletions
|
|
@ -71,21 +71,21 @@ fun TimelineItemVoiceView(
|
|||
|
||||
val a11y = stringResource(CommonStrings.common_voice_message)
|
||||
val a11yActionLabel = stringResource(
|
||||
when (state.button) {
|
||||
VoiceMessageState.Button.Play -> CommonStrings.a11y_play
|
||||
VoiceMessageState.Button.Pause -> CommonStrings.a11y_pause
|
||||
VoiceMessageState.Button.Downloading -> CommonStrings.common_downloading
|
||||
VoiceMessageState.Button.Retry -> CommonStrings.action_retry
|
||||
VoiceMessageState.Button.Disabled -> CommonStrings.error_unknown
|
||||
when (state.buttonType) {
|
||||
VoiceMessageState.ButtonType.Play -> CommonStrings.a11y_play
|
||||
VoiceMessageState.ButtonType.Pause -> CommonStrings.a11y_pause
|
||||
VoiceMessageState.ButtonType.Downloading -> CommonStrings.common_downloading
|
||||
VoiceMessageState.ButtonType.Retry -> CommonStrings.action_retry
|
||||
VoiceMessageState.ButtonType.Disabled -> CommonStrings.error_unknown
|
||||
}
|
||||
)
|
||||
Row(
|
||||
modifier = modifier
|
||||
.clearAndSetSemantics {
|
||||
contentDescription = a11y
|
||||
if (state.button == VoiceMessageState.Button.Disabled) {
|
||||
if (state.buttonType == VoiceMessageState.ButtonType.Disabled) {
|
||||
disabled()
|
||||
} else if (state.button in listOf(VoiceMessageState.Button.Play, VoiceMessageState.Button.Pause)) {
|
||||
} else if (state.buttonType in listOf(VoiceMessageState.ButtonType.Play, VoiceMessageState.ButtonType.Pause)) {
|
||||
onClick(label = a11yActionLabel) {
|
||||
playPause()
|
||||
true
|
||||
|
|
@ -103,12 +103,12 @@ fun TimelineItemVoiceView(
|
|||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
if (!isTalkbackActive()) {
|
||||
when (state.button) {
|
||||
VoiceMessageState.Button.Play -> PlayButton(onClick = ::playPause)
|
||||
VoiceMessageState.Button.Pause -> PauseButton(onClick = ::playPause)
|
||||
VoiceMessageState.Button.Downloading -> ProgressButton()
|
||||
VoiceMessageState.Button.Retry -> RetryButton(onClick = ::playPause)
|
||||
VoiceMessageState.Button.Disabled -> PlayButton(onClick = {}, enabled = false)
|
||||
when (state.buttonType) {
|
||||
VoiceMessageState.ButtonType.Play -> PlayButton(onClick = ::playPause)
|
||||
VoiceMessageState.ButtonType.Pause -> PauseButton(onClick = ::playPause)
|
||||
VoiceMessageState.ButtonType.Downloading -> ProgressButton()
|
||||
VoiceMessageState.ButtonType.Retry -> RetryButton(onClick = ::playPause)
|
||||
VoiceMessageState.ButtonType.Disabled -> PlayButton(onClick = {}, enabled = false)
|
||||
}
|
||||
}
|
||||
Spacer(Modifier.width(8.dp))
|
||||
|
|
|
|||
|
|
@ -114,12 +114,12 @@ private fun VoiceInfoRow(
|
|||
.padding(start = 12.dp, end = 36.dp, top = 8.dp, bottom = 8.dp),
|
||||
verticalAlignment = Alignment.CenterVertically,
|
||||
) {
|
||||
when (state.button) {
|
||||
VoiceMessageState.Button.Play -> PlayButton(onClick = ::playPause)
|
||||
VoiceMessageState.Button.Pause -> PauseButton(onClick = ::playPause)
|
||||
VoiceMessageState.Button.Downloading -> ProgressButton()
|
||||
VoiceMessageState.Button.Retry -> RetryButton(onClick = ::playPause)
|
||||
VoiceMessageState.Button.Disabled -> PlayButton(onClick = {}, enabled = false)
|
||||
when (state.buttonType) {
|
||||
VoiceMessageState.ButtonType.Play -> PlayButton(onClick = ::playPause)
|
||||
VoiceMessageState.ButtonType.Pause -> PauseButton(onClick = ::playPause)
|
||||
VoiceMessageState.ButtonType.Downloading -> ProgressButton()
|
||||
VoiceMessageState.ButtonType.Retry -> RetryButton(onClick = ::playPause)
|
||||
VoiceMessageState.ButtonType.Disabled -> PlayButton(onClick = {}, enabled = false)
|
||||
}
|
||||
Spacer(Modifier.width(8.dp))
|
||||
Column(
|
||||
|
|
|
|||
|
|
@ -9,14 +9,14 @@
|
|||
package io.element.android.libraries.voiceplayer.api
|
||||
|
||||
data class VoiceMessageState(
|
||||
val button: Button,
|
||||
val buttonType: ButtonType,
|
||||
val progress: Float,
|
||||
val time: String,
|
||||
val showCursor: Boolean,
|
||||
val playbackSpeed: Float,
|
||||
val eventSink: (event: VoiceMessageEvent) -> Unit,
|
||||
) {
|
||||
enum class Button {
|
||||
enum class ButtonType {
|
||||
Play,
|
||||
Pause,
|
||||
Downloading,
|
||||
|
|
|
|||
|
|
@ -14,29 +14,29 @@ open class VoiceMessageStateProvider : PreviewParameterProvider<VoiceMessageStat
|
|||
override val values: Sequence<VoiceMessageState>
|
||||
get() = sequenceOf(
|
||||
aVoiceMessageState(
|
||||
VoiceMessageState.Button.Downloading,
|
||||
VoiceMessageState.ButtonType.Downloading,
|
||||
progress = 0f,
|
||||
time = "0:00",
|
||||
),
|
||||
aVoiceMessageState(
|
||||
VoiceMessageState.Button.Retry,
|
||||
VoiceMessageState.ButtonType.Retry,
|
||||
progress = 0.5f,
|
||||
time = "0:01",
|
||||
),
|
||||
aVoiceMessageState(
|
||||
VoiceMessageState.Button.Play,
|
||||
VoiceMessageState.ButtonType.Play,
|
||||
progress = 1f,
|
||||
time = "1:00",
|
||||
showCursor = true,
|
||||
),
|
||||
aVoiceMessageState(
|
||||
VoiceMessageState.Button.Pause,
|
||||
VoiceMessageState.ButtonType.Pause,
|
||||
progress = 0.2f,
|
||||
time = "10:00",
|
||||
showCursor = true,
|
||||
),
|
||||
aVoiceMessageState(
|
||||
VoiceMessageState.Button.Disabled,
|
||||
VoiceMessageState.ButtonType.Disabled,
|
||||
progress = 0.2f,
|
||||
time = "30:00",
|
||||
),
|
||||
|
|
@ -44,13 +44,13 @@ open class VoiceMessageStateProvider : PreviewParameterProvider<VoiceMessageStat
|
|||
}
|
||||
|
||||
fun aVoiceMessageState(
|
||||
button: VoiceMessageState.Button = VoiceMessageState.Button.Play,
|
||||
buttonType: VoiceMessageState.ButtonType = VoiceMessageState.ButtonType.Play,
|
||||
progress: Float = 0f,
|
||||
time: String = "1:00",
|
||||
showCursor: Boolean = false,
|
||||
playbackSpeed: Float = 1.0f,
|
||||
) = VoiceMessageState(
|
||||
button = button,
|
||||
buttonType = buttonType,
|
||||
progress = progress,
|
||||
time = time,
|
||||
showCursor = showCursor,
|
||||
|
|
|
|||
|
|
@ -53,14 +53,14 @@ class VoiceMessagePresenter(
|
|||
)
|
||||
)
|
||||
|
||||
val button by remember {
|
||||
val buttonType by remember {
|
||||
derivedStateOf {
|
||||
when {
|
||||
eventId == null -> VoiceMessageState.Button.Disabled
|
||||
playerState.isPlaying -> VoiceMessageState.Button.Pause
|
||||
play.value is AsyncData.Loading -> VoiceMessageState.Button.Downloading
|
||||
play.value is AsyncData.Failure -> VoiceMessageState.Button.Retry
|
||||
else -> VoiceMessageState.Button.Play
|
||||
eventId == null -> VoiceMessageState.ButtonType.Disabled
|
||||
playerState.isPlaying -> VoiceMessageState.ButtonType.Pause
|
||||
play.value is AsyncData.Loading -> VoiceMessageState.ButtonType.Downloading
|
||||
play.value is AsyncData.Failure -> VoiceMessageState.ButtonType.Retry
|
||||
else -> VoiceMessageState.ButtonType.Play
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
@ -122,7 +122,7 @@ class VoiceMessagePresenter(
|
|||
}
|
||||
|
||||
return VoiceMessageState(
|
||||
button = button,
|
||||
buttonType = buttonType,
|
||||
progress = progress,
|
||||
time = time,
|
||||
showCursor = showCursor,
|
||||
|
|
|
|||
|
|
@ -31,7 +31,7 @@ class VoiceMessagePresenterTest {
|
|||
val presenter = createVoiceMessagePresenter()
|
||||
presenter.test {
|
||||
awaitItem().let {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("1:01")
|
||||
}
|
||||
|
|
@ -46,7 +46,7 @@ class VoiceMessagePresenterTest {
|
|||
)
|
||||
presenter.test {
|
||||
val initialState = awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:02")
|
||||
}
|
||||
|
|
@ -54,17 +54,17 @@ class VoiceMessagePresenterTest {
|
|||
initialState.eventSink(VoiceMessageEvent.PlayPause)
|
||||
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Downloading)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:02")
|
||||
}
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Downloading)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:00")
|
||||
}
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Pause)
|
||||
assertThat(it.progress).isEqualTo(0.5f)
|
||||
assertThat(it.time).isEqualTo("0:01")
|
||||
}
|
||||
|
|
@ -82,7 +82,7 @@ class VoiceMessagePresenterTest {
|
|||
)
|
||||
presenter.test {
|
||||
val initialState = awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:02")
|
||||
}
|
||||
|
|
@ -90,12 +90,12 @@ class VoiceMessagePresenterTest {
|
|||
initialState.eventSink(VoiceMessageEvent.PlayPause)
|
||||
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Downloading)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Downloading)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:02")
|
||||
}
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Retry)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Retry)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:02")
|
||||
}
|
||||
|
|
@ -116,7 +116,7 @@ class VoiceMessagePresenterTest {
|
|||
)
|
||||
presenter.test {
|
||||
val initialState = awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:02")
|
||||
}
|
||||
|
|
@ -125,14 +125,14 @@ class VoiceMessagePresenterTest {
|
|||
skipItems(2) // skip downloading states
|
||||
|
||||
val playingState = awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Pause)
|
||||
assertThat(it.progress).isEqualTo(0.5f)
|
||||
assertThat(it.time).isEqualTo("0:01")
|
||||
}
|
||||
|
||||
playingState.eventSink(VoiceMessageEvent.PlayPause)
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0.5f)
|
||||
assertThat(it.time).isEqualTo("0:01")
|
||||
}
|
||||
|
|
@ -146,7 +146,7 @@ class VoiceMessagePresenterTest {
|
|||
)
|
||||
presenter.test {
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Disabled)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Disabled)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("1:01")
|
||||
}
|
||||
|
|
@ -161,7 +161,7 @@ class VoiceMessagePresenterTest {
|
|||
)
|
||||
presenter.test {
|
||||
val initialState = awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:10")
|
||||
}
|
||||
|
|
@ -169,7 +169,7 @@ class VoiceMessagePresenterTest {
|
|||
initialState.eventSink(VoiceMessageEvent.Seek(0.5f))
|
||||
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0.5f)
|
||||
assertThat(it.time).isEqualTo("0:05")
|
||||
}
|
||||
|
|
@ -183,7 +183,7 @@ class VoiceMessagePresenterTest {
|
|||
)
|
||||
presenter.test {
|
||||
val initialState = awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Play)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Play)
|
||||
assertThat(it.progress).isEqualTo(0f)
|
||||
assertThat(it.time).isEqualTo("0:10")
|
||||
}
|
||||
|
|
@ -193,14 +193,14 @@ class VoiceMessagePresenterTest {
|
|||
skipItems(2) // skip downloading states
|
||||
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Pause)
|
||||
assertThat(it.progress).isEqualTo(0.1f)
|
||||
assertThat(it.time).isEqualTo("0:01")
|
||||
it.eventSink(VoiceMessageEvent.Seek(0.5f))
|
||||
}
|
||||
|
||||
awaitItem().also {
|
||||
assertThat(it.button).isEqualTo(VoiceMessageState.Button.Pause)
|
||||
assertThat(it.buttonType).isEqualTo(VoiceMessageState.ButtonType.Pause)
|
||||
assertThat(it.progress).isEqualTo(0.5f)
|
||||
assertThat(it.time).isEqualTo("0:05")
|
||||
}
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue