AutorÃa | Ultima modificación | Ver Log |
/*
* Copyright 2021 Google LLC
*
* Licensed under the Apache License, Version 2.0 (the "License");
* you may not use this file except in compliance with the License.
* You may obtain a copy of the License at
*
* http://www.apache.org/licenses/LICENSE-2.0
*
* Unless required by applicable law or agreed to in writing, software
* distributed under the License is distributed on an "AS IS" BASIS,
* WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
* See the License for the specific language governing permissions and
* limitations under the License.
*/
#import "GoogleUtilities/Environment/Public/GoogleUtilities/GULHeartbeatDateStorageUserDefaults.h"
@interface GULHeartbeatDateStorageUserDefaults ()
/** The storage to store the date of the last sent heartbeat. */
@property(nonatomic, readonly) NSUserDefaults *userDefaults;
/** The key for user defaults to store heartbeat information. */
@property(nonatomic, readonly) NSString *key;
@end
@implementation GULHeartbeatDateStorageUserDefaults
- (instancetype)initWithDefaults:(NSUserDefaults *)defaults key:(NSString *)key {
self = [super init];
if (self) {
_userDefaults = defaults;
_key = key;
}
return self;
}
- (NSMutableDictionary *)heartbeatDictionaryFromDefaults {
NSDictionary *heartbeatDict = [self.userDefaults objectForKey:self.key];
if (heartbeatDict != nil) {
return [heartbeatDict mutableCopy];
} else {
return [NSMutableDictionary dictionary];
}
}
- (nullable NSDate *)heartbeatDateForTag:(NSString *)tag {
NSDate *date = nil;
@synchronized(self.userDefaults) {
NSMutableDictionary *dict = [self heartbeatDictionaryFromDefaults];
date = dict[tag];
}
return date;
}
- (BOOL)setHearbeatDate:(NSDate *)date forTag:(NSString *)tag {
@synchronized(self.userDefaults) {
NSMutableDictionary *dict = [self heartbeatDictionaryFromDefaults];
dict[tag] = date;
[self.userDefaults setObject:dict forKey:self.key];
}
return true;
}
@end