Tweak the flow for setting up a recovery key. (#3463)

* Remove unwanted title.

* Update SecureBackupScreen strings.

* Update SecureBackupRecoveryKeyScreen.

* Show the recovery banner when recovery needs setting up.

* Fix SecureBackupScreen title.

* Fix timeout on MP4 encoding tests
This commit is contained in:
Doug
2024-10-29 15:59:22 +00:00
committed by GitHub
parent 076ef3e914
commit c11e49f962
34 changed files with 85 additions and 77 deletions
@@ -58,7 +58,7 @@ class HomeScreenViewModel: HomeScreenViewModelType, HomeScreenViewModelProtocol
switch (securityState.verificationState, securityState.recoveryState) {
case (.verified, .disabled):
state.requiresExtraAccountSetup = true
state.securityBannerMode = .none
state.securityBannerMode = .show
case (.verified, .incomplete):
state.requiresExtraAccountSetup = true
@@ -130,7 +130,7 @@ struct HomeScreenContent: View {
if context.viewState.slidingSyncMigrationBannerMode == .show {
HomeScreenSlidingSyncMigrationBanner(context: context)
} else if context.viewState.securityBannerMode == .show {
HomeScreenRecoveryKeyConfirmationBanner(context: context)
HomeScreenRecoveryKeyConfirmationBanner(requiresExtraAccountSetup: context.viewState.requiresExtraAccountSetup, context: context)
}
}
.background(Color.compound.bgCanvasDefault)
@@ -9,13 +9,18 @@ import Combine
import SwiftUI
struct HomeScreenRecoveryKeyConfirmationBanner: View {
let requiresExtraAccountSetup: Bool
var context: HomeScreenViewModel.Context
var title: String { requiresExtraAccountSetup ? L10n.bannerSetUpRecoveryTitle : L10n.confirmRecoveryKeyBannerTitle }
var message: String { requiresExtraAccountSetup ? L10n.bannerSetUpRecoveryContent : L10n.confirmRecoveryKeyBannerMessage }
var actionTitle: String { requiresExtraAccountSetup ? L10n.bannerSetUpRecoverySubmit : L10n.actionContinue }
var body: some View {
VStack(alignment: .leading, spacing: 16) {
VStack(alignment: .leading, spacing: 4) {
HStack(spacing: 16) {
Text(L10n.confirmRecoveryKeyBannerTitle)
Text(title)
.font(.compound.bodyLGSemibold)
.foregroundColor(.compound.textPrimary)
@@ -29,12 +34,12 @@ struct HomeScreenRecoveryKeyConfirmationBanner: View {
.frame(width: 12, height: 12)
}
}
Text(L10n.confirmRecoveryKeyBannerMessage)
Text(message)
.font(.compound.bodyMD)
.foregroundColor(.compound.textSecondary)
}
Button(L10n.actionContinue) {
Button(actionTitle) {
context.send(viewAction: .confirmRecoveryKey)
}
.frame(maxWidth: .infinity)
@@ -52,7 +57,12 @@ struct HomeScreenRecoveryKeyConfirmationBanner_Previews: PreviewProvider, Testab
static let viewModel = buildViewModel()
static var previews: some View {
HomeScreenRecoveryKeyConfirmationBanner(context: viewModel.context)
HomeScreenRecoveryKeyConfirmationBanner(requiresExtraAccountSetup: true,
context: viewModel.context)
.previewDisplayName("Set up recovery")
HomeScreenRecoveryKeyConfirmationBanner(requiresExtraAccountSetup: false,
context: viewModel.context)
.previewDisplayName("Out of sync")
}
static func buildViewModel() -> HomeScreenViewModel {