Skip to content

Commit 0c72005

Browse files
committed
Cleanup
1 parent f88cc61 commit 0c72005

File tree

2 files changed

+14
-11
lines changed

2 files changed

+14
-11
lines changed

Sources/HMHomeManager+Promise.swift

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,10 @@ import Foundation
22
import PromiseKit
33
import HomeKit
44

5+
public enum HomeKitError: Error {
6+
case permissionDeined
7+
}
8+
59
extension HMHomeManager {
610
public func homes() -> Promise<[HMHome]> {
711
return HMHomeManagerProxy().promise
@@ -26,8 +30,6 @@ extension HMHomeManager {
2630
}
2731
}
2832

29-
fileprivate let timeout = 5.0
30-
3133
internal class HMHomeManagerProxy: PromiseProxy<[HMHome]>, HMHomeManagerDelegate {
3234

3335
fileprivate let manager: HMHomeManager
@@ -37,8 +39,8 @@ internal class HMHomeManagerProxy: PromiseProxy<[HMHome]>, HMHomeManagerDelegate
3739
super.init()
3840
self.manager.delegate = self
3941

40-
DispatchQueue.main.asyncAfter(deadline: .now() + timeout) { [weak self] in
41-
self?.fulfill([])
42+
DispatchQueue.main.asyncAfter(deadline: .now() + 20.0) { [weak self] in
43+
self?.reject(HomeKitError.permissionDeined)
4244
}
4345
}
4446

Sources/Utils.swift

Lines changed: 8 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -10,29 +10,30 @@ internal class PromiseProxy<T>: NSObject {
1010

1111
override init() {
1212
super.init()
13-
// Create the retain cycle
13+
// Create a retain cycle
1414
self.retainCycle = self
15-
// And ensure we break it
15+
// And ensure we break it when the promise is resolved
1616
_ = promise.ensure { self.retainCycle = nil }
1717
}
1818

1919
/// These functions ensure we only resolve the promise once
20-
func fulfill(_ value: T) {
20+
internal func fulfill(_ value: T) {
2121
guard self.promise.isResolved == false else { return }
2222
seal.fulfill(value)
2323
}
24-
func reject(_ error: Error) {
24+
internal func reject(_ error: Error) {
2525
guard self.promise.isResolved == false else { return }
2626
seal.reject(error)
2727
}
2828

29-
func cancel() {
29+
/// Cancel helper
30+
internal func cancel() {
3031
self.reject(PMKError.cancelled)
3132
}
3233
}
3334

34-
/*
35-
Commonly used intervals for scanning
35+
/**
36+
Different ways to scan.
3637
*/
3738
public enum ScanInterval {
3839
// Return after our first item with an optional time limit

0 commit comments

Comments
 (0)