LockScreenSettingsEvents -> LockScreenSettingsEvent
This commit is contained in:
parent
2c5ede5f15
commit
74d3014b2d
5 changed files with 22 additions and 22 deletions
|
|
@ -8,9 +8,9 @@
|
||||||
|
|
||||||
package io.element.android.features.lockscreen.impl.settings
|
package io.element.android.features.lockscreen.impl.settings
|
||||||
|
|
||||||
sealed interface LockScreenSettingsEvents {
|
sealed interface LockScreenSettingsEvent {
|
||||||
data object OnRemovePin : LockScreenSettingsEvents
|
data object OnRemovePin : LockScreenSettingsEvent
|
||||||
data object ConfirmRemovePin : LockScreenSettingsEvents
|
data object ConfirmRemovePin : LockScreenSettingsEvent
|
||||||
data object CancelRemovePin : LockScreenSettingsEvents
|
data object CancelRemovePin : LockScreenSettingsEvent
|
||||||
data object ToggleBiometricAllowed : LockScreenSettingsEvents
|
data object ToggleBiometricAllowed : LockScreenSettingsEvent
|
||||||
}
|
}
|
||||||
|
|
@ -51,10 +51,10 @@ class LockScreenSettingsPresenter(
|
||||||
|
|
||||||
val biometricUnlock = biometricAuthenticatorManager.rememberConfirmBiometricAuthenticator()
|
val biometricUnlock = biometricAuthenticatorManager.rememberConfirmBiometricAuthenticator()
|
||||||
|
|
||||||
fun handleEvent(event: LockScreenSettingsEvents) {
|
fun handleEvent(event: LockScreenSettingsEvent) {
|
||||||
when (event) {
|
when (event) {
|
||||||
LockScreenSettingsEvents.CancelRemovePin -> showRemovePinConfirmation = false
|
LockScreenSettingsEvent.CancelRemovePin -> showRemovePinConfirmation = false
|
||||||
LockScreenSettingsEvents.ConfirmRemovePin -> {
|
LockScreenSettingsEvent.ConfirmRemovePin -> {
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
if (showRemovePinConfirmation) {
|
if (showRemovePinConfirmation) {
|
||||||
showRemovePinConfirmation = false
|
showRemovePinConfirmation = false
|
||||||
|
|
@ -62,8 +62,8 @@ class LockScreenSettingsPresenter(
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
LockScreenSettingsEvents.OnRemovePin -> showRemovePinConfirmation = true
|
LockScreenSettingsEvent.OnRemovePin -> showRemovePinConfirmation = true
|
||||||
LockScreenSettingsEvents.ToggleBiometricAllowed -> {
|
LockScreenSettingsEvent.ToggleBiometricAllowed -> {
|
||||||
coroutineScope.launch {
|
coroutineScope.launch {
|
||||||
if (!isBiometricEnabled) {
|
if (!isBiometricEnabled) {
|
||||||
biometricUnlock.setup()
|
biometricUnlock.setup()
|
||||||
|
|
|
||||||
|
|
@ -13,5 +13,5 @@ data class LockScreenSettingsState(
|
||||||
val isBiometricEnabled: Boolean,
|
val isBiometricEnabled: Boolean,
|
||||||
val showRemovePinConfirmation: Boolean,
|
val showRemovePinConfirmation: Boolean,
|
||||||
val showToggleBiometric: Boolean,
|
val showToggleBiometric: Boolean,
|
||||||
val eventSink: (LockScreenSettingsEvents) -> Unit
|
val eventSink: (LockScreenSettingsEvent) -> Unit
|
||||||
)
|
)
|
||||||
|
|
|
||||||
|
|
@ -51,7 +51,7 @@ fun LockScreenSettingsView(
|
||||||
},
|
},
|
||||||
style = ListItemStyle.Destructive,
|
style = ListItemStyle.Destructive,
|
||||||
onClick = {
|
onClick = {
|
||||||
state.eventSink(LockScreenSettingsEvents.OnRemovePin)
|
state.eventSink(LockScreenSettingsEvent.OnRemovePin)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -61,7 +61,7 @@ fun LockScreenSettingsView(
|
||||||
title = stringResource(id = R.string.screen_app_lock_settings_enable_biometric_unlock),
|
title = stringResource(id = R.string.screen_app_lock_settings_enable_biometric_unlock),
|
||||||
isChecked = state.isBiometricEnabled,
|
isChecked = state.isBiometricEnabled,
|
||||||
onCheckedChange = {
|
onCheckedChange = {
|
||||||
state.eventSink(LockScreenSettingsEvents.ToggleBiometricAllowed)
|
state.eventSink(LockScreenSettingsEvent.ToggleBiometricAllowed)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
@ -72,10 +72,10 @@ fun LockScreenSettingsView(
|
||||||
title = stringResource(id = R.string.screen_app_lock_settings_remove_pin_alert_title),
|
title = stringResource(id = R.string.screen_app_lock_settings_remove_pin_alert_title),
|
||||||
content = stringResource(id = R.string.screen_app_lock_settings_remove_pin_alert_message),
|
content = stringResource(id = R.string.screen_app_lock_settings_remove_pin_alert_message),
|
||||||
onSubmitClick = {
|
onSubmitClick = {
|
||||||
state.eventSink(LockScreenSettingsEvents.ConfirmRemovePin)
|
state.eventSink(LockScreenSettingsEvent.ConfirmRemovePin)
|
||||||
},
|
},
|
||||||
onDismiss = {
|
onDismiss = {
|
||||||
state.eventSink(LockScreenSettingsEvents.CancelRemovePin)
|
state.eventSink(LockScreenSettingsEvent.CancelRemovePin)
|
||||||
}
|
}
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
|
|
|
||||||
|
|
@ -43,19 +43,19 @@ class LockScreenSettingsPresenterTest {
|
||||||
consumeItemsUntilPredicate { state ->
|
consumeItemsUntilPredicate { state ->
|
||||||
state.showRemovePinOption
|
state.showRemovePinOption
|
||||||
}.last().also { state ->
|
}.last().also { state ->
|
||||||
state.eventSink(LockScreenSettingsEvents.OnRemovePin)
|
state.eventSink(LockScreenSettingsEvent.OnRemovePin)
|
||||||
}
|
}
|
||||||
awaitLastSequentialItem().also { state ->
|
awaitLastSequentialItem().also { state ->
|
||||||
assertThat(state.showRemovePinConfirmation).isTrue()
|
assertThat(state.showRemovePinConfirmation).isTrue()
|
||||||
state.eventSink(LockScreenSettingsEvents.CancelRemovePin)
|
state.eventSink(LockScreenSettingsEvent.CancelRemovePin)
|
||||||
}
|
}
|
||||||
awaitLastSequentialItem().also { state ->
|
awaitLastSequentialItem().also { state ->
|
||||||
assertThat(state.showRemovePinConfirmation).isFalse()
|
assertThat(state.showRemovePinConfirmation).isFalse()
|
||||||
state.eventSink(LockScreenSettingsEvents.OnRemovePin)
|
state.eventSink(LockScreenSettingsEvent.OnRemovePin)
|
||||||
}
|
}
|
||||||
awaitLastSequentialItem().also { state ->
|
awaitLastSequentialItem().also { state ->
|
||||||
assertThat(state.showRemovePinConfirmation).isTrue()
|
assertThat(state.showRemovePinConfirmation).isTrue()
|
||||||
state.eventSink(LockScreenSettingsEvents.ConfirmRemovePin)
|
state.eventSink(LockScreenSettingsEvent.ConfirmRemovePin)
|
||||||
}
|
}
|
||||||
consumeItemsUntilPredicate {
|
consumeItemsUntilPredicate {
|
||||||
it.showRemovePinOption.not()
|
it.showRemovePinOption.not()
|
||||||
|
|
@ -93,7 +93,7 @@ class LockScreenSettingsPresenterTest {
|
||||||
presenter.test {
|
presenter.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
state.eventSink(LockScreenSettingsEvents.ToggleBiometricAllowed)
|
state.eventSink(LockScreenSettingsEvent.ToggleBiometricAllowed)
|
||||||
}
|
}
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
assertThat(state.isBiometricEnabled).isTrue()
|
assertThat(state.isBiometricEnabled).isTrue()
|
||||||
|
|
@ -114,7 +114,7 @@ class LockScreenSettingsPresenterTest {
|
||||||
presenter.test {
|
presenter.test {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
state.eventSink(LockScreenSettingsEvents.ToggleBiometricAllowed)
|
state.eventSink(LockScreenSettingsEvent.ToggleBiometricAllowed)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
@ -137,7 +137,7 @@ class LockScreenSettingsPresenterTest {
|
||||||
skipItems(1)
|
skipItems(1)
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
assertThat(state.isBiometricEnabled).isTrue()
|
assertThat(state.isBiometricEnabled).isTrue()
|
||||||
state.eventSink(LockScreenSettingsEvents.ToggleBiometricAllowed)
|
state.eventSink(LockScreenSettingsEvent.ToggleBiometricAllowed)
|
||||||
}
|
}
|
||||||
awaitItem().also { state ->
|
awaitItem().also { state ->
|
||||||
assertThat(state.isBiometricEnabled).isFalse()
|
assertThat(state.isBiometricEnabled).isFalse()
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue