1
0
mirror of https://github.com/danog/Telegram.git synced 2025-01-22 14:02:24 +01:00
Telegram/Watch/Bridge/TGBridgeContext.m
2016-02-25 01:03:51 +01:00

103 lines
3.5 KiB
Objective-C

#import "TGBridgeContext.h"
#import "TGBridgeCommon.h"
NSString *const TGBridgeContextAuthorized = @"authorized";
NSString *const TGBridgeContextUserId = @"userId";
NSString *const TGBridgeContextPasscodeEnabled = @"passcodeEnanled";
NSString *const TGBridgeContextPasscodeEncrypted = @"passcodeEncrypted";
NSString *const TGBridgeContextCustomLocalizationEnabled = @"customLocalizationEnabled";
NSString *const TGBridgeContextMicAccessAllowed = @"micAccessAllowed";
NSString *const TGBridgeContextStartupData = @"startupData";
NSString *const TGBridgeContextStartupDataVersion = @"startupDataVersion";
@implementation TGBridgeContext
- (instancetype)initWithDictionary:(NSDictionary *)dictionary
{
self = [super init];
if (self != nil)
{
_authorized = [dictionary[TGBridgeContextAuthorized] boolValue];
_userId = [dictionary[TGBridgeContextUserId] int32Value];
_passcodeEnabled = [dictionary[TGBridgeContextPasscodeEnabled] boolValue];
_passcodeEncrypted = [dictionary[TGBridgeContextPasscodeEncrypted] boolValue];
_customLocalizationEnabled = [dictionary[TGBridgeContextCustomLocalizationEnabled] boolValue];
_micAccessAllowed = [dictionary[TGBridgeContextMicAccessAllowed] boolValue];
if (dictionary[TGBridgeContextStartupData] != nil)
_startupData = [NSKeyedUnarchiver unarchiveObjectWithData:dictionary[TGBridgeContextStartupData]];
}
return self;
}
- (void)setStartupData:(NSDictionary *)startupData version:(int32_t)version
{
if (startupData != nil)
{
NSMutableDictionary *dict = [startupData mutableCopy];
dict[TGBridgeContextStartupDataVersion] = @(version);
_startupData = dict;
return;
}
_startupData = startupData;
}
- (NSInteger)startupDataVersion
{
if (_startupData == nil)
return 0;
return [_startupData[TGBridgeContextStartupDataVersion] integerValue];
}
- (NSDictionary *)encodeWithStartupData:(bool)withStartupData
{
NSMutableDictionary *dictionary = [[NSMutableDictionary alloc] init];
dictionary[TGBridgeContextAuthorized] = @(self.authorized);
dictionary[TGBridgeContextUserId] = @(self.userId);
dictionary[TGBridgeContextPasscodeEnabled] = @(self.passcodeEnabled);
dictionary[TGBridgeContextPasscodeEncrypted] = @(self.passcodeEncrypted);
dictionary[TGBridgeContextMicAccessAllowed] = @(self.micAccessAllowed);
dictionary[TGBridgeContextCustomLocalizationEnabled] = @(self.customLocalizationEnabled);
if (withStartupData && self.startupData != nil)
dictionary[TGBridgeContextStartupData] = [NSKeyedArchiver archivedDataWithRootObject:self.startupData];
return dictionary;
}
- (BOOL)isEqual:(id)object
{
if (object == self)
return true;
if (!object || ![object isKindOfClass:[self class]])
return false;
TGBridgeContext *context = (TGBridgeContext *)object;
if (context.authorized != self.authorized)
return false;
if (context.userId != self.userId)
return false;
if (context.passcodeEnabled != self.passcodeEnabled)
return false;
if (context.passcodeEncrypted != self.passcodeEncrypted)
return false;
if (context.micAccessAllowed != self.micAccessAllowed)
return false;
if (context.customLocalizationEnabled != self.customLocalizationEnabled)
return false;
return true;
}
+ (int32_t)versionWithCurrentDate
{
return (int32_t)[NSDate date].timeIntervalSinceReferenceDate;
}
@end