Manos Chorianopoulos

telematics registerSensor fix

...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <key>Pods-SwiftWarplyFramework.xcscheme_^#shared#^_</key> 7 <key>Pods-SwiftWarplyFramework.xcscheme_^#shared#^_</key>
8 <dict> 8 <dict>
9 <key>orderHint</key> 9 <key>orderHint</key>
10 - <integer>1</integer> 10 + <integer>0</integer>
11 </dict> 11 </dict>
12 </dict> 12 </dict>
13 </dict> 13 </dict>
......
...@@ -7,7 +7,7 @@ ...@@ -7,7 +7,7 @@
7 <key>SwiftWarplyFramework.xcscheme_^#shared#^_</key> 7 <key>SwiftWarplyFramework.xcscheme_^#shared#^_</key>
8 <dict> 8 <dict>
9 <key>orderHint</key> 9 <key>orderHint</key>
10 - <integer>0</integer> 10 + <integer>1</integer>
11 </dict> 11 </dict>
12 </dict> 12 </dict>
13 </dict> 13 </dict>
......
...@@ -14,6 +14,8 @@ import CoreMotion ...@@ -14,6 +14,8 @@ import CoreMotion
14 // MARK: Constants and Properties 14 // MARK: Constants and Properties
15 15
16 private var mIsTripStarted = false 16 private var mIsTripStarted = false
17 + private var hasLocationPermissions = false
18 + private var isFirstLoad = true
17 private var mAccelerationTimestamps = [[String: Any]]() 19 private var mAccelerationTimestamps = [[String: Any]]()
18 private var locationManager: CLLocationManager! 20 private var locationManager: CLLocationManager!
19 private var motionManager: CMMotionManager! 21 private var motionManager: CMMotionManager!
...@@ -68,6 +70,8 @@ import CoreMotion ...@@ -68,6 +70,8 @@ import CoreMotion
68 accelerationLimitTextField.delegate = self 70 accelerationLimitTextField.delegate = self
69 sampleTimeTextField.delegate = self 71 sampleTimeTextField.delegate = self
70 72
73 + hasLocationPermissions = authorizationStatusIsGranted(status: CLLocationManager.authorizationStatus())
74 +
71 orientationCountLabel.text = "0" 75 orientationCountLabel.text = "0"
72 touchCountLabel.text = "0" 76 touchCountLabel.text = "0"
73 recordsSavedLabel.text = "0" 77 recordsSavedLabel.text = "0"
...@@ -99,7 +103,7 @@ import CoreMotion ...@@ -99,7 +103,7 @@ import CoreMotion
99 103
100 public override func viewWillDisappear(_ animated: Bool) { 104 public override func viewWillDisappear(_ animated: Bool) {
101 super.viewWillDisappear(animated) 105 super.viewWillDisappear(animated)
102 - 106 +
103 if (self.mIsTripStarted == true) { 107 if (self.mIsTripStarted == true) {
104 self.stopTrip() 108 self.stopTrip()
105 } 109 }
...@@ -234,7 +238,7 @@ import CoreMotion ...@@ -234,7 +238,7 @@ import CoreMotion
234 } 238 }
235 239
236 private func processAccelerometerData(_ accelerationData: CMAccelerometerData) { 240 private func processAccelerometerData(_ accelerationData: CMAccelerometerData) {
237 - // print("=== accelerationData: ",accelerationData) 241 + // print("=== accelerationData: ",accelerationData)
238 242
239 // sensorDataLabel.text = "\(accelerationData.acceleration.x), \(accelerationData.acceleration.y), \(accelerationData.acceleration.z)" 243 // sensorDataLabel.text = "\(accelerationData.acceleration.x), \(accelerationData.acceleration.y), \(accelerationData.acceleration.z)"
240 244
...@@ -260,7 +264,7 @@ import CoreMotion ...@@ -260,7 +264,7 @@ import CoreMotion
260 // TODO: CHECK mayby this is correct 264 // TODO: CHECK mayby this is correct
261 // accelerationLabel.text = String(format: "%.1f m/s^2", acceleration) 265 // accelerationLabel.text = String(format: "%.1f m/s^2", acceleration)
262 266
263 - // print("=== acceleration: ",acceleration) 267 + // print("=== acceleration: ",acceleration)
264 268
265 // If acceleration is below the stop threshold, assume we are in a stop 269 // If acceleration is below the stop threshold, assume we are in a stop
266 // if acceleration < STOP_THRESHOLD { 270 // if acceleration < STOP_THRESHOLD {
...@@ -270,7 +274,7 @@ import CoreMotion ...@@ -270,7 +274,7 @@ import CoreMotion
270 velocity = acceleration * time 274 velocity = acceleration * time
271 // } 275 // }
272 276
273 - // print("=== velocity: ",velocity) 277 + // print("=== velocity: ",velocity)
274 278
275 // Convert velocity to km/h 279 // Convert velocity to km/h
276 mAcceleration = velocity // Convert to km/h 280 mAcceleration = velocity // Convert to km/h
...@@ -400,7 +404,7 @@ import CoreMotion ...@@ -400,7 +404,7 @@ import CoreMotion
400 404
401 self?.mAccelerationTimestamps.append(jsonObject) 405 self?.mAccelerationTimestamps.append(jsonObject)
402 406
403 - // print("=== self?.mAccelerationTimestamps: ", self?.mAccelerationTimestamps) 407 + // print("=== self?.mAccelerationTimestamps: ", self?.mAccelerationTimestamps)
404 } 408 }
405 } 409 }
406 timerTel!.resume() 410 timerTel!.resume()
...@@ -449,9 +453,14 @@ import CoreMotion ...@@ -449,9 +453,14 @@ import CoreMotion
449 } 453 }
450 454
451 func onAuthorizationStatusIsGranted() { 455 func onAuthorizationStatusIsGranted() {
452 - // print("=== onAuthorizationStatusIsGranted === ") 456 + // print("=== onAuthorizationStatusIsGranted === ")
453 locationManager.startUpdatingLocation(); 457 locationManager.startUpdatingLocation();
454 - registerSensor() 458 +// registerSensor()
459 + if (!isFirstLoad || (isFirstLoad && !hasLocationPermissions)) {
460 + registerSensor()
461 + }
462 + hasLocationPermissions = true
463 + isFirstLoad = false
455 } 464 }
456 465
457 func onAuthorizationStatusIsDenied() { 466 func onAuthorizationStatusIsDenied() {
...@@ -459,7 +468,7 @@ import CoreMotion ...@@ -459,7 +468,7 @@ import CoreMotion
459 } 468 }
460 469
461 public func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) { 470 public func locationManager(_ manager: CLLocationManager, didChangeAuthorization status: CLAuthorizationStatus) {
462 - // print("=== locationManager didChangeAuthorization: ",status) 471 + // print("=== locationManager didChangeAuthorization: ",status)
463 472
464 if (authorizationStatusIsDenied(status: status)) { 473 if (authorizationStatusIsDenied(status: status)) {
465 onAuthorizationStatusIsDenied(); 474 onAuthorizationStatusIsDenied();
...@@ -471,8 +480,8 @@ import CoreMotion ...@@ -471,8 +480,8 @@ import CoreMotion
471 480
472 public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) { 481 public func locationManager(_ manager: CLLocationManager, didUpdateLocations locations: [CLLocation]) {
473 if let location = locations.last { 482 if let location = locations.last {
474 - // print("=== locationManager didUpdateLocations latitude: ",location.coordinate.latitude) 483 + // print("=== locationManager didUpdateLocations latitude: ",location.coordinate.latitude)
475 - // print("=== locationManager didUpdateLocations longitude: ",location.coordinate.longitude) 484 + // print("=== locationManager didUpdateLocations longitude: ",location.coordinate.longitude)
476 485
477 if mLatitude != 0 && mLongitude != 0 { 486 if mLatitude != 0 && mLongitude != 0 {
478 mSpeed = calculateSpeed(lat1: mLatitude, lon1: mLongitude, lat2: location.coordinate.latitude, lon2: location.coordinate.longitude, timeDifferenceInSeconds: LOCATION_UPDATE_INTERVAL / 1000) 487 mSpeed = calculateSpeed(lat1: mLatitude, lon1: mLongitude, lat2: location.coordinate.latitude, lon2: location.coordinate.longitude, timeDifferenceInSeconds: LOCATION_UPDATE_INTERVAL / 1000)
......