Skip to content

Commit 6251cea

Browse files
committed
Inject Bonjour as a dependency in onboard flow
1 parent 46b9a6f commit 6251cea

File tree

4 files changed

+16
-5
lines changed

4 files changed

+16
-5
lines changed

HomeAssistant.xcodeproj/project.pbxproj

+2-2
Original file line numberDiff line numberDiff line change
@@ -584,6 +584,7 @@
584584
4214388C2CF5F1D700E2D44D /* ServerFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42F5CABB2B10AE1A00409816 /* ServerFixture.swift */; };
585585
4214388D2CF5F1D700E2D44D /* ServerFixture.swift in Sources */ = {isa = PBXBuildFile; fileRef = 42F5CABB2B10AE1A00409816 /* ServerFixture.swift */; };
586586
421960702CA2AE1600F7134E /* WidgetAssistViewTintedWrapper.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4219606F2CA2AE1600F7134E /* WidgetAssistViewTintedWrapper.swift */; };
587+
42196ACE2DA5A49600BD501E /* Bonjour.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B25BCC2130CAB400678C2C /* Bonjour.swift */; };
587588
421B1C182BD6524E001ED18C /* WidgetBuilderViewModel.swift in Sources */ = {isa = PBXBuildFile; fileRef = 421B1C172BD6524E001ED18C /* WidgetBuilderViewModel.swift */; };
588589
421B1C1D2BD65C04001ED18C /* View+ConditionalModifier.swift in Sources */ = {isa = PBXBuildFile; fileRef = 421B1C1B2BD65BFA001ED18C /* View+ConditionalModifier.swift */; };
589590
4221ED352D009EF700BAE3EB /* AppDatabaseUpdater.swift in Sources */ = {isa = PBXBuildFile; fileRef = 4221ED332D009BD000BAE3EB /* AppDatabaseUpdater.swift */; };
@@ -1089,7 +1090,6 @@
10891090
B60616BB1D1F117800249C11 /* US-EN-Daisy-Water-Heater-Leak.wav in Resources */ = {isa = PBXBuildFile; fileRef = B60615BA1D1F117700249C11 /* US-EN-Daisy-Water-Heater-Leak.wav */; };
10901091
B613936924F728F8002B8C5D /* InputOutputDeviceSensor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B613936824F728F8002B8C5D /* InputOutputDeviceSensor.swift */; };
10911092
B613936A24F728F8002B8C5D /* InputOutputDeviceSensor.swift in Sources */ = {isa = PBXBuildFile; fileRef = B613936824F728F8002B8C5D /* InputOutputDeviceSensor.swift */; };
1092-
B616B299227ED68E00828165 /* Bonjour.swift in Sources */ = {isa = PBXBuildFile; fileRef = D0B25BCC2130CAB400678C2C /* Bonjour.swift */; };
10931093
B6221F6522266F9F00502A30 /* WebhookRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6221F6122266C4000502A30 /* WebhookRequest.swift */; };
10941094
B6221F6622266FA000502A30 /* WebhookRequest.swift in Sources */ = {isa = PBXBuildFile; fileRef = B6221F6122266C4000502A30 /* WebhookRequest.swift */; };
10951095
B626AAF11D8F972800A0D225 /* SettingsDetailViewController.swift in Sources */ = {isa = PBXBuildFile; fileRef = B626AAF01D8F972800A0D225 /* SettingsDetailViewController.swift */; };
@@ -7335,7 +7335,6 @@
73357335
B68EDD05215F12C900DD6B28 /* NotificationActionConfigurator.swift in Sources */,
73367336
423B5E0D2D677BB90000CB95 /* WidgetContentMargin.swift in Sources */,
73377337
42462E782DA5421D00ECC8A7 /* CornerRadiusSizes.swift in Sources */,
7338-
B616B299227ED68E00828165 /* Bonjour.swift in Sources */,
73397338
420E2AE62C474710004921D8 /* WidgetBasicButtonView.swift in Sources */,
73407339
11A48D7F24CA7E820021BDD9 /* Action+Observation.swift in Sources */,
73417340
11195F6B267EFB1F003DF674 /* NotificationManagerLocalPushInterface.swift in Sources */,
@@ -8006,6 +8005,7 @@
80068005
11C4629624B19FC700031902 /* URLSessionTask+WebhookPersisted.swift in Sources */,
80078006
11F2F25E25871D6000F61F7C /* NotificationAttachmentParserCamera.swift in Sources */,
80088007
11B63B0A2979A07000D908ED /* AssistIntentHandler.swift in Sources */,
8008+
42196ACE2DA5A49600BD501E /* Bonjour.swift in Sources */,
80098009
1133F59C25F1DA5D00AD776F /* CLLocation+Sanitize.swift in Sources */,
80108010
11AF4D1C249C8AA0006C74C0 /* BatterySensor.swift in Sources */,
80118011
D014EEA92128E192008EA6F5 /* ConnectionInfo.swift in Sources */,

Sources/App/Onboarding/API/Bonjour.swift

+7-2
Original file line numberDiff line numberDiff line change
@@ -1,12 +1,17 @@
11
import Foundation
2-
import Shared
32

43
public protocol BonjourObserver: AnyObject {
54
func bonjour(_ bonjour: Bonjour, didAdd instance: DiscoveredHomeAssistant)
65
func bonjour(_ bonjour: Bonjour, didRemoveInstanceWithName name: String)
76
}
87

9-
public class Bonjour: NSObject, NetServiceBrowserDelegate, NetServiceDelegate {
8+
public protocol BonjourProtocol {
9+
var observer: BonjourObserver? { get set }
10+
func start()
11+
func stop()
12+
}
13+
14+
public class Bonjour: NSObject, NetServiceBrowserDelegate, NetServiceDelegate, BonjourProtocol {
1015
public weak var observer: BonjourObserver?
1116

1217
private var browser: NetServiceBrowser

Sources/App/Onboarding/Screens/OnboardingServersList/OnboardingServersListViewModel.swift

+1-1
Original file line numberDiff line numberDiff line change
@@ -22,7 +22,7 @@ final class OnboardingServersListViewModel: ObservableObject {
2222
/// Indicator for manual input loading
2323
@Published var isLoading = false
2424

25-
private let discovery = Bonjour()
25+
private var discovery = Current.bonjour()
2626
private var cancellables = Set<AnyCancellable>()
2727

2828
init() {

Sources/Shared/Environment/Environment.swift

+6
Original file line numberDiff line numberDiff line change
@@ -437,4 +437,10 @@ public class AppEnvironment {
437437
public var userNotificationCenter: UNUserNotificationCenter {
438438
UNUserNotificationCenter.current()
439439
}
440+
441+
#if !os(watchOS)
442+
public var bonjour: () -> BonjourProtocol = {
443+
Bonjour()
444+
}
445+
#endif
440446
}

0 commit comments

Comments
 (0)