@@ -2,11 +2,11 @@ import ComposableArchitecture
2
2
import CoreMotion
3
3
import ReactiveSwift
4
4
5
- @available ( iOS 4 . 0 , * )
6
- @available ( macCatalyst 13 . 0 , * )
5
+ @available ( iOS 4 , * )
6
+ @available ( macCatalyst 13 , * )
7
7
@available ( macOS, unavailable)
8
8
@available ( tvOS, unavailable)
9
- @available ( watchOS 2 . 0 , * )
9
+ @available ( watchOS 2 , * )
10
10
extension MotionManager {
11
11
public static let live = MotionManager (
12
12
accelerometerData: { id in
@@ -72,9 +72,8 @@ extension MotionManager {
72
72
} ,
73
73
set: { id, properties in
74
74
. fireAndForget {
75
- guard let manager = managers [ id ]
75
+ guard let manager = requireMotionManager ( id : id )
76
76
else {
77
- couldNotFindMotionManager ( id: id)
78
77
return
79
78
}
80
79
@@ -97,9 +96,8 @@ extension MotionManager {
97
96
} ,
98
97
startAccelerometerUpdates: { id, queue in
99
98
return Effect { subscriber, lifetime in
100
- guard let manager = managers [ id ]
99
+ guard let manager = requireMotionManager ( id : id )
101
100
else {
102
- couldNotFindMotionManager ( id: id)
103
101
return
104
102
}
105
103
guard accelerometerUpdatesSubscribers [ id] == nil
@@ -121,9 +119,8 @@ extension MotionManager {
121
119
} ,
122
120
startDeviceMotionUpdates: { id, frame, queue in
123
121
return Effect { subscriber, Lifetime in
124
- guard let manager = managers [ id ]
122
+ guard let manager = requireMotionManager ( id : id )
125
123
else {
126
- couldNotFindMotionManager ( id: id)
127
124
return
128
125
}
129
126
guard deviceMotionUpdatesSubscribers [ id] == nil
@@ -144,9 +141,8 @@ extension MotionManager {
144
141
} ,
145
142
startGyroUpdates: { id, queue in
146
143
return Effect { subscriber, lifetime in
147
- guard let manager = managers [ id ]
144
+ guard let manager = requireMotionManager ( id : id )
148
145
else {
149
- couldNotFindMotionManager ( id: id)
150
146
return
151
147
}
152
148
guard deviceGyroUpdatesSubscribers [ id] == nil
@@ -236,6 +232,15 @@ extension MotionManager {
236
232
deviceMagnetometerUpdatesSubscribers [ id] = nil
237
233
}
238
234
} )
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
+ }
239
244
}
240
245
241
246
private var accelerometerUpdatesSubscribers :
@@ -246,25 +251,6 @@ private var deviceGyroUpdatesSubscribers: [AnyHashable: Signal<GyroData, Error>.
246
251
private var deviceMagnetometerUpdatesSubscribers :
247
252
[ AnyHashable : Signal < MagnetometerData , Error > . Observer ] = [ : ]
248
253
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
-
268
254
private func couldNotFindMotionManager( id: Any ) {
269
255
assertionFailure (
270
256
"""
0 commit comments