@@ -22,6 +22,7 @@ import SwiftUI
2222struct OnboardingDebugView : View {
2323
2424 @StateObject private var viewModel = OnboardingDebugViewModel ( )
25+ @State private var isShowingResetDaxDialogsAlert = false
2526
2627 private let newOnboardingIntroStartAction : ( ) -> Void
2728
@@ -45,8 +46,13 @@ struct OnboardingDebugView: View {
4546 }
4647
4748 Section {
48- Toggle (
49- isOn: $viewModel. isOnboardingAddToDockLocalFlagEnabled,
49+ Picker (
50+ selection: $viewModel. onboardingAddToDockLocalFlagState,
51+ content: {
52+ ForEach ( OnboardingAddToDockState . allCases) { state in
53+ Text ( verbatim: state. description) . tag ( state)
54+ }
55+ } ,
5056 label: {
5157 Text ( verbatim: " Onboarding Add to Dock local setting enabled " )
5258 }
@@ -57,6 +63,18 @@ struct OnboardingDebugView: View {
5763 Text ( verbatim: " Requires internal user flag set to have an effect. " )
5864 }
5965
66+ Section {
67+ Button ( action: {
68+ viewModel. resetDaxDialogs ( )
69+ isShowingResetDaxDialogsAlert = true
70+ } , label: {
71+ Text ( verbatim: " Reset Dax Dialogs State " )
72+ } )
73+ . alert ( isPresented: $isShowingResetDaxDialogsAlert, content: {
74+ Alert ( title: Text ( verbatim: " Dax Dialogs reset " ) , dismissButton: . cancel( ) )
75+ } )
76+ }
77+
6078 Section {
6179 Button ( action: newOnboardingIntroStartAction, label: {
6280 let onboardingType = viewModel. isOnboardingHighlightsLocalFlagEnabled ? " Highlights " : " "
@@ -74,22 +92,44 @@ final class OnboardingDebugViewModel: ObservableObject {
7492 }
7593 }
7694
77- @Published var isOnboardingAddToDockLocalFlagEnabled : Bool {
95+ @Published var onboardingAddToDockLocalFlagState : OnboardingAddToDockState {
7896 didSet {
79- manager. isAddToDockLocalFlagEnabled = isOnboardingAddToDockLocalFlagEnabled
97+ manager. addToDockLocalFlagState = onboardingAddToDockLocalFlagState
8098 }
8199 }
82100
83101 private let manager : OnboardingHighlightsDebugging & OnboardingAddToDockDebugging
102+ private var settings : DaxDialogsSettings
84103
85- init ( manager: OnboardingHighlightsDebugging & OnboardingAddToDockDebugging = OnboardingManager ( ) ) {
104+ init ( manager: OnboardingHighlightsDebugging & OnboardingAddToDockDebugging = OnboardingManager ( ) , settings : DaxDialogsSettings = DefaultDaxDialogsSettings ( ) ) {
86105 self . manager = manager
106+ self . settings = settings
87107 isOnboardingHighlightsLocalFlagEnabled = manager. isOnboardingHighlightsLocalFlagEnabled
88- isOnboardingAddToDockLocalFlagEnabled = manager. isAddToDockLocalFlagEnabled
108+ onboardingAddToDockLocalFlagState = manager. addToDockLocalFlagState
89109 }
90110
111+ func resetDaxDialogs( ) {
112+ settings. isDismissed = false
113+ settings. homeScreenMessagesSeen = 0
114+ settings. browsingAfterSearchShown = false
115+ settings. browsingWithTrackersShown = false
116+ settings. browsingWithoutTrackersShown = false
117+ settings. browsingMajorTrackingSiteShown = false
118+ settings. fireMessageExperimentShown = false
119+ settings. fireButtonPulseDateShown = nil
120+ settings. privacyButtonPulseShown = false
121+ settings. browsingFinalDialogShown = false
122+ settings. lastVisitedOnboardingWebsiteURLPath = nil
123+ settings. lastShownContextualOnboardingDialogType = nil
124+ }
91125}
92126
93127#Preview {
94128 OnboardingDebugView ( onNewOnboardingIntroStartAction: { } )
95129}
130+
131+ extension OnboardingAddToDockState : Identifiable {
132+ var id : OnboardingAddToDockState {
133+ self
134+ }
135+ }
0 commit comments