mirror of
https://github.com/Novaloop-AG/element-x-ios.git
synced 2026-11-04 01:20:12 +00:00
Directly show Recovery Key and Encryption Reset screens from the home screen banner. (#3482)
This commit is contained in:
@@ -20,7 +20,8 @@ enum HomeScreenCoordinatorAction {
|
||||
case roomLeft(roomIdentifier: String)
|
||||
case presentSettingsScreen
|
||||
case presentFeedbackScreen
|
||||
case presentSecureBackupSettings
|
||||
case presentRecoveryKeyScreen
|
||||
case presentEncryptionResetScreen
|
||||
case presentStartChatScreen
|
||||
case presentGlobalSearch
|
||||
case presentRoomDirectorySearch
|
||||
@@ -63,8 +64,10 @@ final class HomeScreenCoordinator: CoordinatorProtocol {
|
||||
actionsSubject.send(.presentFeedbackScreen)
|
||||
case .presentSettingsScreen:
|
||||
actionsSubject.send(.presentSettingsScreen)
|
||||
case .presentSecureBackupSettings:
|
||||
actionsSubject.send(.presentSecureBackupSettings)
|
||||
case .presentRecoveryKeyScreen:
|
||||
actionsSubject.send(.presentRecoveryKeyScreen)
|
||||
case .presentEncryptionResetScreen:
|
||||
actionsSubject.send(.presentEncryptionResetScreen)
|
||||
case .presentStartChatScreen:
|
||||
actionsSubject.send(.presentStartChatScreen)
|
||||
case .presentGlobalSearch:
|
||||
|
||||
@@ -13,7 +13,8 @@ enum HomeScreenViewModelAction {
|
||||
case presentRoom(roomIdentifier: String)
|
||||
case presentRoomDetails(roomIdentifier: String)
|
||||
case roomLeft(roomIdentifier: String)
|
||||
case presentSecureBackupSettings
|
||||
case presentRecoveryKeyScreen
|
||||
case presentEncryptionResetScreen
|
||||
case presentSettingsScreen
|
||||
case presentFeedbackScreen
|
||||
case presentStartChatScreen
|
||||
@@ -30,7 +31,8 @@ enum HomeScreenViewAction {
|
||||
case confirmLeaveRoom(roomIdentifier: String)
|
||||
case showSettings
|
||||
case startChat
|
||||
case confirmRecoveryKey
|
||||
case manageRecoveryKey
|
||||
case resetEncryption
|
||||
case skipRecoveryKeyConfirmation
|
||||
case confirmSlidingSyncUpgrade
|
||||
case skipSlidingSyncUpgrade
|
||||
|
||||
@@ -138,8 +138,10 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
|
||||
Task { await leaveRoom(roomID: roomIdentifier) }
|
||||
case .showSettings:
|
||||
actionsSubject.send(.presentSettingsScreen)
|
||||
case .confirmRecoveryKey:
|
||||
actionsSubject.send(.presentSecureBackupSettings)
|
||||
case .manageRecoveryKey:
|
||||
actionsSubject.send(.presentRecoveryKeyScreen)
|
||||
case .resetEncryption:
|
||||
actionsSubject.send(.presentEncryptionResetScreen)
|
||||
case .skipRecoveryKeyConfirmation:
|
||||
state.securityBannerMode = .dismissed
|
||||
case .confirmSlidingSyncUpgrade:
|
||||
|
||||
+9
-2
@@ -56,14 +56,21 @@ struct HomeScreenRecoveryKeyConfirmationBanner: View {
|
||||
var buttons: some View {
|
||||
VStack(spacing: 16) {
|
||||
Button(actionTitle) {
|
||||
context.send(viewAction: .confirmRecoveryKey)
|
||||
context.send(viewAction: .manageRecoveryKey)
|
||||
}
|
||||
.frame(maxWidth: .infinity)
|
||||
.buttonStyle(.compound(.primary, size: .medium))
|
||||
.accessibilityIdentifier(A11yIdentifiers.homeScreen.recoveryKeyConfirmationBannerContinue)
|
||||
|
||||
if !requiresExtraAccountSetup {
|
||||
// Missing encryption reset button to goes here once the flow exists.
|
||||
Button {
|
||||
context.send(viewAction: .resetEncryption)
|
||||
} label: {
|
||||
Text(L10n.confirmRecoveryKeyBannerSecondaryButtonTitle)
|
||||
.padding(.vertical, 7)
|
||||
.frame(maxWidth: .infinity)
|
||||
}
|
||||
.buttonStyle(.compound(.plain, size: .medium))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user