This repository has been archived on 2022-03-12. You can view files and clone it, but cannot push or open issues or pull requests.
2021-04-02 02:24:13 +03:00

47 lines
1.3 KiB
Objective-C

// Copyright 2015-present 650 Industries. All rights reserved.
#import <EXLocation/EXLocationDelegate.h>
@implementation EXLocationDelegate
- (instancetype)initWithId:(nullable NSNumber *)watchId
withLocMgr:(CLLocationManager *)locMgr
onUpdateLocations:(nullable void (^)(NSArray<CLLocation *> *locations))onUpdateLocations
onUpdateHeadings:(nullable void (^)(CLHeading *newHeading))onUpdateHeadings
onError:(nullable void (^)(NSError *error))onError
{
if ((self = [super init])) {
_watchId = watchId;
_locMgr = locMgr;
_onUpdateLocations = onUpdateLocations;
_onUpdateHeadings = onUpdateHeadings;
_onError = onError;
}
return self;
}
// Delegate method called by CLLocationManager
- (void)locationManager:(CLLocationManager *)manager didUpdateLocations:(NSArray<CLLocation *> *)locations
{
if (_onUpdateLocations) {
_onUpdateLocations(locations);
}
}
- (void)locationManager:(CLLocationManager *)manager didUpdateHeading:(CLHeading *)newHeading
{
if (_onUpdateHeadings) {
_onUpdateHeadings(newHeading);
}
}
// Delegate method called by CLLocationManager
- (void)locationManager:(CLLocationManager *)manager didFailWithError:(nonnull NSError *)error
{
if (_onError) {
_onError(error);
}
}
@end