diff --git a/PassepartoutLibrary/Sources/PassepartoutCore/Managers/ProfileManager.swift b/PassepartoutLibrary/Sources/PassepartoutCore/Managers/ProfileManager.swift index ae04f446..7ed8fd1c 100644 --- a/PassepartoutLibrary/Sources/PassepartoutCore/Managers/ProfileManager.swift +++ b/PassepartoutLibrary/Sources/PassepartoutCore/Managers/ProfileManager.swift @@ -31,10 +31,10 @@ public protocol ProfileManager { var activeProfileId: UUID? { get } - var activeProfileIdPublisher: Published.Publisher { get } - var currentProfileId: UUID? { get set } + var didUpdateActiveProfile: PassthroughSubject { get } + var didCreateProfile: PassthroughSubject { get } var headers: [Profile.Header] { get } diff --git a/PassepartoutLibrary/Sources/PassepartoutProfiles/Managers/DefaultProfileManager.swift b/PassepartoutLibrary/Sources/PassepartoutProfiles/Managers/DefaultProfileManager.swift index 4dd9cd71..66eb7778 100644 --- a/PassepartoutLibrary/Sources/PassepartoutProfiles/Managers/DefaultProfileManager.swift +++ b/PassepartoutLibrary/Sources/PassepartoutProfiles/Managers/DefaultProfileManager.swift @@ -60,10 +60,6 @@ public class DefaultProfileManager: ProfileManagerWithCurrentProfile, Observable } } - public var activeProfileIdPublisher: Published.Publisher { - $internalActiveProfileId - } - public var currentProfileId: UUID? { get { internalCurrentProfileId @@ -83,6 +79,8 @@ public class DefaultProfileManager: ProfileManagerWithCurrentProfile, Observable public let currentProfile: ObservableProfile + public let didUpdateActiveProfile = PassthroughSubject() + public let didCreateProfile = PassthroughSubject() private var cancellables: Set = [] @@ -293,6 +291,11 @@ extension DefaultProfileManager { extension DefaultProfileManager { public func observeUpdates() { + $internalActiveProfileId + .sink { + self.didUpdateActiveProfile.send($0) + }.store(in: &cancellables) + strategy.willUpdateProfiles() .dropFirst() .sink { diff --git a/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/DefaultVPNManager.swift b/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/DefaultVPNManager.swift index a9be63b2..e21a18b4 100644 --- a/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/DefaultVPNManager.swift +++ b/PassepartoutLibrary/Sources/PassepartoutVPN/Managers/DefaultVPNManager.swift @@ -159,7 +159,7 @@ extension DefaultVPNManager { } private func observeProfileManager() { - profileManager.activeProfileIdPublisher + profileManager.didUpdateActiveProfile .dropFirst() .removeDuplicates() .sink { newId in