OTPairingSession.m   [plain text]

#import <KeychainCircle/KeychainCircle.h>

#if !TARGET_OS_SIMULATOR
#import <MobileKeyBag/MobileKeyBag.h>
#endif /* !TARGET_OS_SIMULATOR */

#import "OTPairingSession.h"

@interface OTPairingSession ()
@property (readwrite) NSString *identifier;
@property (readwrite) KCPairingChannel *channel;
@end

@implementation OTPairingSession

- (instancetype)initWithDeviceInfo:(OTDeviceInformationActualAdapter *)deviceInfo
{
return [self initWithDeviceInfo:deviceInfo identifier:[[NSUUID UUID] UUIDString]];
}

- (instancetype)initWithDeviceInfo:(OTDeviceInformationActualAdapter *)deviceInfo identifier:(NSString *)identifier
{
KCPairingChannelContext *channelContext = nil;

self = [super init];
if (self != nil) {
self.identifier = identifier;

channelContext = [KCPairingChannelContext new];
channelContext.uniqueClientID = [NSUUID UUID].UUIDString;
channelContext.uniqueDeviceID = [NSUUID UUID].UUIDString;
channelContext.intent = KCPairingIntent_Type_SilentRepair;
channelContext.model = deviceInfo.modelID;
channelContext.osVersion = deviceInfo.osVersion;

#if TARGET_OS_WATCH
self.channel = [KCPairingChannel pairingChannelInitiator:channelContext];
#elif TARGET_OS_IOS
self.channel = [KCPairingChannel pairingChannelAcceptor:channelContext];
#endif
}
return self;
}

- (void)dealloc
{
#if !TARGET_OS_SIMULATOR
if (self.lockAssertion) {
CFRelease(self.lockAssertion);
self.lockAssertion = NULL;
}
#endif /* !TARGET_OS_SIMULATOR */
}

@end