// SDLKeyboardProperties.m // #import "SDLKeyboardProperties.h" #import "NSMutableDictionary+Store.h" #import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN @implementation SDLKeyboardProperties - (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray *)autoCompleteList { self = [self initWithLanguage:language keyboardLayout:layout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteList:autoCompleteList maskInputCharacters:nil customKeys:nil]; if (!self) { return nil; } self.autoCompleteText = autoCompleteText; return self; } - (instancetype)initWithLanguage:(nullable SDLLanguage)language keyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteList:(nullable NSArray *)autoCompleteList { return [self initWithLanguage:language keyboardLayout:keyboardLayout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteList:autoCompleteList maskInputCharacters:nil customKeys:nil]; } - (instancetype)initWithLanguage:(nullable SDLLanguage)language keyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray *)limitedCharacterList autoCompleteList:(nullable NSArray *)autoCompleteList maskInputCharacters:(nullable SDLKeyboardInputMask)maskInputCharacters customKeys:(nullable NSArray *)customKeys { self = [self init]; if (!self) { return nil; } self.language = language; self.keyboardLayout = keyboardLayout; self.keypressMode = keypressMode; self.limitedCharacterList = limitedCharacterList; self.autoCompleteList = autoCompleteList; self.maskInputCharacters = maskInputCharacters; self.customKeys = customKeys; return self; } - (void)setLanguage:(nullable SDLLanguage)language { [self.store sdl_setObject:language forName:SDLRPCParameterNameLanguage]; } - (nullable SDLLanguage)language { return [self.store sdl_enumForName:SDLRPCParameterNameLanguage error:nil]; } - (void)setKeyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout { [self.store sdl_setObject:keyboardLayout forName:SDLRPCParameterNameKeyboardLayout]; } - (nullable SDLKeyboardLayout)keyboardLayout { return [self.store sdl_enumForName:SDLRPCParameterNameKeyboardLayout error:nil]; } - (void)setKeypressMode:(nullable SDLKeypressMode)keypressMode { [self.store sdl_setObject:keypressMode forName:SDLRPCParameterNameKeypressMode]; } - (nullable SDLKeypressMode)keypressMode { return [self.store sdl_enumForName:SDLRPCParameterNameKeypressMode error:nil]; } - (void)setLimitedCharacterList:(nullable NSArray *)limitedCharacterList { [self.store sdl_setObject:limitedCharacterList forName:SDLRPCParameterNameLimitedCharacterList]; } - (nullable NSArray *)limitedCharacterList { return [self.store sdl_objectsForName:SDLRPCParameterNameLimitedCharacterList ofClass:NSString.class error:nil]; } - (void)setAutoCompleteText:(nullable NSString *)autoCompleteText { [self.store sdl_setObject:autoCompleteText forName:SDLRPCParameterNameAutoCompleteText]; } - (nullable NSString *)autoCompleteText { return [self.store sdl_objectForName:SDLRPCParameterNameAutoCompleteText ofClass:NSString.class error:nil]; } - (void)setAutoCompleteList:(nullable NSArray *)autoCompleteList { [self.store sdl_setObject:autoCompleteList forName:SDLRPCParameterNameAutoCompleteList]; } - (nullable NSArray *)autoCompleteList { return [self.store sdl_objectsForName:SDLRPCParameterNameAutoCompleteList ofClass:NSString.class error:nil]; } - (void)setMaskInputCharacters:(nullable SDLKeyboardInputMask)maskInputCharacters { [self.store sdl_setObject:maskInputCharacters forName:SDLRPCParameterNameMaskInputCharacters]; } - (nullable SDLKeyboardInputMask)maskInputCharacters { return [self.store sdl_enumForName:SDLRPCParameterNameMaskInputCharacters error:nil]; } - (void)setCustomKeys:(nullable NSArray *)customKeys { [self.store sdl_setObject:customKeys forName:SDLRPCParameterNameCustomKeys]; } - (nullable NSArray *)customKeys { return [self.store sdl_objectsForName:SDLRPCParameterNameCustomKeys ofClass:NSString.class error:nil]; } @end NS_ASSUME_NONNULL_END