AppleKeyboardStateManager.m [plain text]
//
// AppleKeyboardStateManager.m
// AppleKeyboardFilter
//
// Created by Daniel Kim on 3/22/18.
// Copyright © 2018 Apple. All rights reserved.
//
#import <Foundation/Foundation.h>
#import "AppleKeyboardStateManager.h"
@interface AppleKeyboardStateManager()
@property (nonatomic) NSMutableSet <NSNumber *> *capsLockStateTable;
@end
@implementation AppleKeyboardStateManager
+ (instancetype)sharedManager {
static AppleKeyboardStateManager *sharedManager = nil;
static dispatch_once_t onceToken;
dispatch_once(&onceToken, ^{
sharedManager = [[self alloc] init];
});
return sharedManager;
}
-(instancetype)init
{
self = [super init];
if (!self) {
return self;
}
_capsLockStateTable = [NSMutableSet new];
return self;
}
- (BOOL)isCapsLockEnabled:(NSNumber *)locationID
{
BOOL result = NO;
if (!locationID) {
return result;
}
@synchronized (self) {
result = [_capsLockStateTable containsObject:locationID];
}
return result;
}
- (void)setCapsLockEnabled:(BOOL)enable
locationID:(NSNumber *)locationID
{
if (!locationID) {
return;
}
@synchronized (self) {
if (enable) {
[_capsLockStateTable addObject:locationID];
} else {
[_capsLockStateTable removeObject:locationID];
}
}
}
@end