annotate GeoQuiz/SettingsModalView.swift @ 35:1b36c022f138

Change info files
author Dennis <dennis@denniscm.com>
date Fri, 11 Aug 2023 17:15:58 +0000
parents 9d6dd0e59c22
children
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
1 //
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
2 // SettingsModalView.swift
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
3 // GeoQuiz
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
4 //
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
5 // Created by Dennis Concepción Martín on 22/9/22.
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
6 //
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
7
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
8 import SwiftUI
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
9
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
10 struct SettingsModalView: View {
26
425078c01194 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
11 @ObservedObject var userController: UserController
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 14
diff changeset
12
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
13 @Environment(\.dismiss) var dismiss
10
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 9
diff changeset
14
31
9d6dd0e59c22 remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents: 30
diff changeset
15 let viewModel = ViewModel()
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
16
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
17 var body: some View {
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 14
diff changeset
18 NavigationStack {
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
19 Form {
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
20 Section {
26
425078c01194 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
21 Picker("❤️ Lives", selection: $userController.data.numberOfLives) {
31
9d6dd0e59c22 remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents: 30
diff changeset
22 ForEach(viewModel.lives, id: \.self) { numberOfLives in
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents: 7
diff changeset
23 Text("\(numberOfLives)")
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents: 7
diff changeset
24 .tag(numberOfLives)
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents: 7
diff changeset
25 }
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents: 7
diff changeset
26 }
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
27 } header: {
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
28 Text("General")
10
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 9
diff changeset
29 } footer: {
a793f33f05fb refactor code and fix layout
Dennis C. M. <dennis@denniscm.com>
parents: 9
diff changeset
30 Text("Number of lives at the beginning of each game.")
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
31 }
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
32
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
33 Section {
30
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
34 Toggle("Haptics", isOn: $userController.data.haptics)
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
35 Toggle("Sound effects", isOn: $userController.data.sound)
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
36 }
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
37
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
38 Section {
31
9d6dd0e59c22 remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents: 30
diff changeset
39 Picker("Flag aspect ratio", selection: $userController.data.guessTheFlagAspectRatio) {
9d6dd0e59c22 remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents: 30
diff changeset
40 ForEach(GuessTheFlagAspectRatio.allCases, id: \.self) { aspectRatio in
9d6dd0e59c22 remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents: 30
diff changeset
41 Text(aspectRatio.localizedName)
9d6dd0e59c22 remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents: 30
diff changeset
42 .tag(aspectRatio)
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
43 }
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
44 }
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
45 } header: {
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
46 Text("Guess the flag game")
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
47 }
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
48
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
49 Section {
30
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
50 Link(destination: URL(string: "https://dennistech.io")!) {
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
51 SettingsRow(
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
52 color: .mayaBlue,
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
53 symbol: "person.fill",
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
54 text: "About"
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
55 )
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
56 }
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
57
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
58 Link(destination: URL(string: "mailto:dmartin@dennistech.io")!) {
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
59 SettingsRow(
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
60 color: .chinaPink,
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
61 symbol: "ant.fill",
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
62 text: "Report bugs"
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
63 )
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
64 }
9
3540c7efc216 implement UserSettings
Dennis C. M. <dennis@denniscm.com>
parents: 7
diff changeset
65
30
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
66 Link(destination: URL(string: "https://twitter.com/dennistech_")!) {
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
67 SettingsRow(
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
68 color: .blueBell,
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
69 symbol: "message.fill",
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
70 text: "Twitter"
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
71 )
eb23effeede7 add DatasetView
Dennis C. M. <dennis@denniscm.com>
parents: 27
diff changeset
72 }
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
73 } footer: {
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
74 HStack {
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
75 Spacer()
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
76 VStack {
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
77 Text("© 2022 Dennis Technologies Ltd.")
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
78 Text("Proud to be indie.")
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
79
31
9d6dd0e59c22 remove dataset and add new screenshots
Dennis C. M. <dennis@denniscm.com>
parents: 30
diff changeset
80 if let versionNumber = viewModel.getVersion() {
27
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
81 Text("Version \(versionNumber)")
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
82 }
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
83 }
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
84 Spacer()
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
85 }
3f4b366d476d add flag layout settings
Dennis C. M. <dennis@denniscm.com>
parents: 26
diff changeset
86 .padding(.top)
7
d945e52b0704 implement dynamic map
Dennis C. M. <dennis@denniscm.com>
parents: 5
diff changeset
87 }
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
88 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
89 .navigationTitle("Settings")
19
f140bb277c96 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 14
diff changeset
90 .navigationBarTitleDisplayMode(.inline)
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
91 .toolbar {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
92 ToolbarItem(placement: .cancellationAction) {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
93 Button {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
94 dismiss()
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
95 } label: {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
96 Label("Exit", systemImage: "multiply")
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
97 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
98 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
99 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
100 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
101 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
102 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
103
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
104 struct SettingsModalView_Previews: PreviewProvider {
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
105 static var previews: some View {
26
425078c01194 refactor code
Dennis C. M. <dennis@denniscm.com>
parents: 20
diff changeset
106 SettingsModalView(userController: UserController())
5
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
107 }
f31a61462e7a add sound effects
Dennis C. M. <dennis@denniscm.com>
parents:
diff changeset
108 }