Files
keyboard/Pods/LookinServer/Src/Main/Shared/LookinStaticAsyncUpdateTask.m
2025-10-28 10:18:10 +08:00

106 lines
3.1 KiB
Objective-C

#ifdef SHOULD_COMPILE_LOOKIN_SERVER
//
// LookinStaticAsyncUpdateTask.m
// Lookin
//
// Created by Li Kai on 2019/6/21.
// https://lookin.work
//
#import "LookinStaticAsyncUpdateTask.h"
@implementation LookinStaticAsyncUpdateTask
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:@(self.oid) forKey:@"oid"];
[aCoder encodeInteger:self.taskType forKey:@"taskType"];
[aCoder encodeObject:self.clientReadableVersion forKey:@"clientReadableVersion"];
[aCoder encodeInteger:self.attrRequest forKey:@"attrRequest"];
[aCoder encodeBool:self.needBasisVisualInfo forKey:@"needBasisVisualInfo"];
[aCoder encodeBool:self.needSubitems forKey:@"needSubitems"];
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
if (self = [super init]) {
self.oid = [[aDecoder decodeObjectForKey:@"oid"] unsignedLongValue];
self.taskType = [aDecoder decodeIntegerForKey:@"taskType"];
self.clientReadableVersion = [aDecoder decodeObjectForKey:@"clientReadableVersion"];
if ([aDecoder containsValueForKey:@"attrRequest"]) {
NSInteger value = [aDecoder decodeIntegerForKey:@"attrRequest"];
if (value >= LookinDetailUpdateTaskAttrRequest_Automatic && value <= LookinDetailUpdateTaskAttrRequest_NotNeed) {
self.attrRequest = value;
} else {
self.attrRequest = LookinDetailUpdateTaskAttrRequest_Automatic;
}
} else {
self.attrRequest = LookinDetailUpdateTaskAttrRequest_Automatic;
}
if ([aDecoder containsValueForKey:@"needBasisVisualInfo"]) {
self.needBasisVisualInfo = [aDecoder decodeBoolForKey:@"needBasisVisualInfo"];
} else {
self.needBasisVisualInfo = NO;
}
if ([aDecoder containsValueForKey:@"needSubitems"]) {
self.needSubitems = [aDecoder decodeBoolForKey:@"needSubitems"];
} else {
self.needSubitems = NO;
}
}
return self;
}
+ (BOOL)supportsSecureCoding {
return YES;
}
- (NSUInteger)hash {
return self.oid ^ self.taskType ^ self.attrRequest ^ self.needBasisVisualInfo ^ self.needSubitems;
}
- (BOOL)isEqual:(id)object {
if (self == object) {
return YES;
}
if (![object isKindOfClass:[LookinStaticAsyncUpdateTask class]]) {
return NO;
}
LookinStaticAsyncUpdateTask *targetTask = object;
if (self.oid == targetTask.oid
&& self.taskType == targetTask.taskType
&& self.attrRequest == targetTask.attrRequest
&& self.needBasisVisualInfo == targetTask.needBasisVisualInfo
&& self.needSubitems == targetTask.needSubitems) {
return YES;
}
return NO;
}
@end
@implementation LookinStaticAsyncUpdateTasksPackage
- (void)encodeWithCoder:(NSCoder *)aCoder {
[aCoder encodeObject:self.tasks forKey:@"tasks"];
}
- (instancetype)initWithCoder:(NSCoder *)aDecoder {
if (self = [super init]) {
self.tasks = [aDecoder decodeObjectForKey:@"tasks"];
}
return self;
}
+ (BOOL)supportsSecureCoding {
return YES;
}
@end
#endif /* SHOULD_COMPILE_LOOKIN_SERVER */