Skip to content

Commit a6593b3

Browse files
authored
Merge pull request #576 from tidepool-org/cameron/LOOP-4649-marketing-demo
[LOOP-4649] Loop Marketing Demo
2 parents bd7a796 + 382ebaa commit a6593b3

File tree

5 files changed

+35
-6
lines changed

5 files changed

+35
-6
lines changed

Loop/Managers/DeviceDataManager.swift

Lines changed: 22 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -85,6 +85,8 @@ final class DeviceDataManager {
8585
private var displayGlucoseUnitObservers = WeakSynchronizedSet<DisplayGlucoseUnitObserver>()
8686

8787
public private(set) var displayGlucosePreference: DisplayGlucosePreference
88+
89+
var onlyAllowSimulators: Bool = false
8890

8991
// MARK: - CGM
9092

@@ -460,7 +462,17 @@ final class DeviceDataManager {
460462
}
461463

462464
var availablePumpManagers: [PumpManagerDescriptor] {
463-
return pluginManager.availablePumpManagers + availableStaticPumpManagers
465+
var pumpManagers = pluginManager.availablePumpManagers + availableStaticPumpManagers
466+
467+
pumpManagers = pumpManagers.filter({ pumpManager in
468+
if onlyAllowSimulators {
469+
return pumpManager.identifier == "MockPumpManager"
470+
} else {
471+
return true
472+
}
473+
})
474+
475+
return pumpManagers
464476
}
465477

466478
func setupPumpManager(withIdentifier identifier: String, initialSettings settings: PumpManagerSetupSettings, prefersToSkipUserInteraction: Bool) -> Swift.Result<SetupUIResult<PumpManagerViewController, PumpManager>, Error> {
@@ -571,6 +583,15 @@ final class DeviceDataManager {
571583
if let pumpManagerAsCGMManager = pumpManager as? CGMManager {
572584
availableCGMManagers.append(CGMManagerDescriptor(identifier: pumpManagerAsCGMManager.managerIdentifier, localizedTitle: pumpManagerAsCGMManager.localizedTitle))
573585
}
586+
587+
availableCGMManagers = availableCGMManagers.filter({ cgmManager in
588+
if onlyAllowSimulators {
589+
return cgmManager.identifier == "MockCGMManager"
590+
} else {
591+
return true
592+
}
593+
})
594+
574595
return availableCGMManagers
575596
}
576597

Loop/Managers/LoopAppManager.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -219,6 +219,10 @@ class LoopAppManager: NSObject {
219219
deviceSupportDelegate: deviceDataManager,
220220
servicesManager: deviceDataManager.servicesManager,
221221
alertIssuer: alertManager)
222+
223+
if supportManager.availableSupports.contains(where: { $0.onlyAllowSimulatorDevices }) {
224+
deviceDataManager.onlyAllowSimulators = true
225+
}
222226

223227
onboardingManager = OnboardingManager(pluginManager: pluginManager,
224228
bluetoothProvider: bluetoothStateManager,

Loop/Plugins/PluginManager.swift

Lines changed: 4 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -64,12 +64,12 @@ class PluginManager {
6464
}
6565

6666
var availablePumpManagers: [PumpManagerDescriptor] {
67-
return pluginBundles.compactMap({ (bundle) -> PumpManagerDescriptor? in
67+
pluginBundles.compactMap({ (bundle) -> PumpManagerDescriptor? in
6868
guard let title = bundle.object(forInfoDictionaryKey: LoopPluginBundleKey.pumpManagerDisplayName.rawValue) as? String,
6969
let identifier = bundle.object(forInfoDictionaryKey: LoopPluginBundleKey.pumpManagerIdentifier.rawValue) as? String else {
7070
return nil
7171
}
72-
72+
7373
return PumpManagerDescriptor(identifier: identifier, localizedTitle: title)
7474
})
7575
}
@@ -100,12 +100,12 @@ class PluginManager {
100100
}
101101

102102
var availableCGMManagers: [CGMManagerDescriptor] {
103-
return pluginBundles.compactMap({ (bundle) -> CGMManagerDescriptor? in
103+
pluginBundles.compactMap({ (bundle) -> CGMManagerDescriptor? in
104104
guard let title = bundle.object(forInfoDictionaryKey: LoopPluginBundleKey.cgmManagerDisplayName.rawValue) as? String,
105105
let identifier = bundle.object(forInfoDictionaryKey: LoopPluginBundleKey.cgmManagerIdentifier.rawValue) as? String else {
106106
return nil
107107
}
108-
108+
109109
return CGMManagerDescriptor(identifier: identifier, localizedTitle: title)
110110
})
111111
}

Loop/View Models/SettingsViewModel.swift

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -99,6 +99,10 @@ public class SettingsViewModel: ObservableObject {
9999
}
100100
}
101101

102+
var showDeleteTestData: Bool {
103+
availableSupports.contains(where: { $0.showsDeleteTestDataUI })
104+
}
105+
102106
lazy private var cancellables = Set<AnyCancellable>()
103107

104108
public init(alertPermissionsChecker: AlertPermissionsChecker,

Loop/Views/SettingsView.swift

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ public struct SettingsView: View {
5555
configurationSection
5656
}
5757
deviceSettingsSection
58-
if viewModel.pumpManagerSettingsViewModel.isTestingDevice || viewModel.cgmManagerSettingsViewModel.isTestingDevice {
58+
if (viewModel.pumpManagerSettingsViewModel.isTestingDevice || viewModel.cgmManagerSettingsViewModel.isTestingDevice) && viewModel.showDeleteTestData {
5959
deleteDataSection
6060
}
6161
}

0 commit comments

Comments
 (0)