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