diff --git a/secant/Features/BackupFlow/FeedbackGenerator.swift b/secant/Features/BackupFlow/FeedbackGenerator.swift index fd88ce1..83edd91 100644 --- a/secant/Features/BackupFlow/FeedbackGenerator.swift +++ b/secant/Features/BackupFlow/FeedbackGenerator.swift @@ -7,20 +7,16 @@ import UIKit -protocol FeedbackGenerator { - func generateFeedback() +struct FeedbackGenerator { + let generateFeedback: () -> Void } -/// use in case of testing or when real haptic feedback is not appropriate -class SilentFeedbackGenerator: FeedbackGenerator { - func generateFeedback() { } -} - -/// haptic feedback for the failures (when we want to amplify importance of the failure) -class ImpactFeedbackGenerator: FeedbackGenerator { - let generator = UINotificationFeedbackGenerator() +extension FeedbackGenerator { + static let haptic = FeedbackGenerator( + generateFeedback: { UINotificationFeedbackGenerator().notificationOccurred(.error) } + ) - func generateFeedback() { - generator.notificationOccurred(.error) - } + static let silent = FeedbackGenerator( + generateFeedback: { } + ) } diff --git a/secant/Features/BackupFlow/RecoveryPhraseDisplayStore.swift b/secant/Features/BackupFlow/RecoveryPhraseDisplayStore.swift index f480d03..424a13c 100644 --- a/secant/Features/BackupFlow/RecoveryPhraseDisplayStore.swift +++ b/secant/Features/BackupFlow/RecoveryPhraseDisplayStore.swift @@ -53,14 +53,14 @@ extension BackupPhraseEnvironment { mainQueue: DispatchQueue.main.eraseToAnyScheduler(), newPhrase: { Effect(value: .init(words: RecoveryPhrase.placeholder.words)) }, pasteboard: .test, - feedbackGenerator: SilentFeedbackGenerator() + feedbackGenerator: .silent ) static let live = Self( mainQueue: DispatchQueue.main.eraseToAnyScheduler(), newPhrase: { Effect(value: .init(words: RecoveryPhrase.placeholder.words)) }, pasteboard: .live, - feedbackGenerator: ImpactFeedbackGenerator() + feedbackGenerator: .haptic ) }