Skip to content

Commit 492d1e0

Browse files
committed
Some cleanup for MotionManager (#196)
* Some cleanup for MotionManager * Update MotionManagerLive.swift
1 parent 83e5886 commit 492d1e0

File tree

1 file changed

+16
-30
lines changed

1 file changed

+16
-30
lines changed

Sources/ComposableCoreMotion/MotionManager/MotionManagerLive.swift

Lines changed: 16 additions & 30 deletions
Original file line numberDiff line numberDiff line change
@@ -2,11 +2,11 @@ import ComposableArchitecture
22
import CoreMotion
33
import ReactiveSwift
44

5-
@available(iOS 4.0, *)
6-
@available(macCatalyst 13.0, *)
5+
@available(iOS 4, *)
6+
@available(macCatalyst 13, *)
77
@available(macOS, unavailable)
88
@available(tvOS, unavailable)
9-
@available(watchOS 2.0, *)
9+
@available(watchOS 2, *)
1010
extension MotionManager {
1111
public static let live = MotionManager(
1212
accelerometerData: { id in
@@ -72,9 +72,8 @@ extension MotionManager {
7272
},
7373
set: { id, properties in
7474
.fireAndForget {
75-
guard let manager = managers[id]
75+
guard let manager = requireMotionManager(id: id)
7676
else {
77-
couldNotFindMotionManager(id: id)
7877
return
7978
}
8079

@@ -97,9 +96,8 @@ extension MotionManager {
9796
},
9897
startAccelerometerUpdates: { id, queue in
9998
return Effect { subscriber, lifetime in
100-
guard let manager = managers[id]
99+
guard let manager = requireMotionManager(id: id)
101100
else {
102-
couldNotFindMotionManager(id: id)
103101
return
104102
}
105103
guard accelerometerUpdatesSubscribers[id] == nil
@@ -121,9 +119,8 @@ extension MotionManager {
121119
},
122120
startDeviceMotionUpdates: { id, frame, queue in
123121
return Effect { subscriber, Lifetime in
124-
guard let manager = managers[id]
122+
guard let manager = requireMotionManager(id: id)
125123
else {
126-
couldNotFindMotionManager(id: id)
127124
return
128125
}
129126
guard deviceMotionUpdatesSubscribers[id] == nil
@@ -144,9 +141,8 @@ extension MotionManager {
144141
},
145142
startGyroUpdates: { id, queue in
146143
return Effect { subscriber, lifetime in
147-
guard let manager = managers[id]
144+
guard let manager = requireMotionManager(id: id)
148145
else {
149-
couldNotFindMotionManager(id: id)
150146
return
151147
}
152148
guard deviceGyroUpdatesSubscribers[id] == nil
@@ -236,6 +232,15 @@ extension MotionManager {
236232
deviceMagnetometerUpdatesSubscribers[id] = nil
237233
}
238234
})
235+
236+
private static var managers: [AnyHashable: CMMotionManager] = [:]
237+
238+
private static func requireMotionManager(id: AnyHashable) -> CMMotionManager? {
239+
if managers[id] == nil {
240+
couldNotFindMotionManager(id: id)
241+
}
242+
return managers[id]
243+
}
239244
}
240245

241246
private var accelerometerUpdatesSubscribers:
@@ -246,25 +251,6 @@ private var deviceGyroUpdatesSubscribers: [AnyHashable: Signal<GyroData, Error>.
246251
private var deviceMagnetometerUpdatesSubscribers:
247252
[AnyHashable: Signal<MagnetometerData, Error>.Observer] = [:]
248253

249-
@available(iOS 4.0, *)
250-
@available(macCatalyst 13.0, *)
251-
@available(macOS, unavailable)
252-
@available(tvOS, unavailable)
253-
@available(watchOS 2.0, *)
254-
private var managers: [AnyHashable: CMMotionManager] = [:]
255-
256-
@available(iOS 4.0, *)
257-
@available(macCatalyst 13.0, *)
258-
@available(macOS, unavailable)
259-
@available(tvOS, unavailable)
260-
@available(watchOS 2.0, *)
261-
private func requireMotionManager(id: AnyHashable) -> CMMotionManager? {
262-
if managers[id] == nil {
263-
couldNotFindMotionManager(id: id)
264-
}
265-
return managers[id]
266-
}
267-
268254
private func couldNotFindMotionManager(id: Any) {
269255
assertionFailure(
270256
"""

0 commit comments

Comments
 (0)