Skip to content

Commit a1ac51b

Browse files
committed
style: rework onboarding flow UI
1 parent 7c0dc09 commit a1ac51b

16 files changed

+3257
-5643
lines changed

DanaKit.xcodeproj/project.pbxproj

Lines changed: 0 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -118,15 +118,12 @@
118118
B88516952B30C7170063402A /* NibLoadable.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88516942B30C7170063402A /* NibLoadable.swift */; };
119119
B88516972B30CA860063402A /* DanaKitHUDProvider.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88516962B30CA860063402A /* DanaKitHUDProvider.swift */; };
120120
B88516992B30D6EC0063402A /* DanaUICoordinator.swift in Sources */ = {isa = PBXBuildFile; fileRef = B88516982B30D6EC0063402A /* DanaUICoordinator.swift */; };
121-
B885169B2B30D8140063402A /* DanaKitDebugView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B885169A2B30D8140063402A /* DanaKitDebugView.swift */; };
122121
B8A0163F2B433E000054AECA /* InsulinTypeConfirmation.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8A0163E2B433E000054AECA /* InsulinTypeConfirmation.swift */; };
123122
B8C3125C2CAF1DB9007E9961 /* DanaKitRefillReservoirCannulaViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C3125B2CAF1DB8007E9961 /* DanaKitRefillReservoirCannulaViewModel.swift */; };
124123
B8C3125E2CAF1DCE007E9961 /* DanaKitRefillReservoirCannula.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8C3125D2CAF1DCD007E9961 /* DanaKitRefillReservoirCannula.swift */; };
125124
B8F4DCA42B94C06100AB00E6 /* Image.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4DCA32B94C06100AB00E6 /* Image.swift */; };
126125
B8F4DCA62B94C0D800AB00E6 /* DanaIExplainationView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4DCA52B94C0D800AB00E6 /* DanaIExplainationView.swift */; };
127126
B8F4DCA82B94C0E700AB00E6 /* DanaRSv3Explaination.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4DCA72B94C0E700AB00E6 /* DanaRSv3Explaination.swift */; };
128-
B8F4DCAA2B94C0F900AB00E6 /* DanaRSv1Explaination.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4DCA92B94C0F900AB00E6 /* DanaRSv1Explaination.swift */; };
129-
B8F4DCAC2B94C10800AB00E6 /* DanaRSv1Password.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4DCAB2B94C10800AB00E6 /* DanaRSv1Password.swift */; };
130127
B8F4DCAE2B94CF8100AB00E6 /* ContinueButton.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4DCAD2B94CF8100AB00E6 /* ContinueButton.swift */; };
131128
B8F4DCB22B97290800AB00E6 /* InsulinTypeView.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4DCB12B97290800AB00E6 /* InsulinTypeView.swift */; };
132129
B8F4E1A82B83D28A000F4AE1 /* BackgroundTask.swift in Sources */ = {isa = PBXBuildFile; fileRef = B8F4E1A72B83D28A000F4AE1 /* BackgroundTask.swift */; };
@@ -273,15 +270,12 @@
273270
B88516942B30C7170063402A /* NibLoadable.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = NibLoadable.swift; sourceTree = "<group>"; };
274271
B88516962B30CA860063402A /* DanaKitHUDProvider.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaKitHUDProvider.swift; sourceTree = "<group>"; };
275272
B88516982B30D6EC0063402A /* DanaUICoordinator.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaUICoordinator.swift; sourceTree = "<group>"; };
276-
B885169A2B30D8140063402A /* DanaKitDebugView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaKitDebugView.swift; sourceTree = "<group>"; };
277273
B8A0163E2B433E000054AECA /* InsulinTypeConfirmation.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsulinTypeConfirmation.swift; sourceTree = "<group>"; };
278274
B8C3125B2CAF1DB8007E9961 /* DanaKitRefillReservoirCannulaViewModel.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaKitRefillReservoirCannulaViewModel.swift; sourceTree = "<group>"; };
279275
B8C3125D2CAF1DCD007E9961 /* DanaKitRefillReservoirCannula.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaKitRefillReservoirCannula.swift; sourceTree = "<group>"; };
280276
B8F4DCA32B94C06100AB00E6 /* Image.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = Image.swift; sourceTree = "<group>"; };
281277
B8F4DCA52B94C0D800AB00E6 /* DanaIExplainationView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaIExplainationView.swift; sourceTree = "<group>"; };
282278
B8F4DCA72B94C0E700AB00E6 /* DanaRSv3Explaination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaRSv3Explaination.swift; sourceTree = "<group>"; };
283-
B8F4DCA92B94C0F900AB00E6 /* DanaRSv1Explaination.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaRSv1Explaination.swift; sourceTree = "<group>"; };
284-
B8F4DCAB2B94C10800AB00E6 /* DanaRSv1Password.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = DanaRSv1Password.swift; sourceTree = "<group>"; };
285279
B8F4DCAD2B94CF8100AB00E6 /* ContinueButton.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = ContinueButton.swift; sourceTree = "<group>"; };
286280
B8F4DCB12B97290800AB00E6 /* InsulinTypeView.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = InsulinTypeView.swift; sourceTree = "<group>"; };
287281
B8F4E1A72B83D28A000F4AE1 /* BackgroundTask.swift */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.swift; path = BackgroundTask.swift; sourceTree = "<group>"; };
@@ -565,16 +559,13 @@
565559
B8F4DCA12B94C01C00AB00E6 /* Onboarding */ = {
566560
isa = PBXGroup;
567561
children = (
568-
B885169A2B30D8140063402A /* DanaKitDebugView.swift */,
569562
B8313D262B3B162900A0F64D /* DanaKitSetupView.swift */,
570563
B82FA9442B3DF3AD004F2AFE /* DanaKitScanView.swift */,
571564
B8A0163E2B433E000054AECA /* InsulinTypeConfirmation.swift */,
572565
B864F79F2B49E29700C503A2 /* DanaKitPumpSpeed.swift */,
573566
B864F7A12B49EF3800C503A2 /* DanaKitSetupCompleteView.swift */,
574567
B8F4DCA52B94C0D800AB00E6 /* DanaIExplainationView.swift */,
575568
B8F4DCA72B94C0E700AB00E6 /* DanaRSv3Explaination.swift */,
576-
B8F4DCA92B94C0F900AB00E6 /* DanaRSv1Explaination.swift */,
577-
B8F4DCAB2B94C10800AB00E6 /* DanaRSv1Password.swift */,
578569
);
579570
path = Onboarding;
580571
sourceTree = "<group>";
@@ -788,7 +779,6 @@
788779
B85335DC2B58658A00DB470A /* DanaKitSettingsPumpSpeed.swift in Sources */,
789780
B8360A952B2644D300152188 /* DanaBolusSetOption.swift in Sources */,
790781
B885168A2B305D6E0063402A /* DanaKitPumpManager+UI.swift in Sources */,
791-
B8F4DCAA2B94C0F900AB00E6 /* DanaRSv1Explaination.swift in Sources */,
792782
B8360AD12B2A346C00152188 /* DanaHistoryRefill.swift in Sources */,
793783
B8A0163F2B433E000054AECA /* InsulinTypeConfirmation.swift in Sources */,
794784
B8360AB92B2A2C3C00152188 /* DanaGeneralSetPumpTime.swift in Sources */,
@@ -815,7 +805,6 @@
815805
B88516872B2F74D60063402A /* DanaPacketParser.swift in Sources */,
816806
B8360AC32B2A2DCC00152188 /* DanaHistoryBasal.swift in Sources */,
817807
B8313D272B3B162900A0F64D /* DanaKitSetupView.swift in Sources */,
818-
B8F4DCAC2B94C10800AB00E6 /* DanaRSv1Password.swift in Sources */,
819808
B8360AAD2B2A294400152188 /* DanaGeneralGetShippingVersion.swift in Sources */,
820809
B8F4DCA82B94C0E700AB00E6 /* DanaRSv3Explaination.swift in Sources */,
821810
B85418B72B21001000C3B4D0 /* Decryption.swift in Sources */,
@@ -877,7 +866,6 @@
877866
B864F7A22B49EF3800C503A2 /* DanaKitSetupCompleteView.swift in Sources */,
878867
B8360A9D2B2646A100152188 /* DanaGeneralAvgBolus.swift in Sources */,
879868
B8F4DCA42B94C06100AB00E6 /* Image.swift in Sources */,
880-
B885169B2B30D8140063402A /* DanaKitDebugView.swift in Sources */,
881869
B80EC4B02B45F66E005E2A1A /* DanaKitSettingsView.swift in Sources */,
882870
B8360AD32B2A348100152188 /* DanaHistorySuspend.swift in Sources */,
883871
B8360AAF2B2A298200152188 /* DanaGeneralGetUserOption.swift in Sources */,

DanaKitUI/ViewController/DanaUICoordinator.swift

Lines changed: 6 additions & 33 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,7 @@ import SwiftUI
55
import UIKit
66

77
enum DanaUIScreen {
8-
case debugView
98
case firstRunScreen
10-
case danarsv1Explaination
11-
case danarsv1Password
129
case danarsv3Explaination
1310
case danaiExplaination
1411
case insulinConfirmationScreen
@@ -19,14 +16,8 @@ enum DanaUIScreen {
1916

2017
func next() -> DanaUIScreen? {
2118
switch self {
22-
case .debugView:
23-
return .firstRunScreen
2419
case .firstRunScreen:
2520
return nil
26-
case .danarsv1Explaination:
27-
return .danarsv1Password
28-
case .danarsv1Password:
29-
return .insulinConfirmationScreen
3021
case .danarsv3Explaination:
3122
return .insulinConfirmationScreen
3223
case .danaiExplaination:
@@ -97,8 +88,11 @@ class DanaUICoordinator: UINavigationController, PumpManagerOnboarding, Completi
9788
fatalError("init(coder:) has not been implemented")
9889
}
9990

100-
override func viewWillAppear(_ animated: Bool) {
101-
super.viewWillAppear(animated)
91+
override func viewDidLoad() {
92+
super.viewDidLoad()
93+
delegate = self
94+
95+
navigationBar.prefersLargeTitles = true // Ensure nav bar text is displayed correctly
10296

10397
if screenStack.isEmpty {
10498
screenStack = [getInitialScreen()]
@@ -116,29 +110,11 @@ class DanaUICoordinator: UINavigationController, PumpManagerOnboarding, Completi
116110

117111
private func viewControllerForScreen(_ screen: DanaUIScreen) -> UIViewController {
118112
switch screen {
119-
case .debugView:
120-
let viewModel = DanaKitDebugViewModel(pumpManager)
121-
return hostingController(rootView: DanaKitDebugView(viewModel: viewModel))
122113
case .firstRunScreen:
123114
let view = DanaKitSetupView(
124-
nextAction: goToExplaination,
125-
debugAction: { self.navigateTo(.debugView) }
115+
nextAction: goToExplaination
126116
) // self.allowDebugFeatures ? { self.navigateTo(.debugView) } : {})
127117
return hostingController(rootView: view)
128-
case .danarsv1Explaination:
129-
let view = DanaRSv1Explaination(nextAction: stepFinished)
130-
return hostingController(rootView: view)
131-
case .danarsv1Password:
132-
let view = DanaRSv1Password(nextAction: { password in
133-
guard let pumpManager = self.pumpManager else {
134-
self.stepFinished()
135-
return
136-
}
137-
138-
pumpManager.state.devicePassword = password
139-
self.stepFinished()
140-
})
141-
return hostingController(rootView: view)
142118
case .danarsv3Explaination:
143119
let view = DanaRSv3Explaination(nextAction: stepFinished)
144120
return hostingController(rootView: view)
@@ -238,9 +214,6 @@ class DanaUICoordinator: UINavigationController, PumpManagerOnboarding, Completi
238214

239215
func goToExplaination(_ index: Int) {
240216
switch index {
241-
case 0:
242-
navigateTo(.danarsv1Explaination)
243-
return
244217
case 1:
245218
navigateTo(.danarsv3Explaination)
246219
return

DanaKitUI/Views/ContinueButton.swift

Lines changed: 0 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -21,10 +21,6 @@ struct ContinueButton: View {
2121
.disabled(loading.wrappedValue || disabled.wrappedValue)
2222
}
2323
.padding(.vertical, 10)
24-
.background(
25-
Color(.secondarySystemGroupedBackground)
26-
.shadow(radius: 5)
27-
)
2824
}
2925
}
3026

DanaKitUI/Views/Onboarding/DanaIExplainationView.swift

Lines changed: 5 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -9,10 +9,8 @@ struct DanaIExplainationView: View {
99

1010
var body: some View {
1111
VStack(alignment: .leading) {
12-
title
13-
14-
ScrollView {
15-
VStack(alignment: .leading) {
12+
List {
13+
Section {
1614
Text(String(
1715
format: LocalizedString(
1816
"After setting up the insulin type and bolus speed, you will see all the found Dana pumps. Select the pump you want to link with %1$@.",
@@ -38,16 +36,16 @@ struct DanaIExplainationView: View {
3836
),
3937
appName
4038
))
41-
42-
Spacer()
4339
}
44-
.padding(.horizontal)
4540
}
4641

42+
Spacer()
43+
4744
ContinueButton(action: nextAction)
4845
}
4946
.edgesIgnoringSafeArea(.bottom)
5047
.navigationBarHidden(false)
48+
.navigationTitle(LocalizedString("Setting up Dana-i", comment: "Title for dana-i explaination"))
5149
.toolbar {
5250
ToolbarItem(placement: .navigationBarTrailing) {
5351
Button(LocalizedString("Cancel", comment: "Cancel button title"), action: {
@@ -56,15 +54,6 @@ struct DanaIExplainationView: View {
5654
}
5755
}
5856
}
59-
60-
@ViewBuilder private var title: some View {
61-
Text(LocalizedString("Setting up Dana-i", comment: "Title for dana-i explaination"))
62-
.font(.title)
63-
.bold()
64-
.padding(.horizontal)
65-
Divider()
66-
.padding(.bottom)
67-
}
6857
}
6958

7059
#Preview {

DanaKitUI/Views/Onboarding/DanaKitDebugView.swift

Lines changed: 0 additions & 127 deletions
This file was deleted.

0 commit comments

Comments
 (0)