Skip to content

Commit 3fe998b

Browse files
ps2Camji55
andauthored
LOOP-5122 onboarding updates (#719)
* OnboardingManager is a PluginHost * Update Common/Extensions/NSBundle.swift Co-authored-by: Cameron Ingham <[email protected]> --------- Co-authored-by: Cameron Ingham <[email protected]>
1 parent fb2ba32 commit 3fe998b

File tree

3 files changed

+45
-38
lines changed

3 files changed

+45
-38
lines changed

Common/Extensions/NSBundle.swift

Lines changed: 22 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -60,5 +60,27 @@ extension Bundle {
6060
}
6161
return .days(localCacheDurationDays)
6262
}
63+
64+
var hostIdentifier: String {
65+
var identifier = bundleIdentifier ?? "com.loopkit.Loop"
66+
let components = identifier.components(separatedBy: ".")
67+
// DIY Loop has bundle identifiers like com.UY653SP37Q.loopkit.Loop
68+
if components[2] == "loopkit" && components[3] == "Loop" {
69+
identifier = "com.loopkit.Loop"
70+
}
71+
return identifier
72+
}
73+
74+
var hostVersion: String {
75+
var semanticVersion = shortVersionString
76+
77+
while semanticVersion.split(separator: ".").count < 3 {
78+
semanticVersion += ".0"
79+
}
80+
81+
semanticVersion += "+\(Bundle.main.version)"
82+
83+
return semanticVersion
84+
}
6385
}
6486

Loop/Managers/OnboardingManager.swift

Lines changed: 13 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -429,22 +429,6 @@ extension OnboardingManager: ServiceProvider {
429429
var activeServices: [Service] { servicesManager.activeServices }
430430

431431
var availableServices: [ServiceDescriptor] { servicesManager.availableServices }
432-
433-
func onboardService(withIdentifier identifier: String) -> Swift.Result<OnboardingResult<ServiceViewController, Service>, Error> {
434-
guard let service = activeServices.first(where: { $0.pluginIdentifier == identifier }) else {
435-
return servicesManager.setupService(withIdentifier: identifier)
436-
}
437-
438-
if service.isOnboarded {
439-
return .success(.createdAndOnboarded(service))
440-
}
441-
442-
guard let serviceUI = service as? ServiceUI else {
443-
return .failure(OnboardingError.invalidState)
444-
}
445-
446-
return .success(.userInteractionRequired(serviceUI.settingsViewController(colorPalette: .default)))
447-
}
448432
}
449433

450434
// MARK: - TherapySettingsProvider
@@ -455,10 +439,22 @@ extension OnboardingManager: TherapySettingsProvider {
455439
}
456440
}
457441

442+
// MARK: - PluginHost
443+
444+
extension OnboardingManager: PluginHost {
445+
nonisolated var hostIdentifier: String {
446+
return Bundle.main.hostIdentifier
447+
}
448+
449+
nonisolated var hostVersion: String {
450+
return Bundle.main.hostVersion
451+
}
452+
}
453+
458454
// MARK: - OnboardingProvider
459455

460456
extension OnboardingManager: OnboardingProvider {
461-
var allowDebugFeatures: Bool { FeatureFlags.allowDebugFeatures } // NOTE: DEBUG FEATURES - DEBUG AND TEST ONLY
457+
nonisolated var allowDebugFeatures: Bool { FeatureFlags.allowDebugFeatures } // NOTE: DEBUG FEATURES - DEBUG AND TEST ONLY
462458
}
463459

464460
// MARK: - SupportProvider

Loop/Managers/ServicesManager.swift

Lines changed: 10 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -259,31 +259,20 @@ extension ServicesManager: StatefulPluggableDelegate {
259259
}
260260
}
261261

262-
// MARK: - ServiceDelegate
263-
264-
extension ServicesManager: ServiceDelegate {
265-
var hostIdentifier: String {
266-
var identifier = Bundle.main.bundleIdentifier ?? "com.loopkit.Loop"
267-
let components = identifier.components(separatedBy: ".")
268-
// DIY Loop has bundle identifiers like com.UY653SP37Q.loopkit.Loop
269-
if components[2] == "loopkit" && components[3] == "Loop" {
270-
identifier = "com.loopkit.Looo"
271-
}
272-
return identifier
262+
// MARK: - PluginHost
263+
extension ServicesManager: PluginHost {
264+
nonisolated var hostIdentifier: String {
265+
return Bundle.main.hostIdentifier
273266
}
274267

275-
var hostVersion: String {
276-
var semanticVersion = Bundle.main.shortVersionString
277-
278-
while semanticVersion.split(separator: ".").count < 3 {
279-
semanticVersion += ".0"
280-
}
268+
nonisolated var hostVersion: String {
269+
return Bundle.main.hostVersion
270+
}
271+
}
281272

282-
semanticVersion += "+\(Bundle.main.version)"
273+
// MARK: - ServiceDelegate
283274

284-
return semanticVersion
285-
}
286-
275+
extension ServicesManager: ServiceDelegate {
287276
func enactRemoteOverride(name: String, durationTime: TimeInterval?, remoteAddress: String) async throws {
288277

289278
var duration: TemporaryScheduleOverride.Duration? = nil

0 commit comments

Comments
 (0)