Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
5 changes: 5 additions & 0 deletions LoopKit/Pluggable.swift
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,13 @@ public protocol Pluggable: AnyObject {
/// A plugin may need a reference to another plugin. This callback allows for such a reference.
/// It is called once during app initialization after plugins are initialized and again as new plugins are added and initialized.
func initializationComplete(for pluggables: [Pluggable])

/// A plugin may require another plugin. This callback informs this dependency.
/// Often this is called as apart of `initializationComplete(for pluggables: [Pluggable])`
func markAsDepedency(_ isDependency: Bool)
}

public extension Pluggable {
func initializationComplete(for pluggables: [Pluggable]) { } // optional
func markAsDepedency(_ isDependency: Bool) { } // optional
}
4 changes: 2 additions & 2 deletions LoopKitUI/ServiceUI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -31,14 +31,14 @@ public protocol ServiceUI: Service {
/// - colorPalette: Color palette to use for any UI.
/// - pluginHost: Object that provides namd and version information about host to the service plugin.
/// - Returns: Either a conforming view controller to create and onboard the service or a newly created and onboarded service.
static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost) -> SetupUIResult<ServiceViewController, ServiceUI>
static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost, allowDebugFeatures: Bool) -> SetupUIResult<ServiceViewController, ServiceUI>

/// Configure settings for an existing service.
///
/// - Parameters:
/// - colorPalette: Color palette to use for any UI.
/// - Returns: A view controller to configure an existing service.
func settingsViewController(colorPalette: LoopUIColorPalette) -> ServiceViewController
func settingsViewController(colorPalette: LoopUIColorPalette, allowDebugFeatures: Bool) -> ServiceViewController
}

public extension ServiceUI {
Expand Down
4 changes: 2 additions & 2 deletions MockKitUI/MockService+UI.swift
Original file line number Diff line number Diff line change
Expand Up @@ -17,11 +17,11 @@ extension MockService: ServiceUI {
return UIImage(systemName: "icloud.and.arrow.up")
}

public static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost) -> SetupUIResult<ServiceViewController, ServiceUI> {
public static func setupViewController(colorPalette: LoopUIColorPalette, pluginHost: PluginHost, allowDebugFeatures: Bool) -> SetupUIResult<ServiceViewController, ServiceUI> {
return .userInteractionRequired(ServiceNavigationController(rootViewController: MockServiceTableViewController(service: MockService(), for: .create)))
}

public func settingsViewController(colorPalette: LoopUIColorPalette) -> ServiceViewController {
public func settingsViewController(colorPalette: LoopUIColorPalette, allowDebugFeatures: Bool) -> ServiceViewController {
return ServiceNavigationController(rootViewController: MockServiceTableViewController(service: self, for: .update))
}

Expand Down