Go directly to the enter recovery key screen when coming from the banner which ask the user to do so.

This commit is contained in:
Benoit Marty 2024-02-21 09:43:24 +01:00 committed by Benoit Marty
parent a495548ada
commit 99b8efbeff
5 changed files with 16 additions and 1 deletions

View file

@ -255,6 +255,10 @@ class LoggedInFlowNode @AssistedInject constructor(
backstack.push(NavTarget.VerifySession) backstack.push(NavTarget.VerifySession)
} }
override fun onSessionConfirmRecoveryKeyClicked() {
backstack.push(NavTarget.SecureBackup(initialElement = SecureBackupEntryPoint.InitialTarget.EnterRecoveryKey))
}
override fun onInvitesClicked() { override fun onInvitesClicked() {
backstack.push(NavTarget.InviteList) backstack.push(NavTarget.InviteList)
} }

View file

@ -34,6 +34,7 @@ interface RoomListEntryPoint : FeatureEntryPoint {
fun onCreateRoomClicked() fun onCreateRoomClicked()
fun onSettingsClicked() fun onSettingsClicked()
fun onSessionVerificationClicked() fun onSessionVerificationClicked()
fun onSessionConfirmRecoveryKeyClicked()
fun onInvitesClicked() fun onInvitesClicked()
fun onRoomSettingsClicked(roomId: RoomId) fun onRoomSettingsClicked(roomId: RoomId)
fun onReportBugClicked() fun onReportBugClicked()

View file

@ -68,6 +68,10 @@ class RoomListNode @AssistedInject constructor(
plugins<RoomListEntryPoint.Callback>().forEach { it.onSessionVerificationClicked() } plugins<RoomListEntryPoint.Callback>().forEach { it.onSessionVerificationClicked() }
} }
private fun onSessionConfirmRecoveryKeyClicked() {
plugins<RoomListEntryPoint.Callback>().forEach { it.onSessionConfirmRecoveryKeyClicked() }
}
private fun onInvitesClicked() { private fun onInvitesClicked() {
plugins<RoomListEntryPoint.Callback>().forEach { it.onInvitesClicked() } plugins<RoomListEntryPoint.Callback>().forEach { it.onInvitesClicked() }
} }
@ -97,6 +101,7 @@ class RoomListNode @AssistedInject constructor(
onSettingsClicked = this::onOpenSettings, onSettingsClicked = this::onOpenSettings,
onCreateRoomClicked = this::onCreateRoomClicked, onCreateRoomClicked = this::onCreateRoomClicked,
onVerifyClicked = this::onSessionVerificationClicked, onVerifyClicked = this::onSessionVerificationClicked,
onConfirmRecoveryKeyClicked = this::onSessionConfirmRecoveryKeyClicked,
onInvitesClicked = this::onInvitesClicked, onInvitesClicked = this::onInvitesClicked,
onRoomSettingsClicked = this::onRoomSettingsClicked, onRoomSettingsClicked = this::onRoomSettingsClicked,
onMenuActionClicked = { onMenuActionClicked(activity, it) }, onMenuActionClicked = { onMenuActionClicked(activity, it) },

View file

@ -78,6 +78,7 @@ fun RoomListView(
onRoomClicked: (RoomId) -> Unit, onRoomClicked: (RoomId) -> Unit,
onSettingsClicked: () -> Unit, onSettingsClicked: () -> Unit,
onVerifyClicked: () -> Unit, onVerifyClicked: () -> Unit,
onConfirmRecoveryKeyClicked: () -> Unit,
onCreateRoomClicked: () -> Unit, onCreateRoomClicked: () -> Unit,
onInvitesClicked: () -> Unit, onInvitesClicked: () -> Unit,
onRoomSettingsClicked: (roomId: RoomId) -> Unit, onRoomSettingsClicked: (roomId: RoomId) -> Unit,
@ -109,6 +110,7 @@ fun RoomListView(
modifier = Modifier.padding(top = topPadding), modifier = Modifier.padding(top = topPadding),
state = state, state = state,
onVerifyClicked = onVerifyClicked, onVerifyClicked = onVerifyClicked,
onConfirmRecoveryKeyClicked = onConfirmRecoveryKeyClicked,
onRoomClicked = onRoomClicked, onRoomClicked = onRoomClicked,
onRoomLongClicked = { onRoomLongClicked(it) }, onRoomLongClicked = { onRoomLongClicked(it) },
onOpenSettings = onSettingsClicked, onOpenSettings = onSettingsClicked,
@ -166,6 +168,7 @@ private fun EmptyRoomListView(
private fun RoomListContent( private fun RoomListContent(
state: RoomListState, state: RoomListState,
onVerifyClicked: () -> Unit, onVerifyClicked: () -> Unit,
onConfirmRecoveryKeyClicked: () -> Unit,
onRoomClicked: (RoomId) -> Unit, onRoomClicked: (RoomId) -> Unit,
onRoomLongClicked: (RoomListRoomSummary) -> Unit, onRoomLongClicked: (RoomListRoomSummary) -> Unit,
onOpenSettings: () -> Unit, onOpenSettings: () -> Unit,
@ -238,7 +241,7 @@ private fun RoomListContent(
SecurityBannerState.RecoveryKeyConfirmation -> { SecurityBannerState.RecoveryKeyConfirmation -> {
item { item {
ConfirmRecoveryKeyBanner( ConfirmRecoveryKeyBanner(
onContinueClicked = onOpenSettings, onContinueClicked = onConfirmRecoveryKeyClicked,
onDismissClicked = { state.eventSink(RoomListEvents.DismissRecoveryKeyPrompt) } onDismissClicked = { state.eventSink(RoomListEvents.DismissRecoveryKeyPrompt) }
) )
} }
@ -304,6 +307,7 @@ internal fun RoomListViewPreview(@PreviewParameter(RoomListStateProvider::class)
onRoomClicked = {}, onRoomClicked = {},
onSettingsClicked = {}, onSettingsClicked = {},
onVerifyClicked = {}, onVerifyClicked = {},
onConfirmRecoveryKeyClicked = {},
onCreateRoomClicked = {}, onCreateRoomClicked = {},
onInvitesClicked = {}, onInvitesClicked = {},
onRoomSettingsClicked = {}, onRoomSettingsClicked = {},

View file

@ -142,6 +142,7 @@ class RoomListScreen(
onRoomClicked = ::onRoomClicked, onRoomClicked = ::onRoomClicked,
onSettingsClicked = {}, onSettingsClicked = {},
onVerifyClicked = {}, onVerifyClicked = {},
onConfirmRecoveryKeyClicked = {},
onCreateRoomClicked = {}, onCreateRoomClicked = {},
onInvitesClicked = {}, onInvitesClicked = {},
onRoomSettingsClicked = {}, onRoomSettingsClicked = {},