diff options
author | leonid lokhmatov, Luxoft <zaqqqqqqqq@gmail.com> | 2021-02-09 09:04:03 +0200 |
---|---|---|
committer | leonid lokhmatov, Luxoft <zaqqqqqqqq@gmail.com> | 2021-02-09 09:04:03 +0200 |
commit | 6fe8d4f9a2b46239be30b48aaf51cf2d8af1b26f (patch) | |
tree | 66bbc7c52b659f59a8791fd167d1f61eeba79fa2 | |
parent | 74852b52f2b01cd8131cbc188c826172cbfa49c2 (diff) | |
download | sdl_ios-6fe8d4f9a2b46239be30b48aaf51cf2d8af1b26f.tar.gz |
SDL0238 'Keyboard Enhancements r2': implement, add new classes, enums, etc
21 files changed, 607 insertions, 137 deletions
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 04d451b0e..38507c961 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -294,7 +294,7 @@ 4A402561250134CB0080E159 /* SDLStabilityControlsStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = 4A40255F250134CA0080E159 /* SDLStabilityControlsStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4A404C66250BBE11003AB65D /* SDLTextAndGraphicUpdateOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A404C65250BBE11003AB65D /* SDLTextAndGraphicUpdateOperationSpec.m */; }; 4A404C68250BBE2B003AB65D /* SDLTextAndGraphicStateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A404C67250BBE2B003AB65D /* SDLTextAndGraphicStateSpec.m */; }; - 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */; }; + 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */; }; 4A457DC324A2933E00386CBA /* SDLLifecycleRPCAdapterSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A457DC224A2933E00386CBA /* SDLLifecycleRPCAdapterSpec.m */; }; 4A457DD324A3886700386CBA /* SDLLifecycleSyncPDataHandlerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A457DD224A3886700386CBA /* SDLLifecycleSyncPDataHandlerSpec.m */; }; 4A457DD524A3C16E00386CBA /* SDLLifecycleMobileHMIStateHandlerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4A457DD424A3C16E00386CBA /* SDLLifecycleMobileHMIStateHandlerSpec.m */; }; @@ -1384,9 +1384,9 @@ 4ABB2BA724F850AE0061BF55 /* SDLImage.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABB2B9924F850AD0061BF55 /* SDLImage.h */; settings = {ATTRIBUTES = (Public, ); }; }; 4ABB2BA824F850AE0061BF55 /* SDLLightState.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ABB2B9A24F850AD0061BF55 /* SDLLightState.m */; }; 4ABB2BA924F850AE0061BF55 /* SDLImageResolution.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABB2B9B24F850AD0061BF55 /* SDLImageResolution.h */; settings = {ATTRIBUTES = (Public, ); }; }; - 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */; }; - 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */; }; - 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */; }; + 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */ = {isa = PBXBuildFile; fileRef = 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */; }; + 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */ = {isa = PBXBuildFile; fileRef = 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */; }; + 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */; }; 4AE8A7022537796E000666C0 /* SmartDeviceLink.h in Headers */ = {isa = PBXBuildFile; fileRef = 4AE8A7012537796E000666C0 /* SmartDeviceLink.h */; settings = {ATTRIBUTES = (Public, ); }; }; 5D0A9F911F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F901F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m */; }; 5D0A9F931F15560B00CC80DD /* SDLNavigationCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */; }; @@ -1672,21 +1672,27 @@ B360F9E5255F52BA0027CA17 /* SDLSeatOccupancy.h in Headers */ = {isa = PBXBuildFile; fileRef = B360F9E3255F52B90027CA17 /* SDLSeatOccupancy.h */; settings = {ATTRIBUTES = (Public, ); }; }; B38389D6257C187500420C11 /* SDLSeatOccupancySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38389D4257C187400420C11 /* SDLSeatOccupancySpec.m */; }; B38389D7257C187500420C11 /* SDLSeatStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38389D5257C187500420C11 /* SDLSeatStatusSpec.m */; }; - B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */; }; - B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */; }; - B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */; }; - B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */; }; - B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */; }; - B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */; }; - B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */; }; - B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A38257C6AB600420C11 /* SDLDoorStatus.m */; }; - B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A39257C6AB600420C11 /* SDLDoorStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */; }; + B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */; }; + B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */; }; + B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */; }; + B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */; }; + B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */; }; + B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */; }; + B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */ = {isa = PBXBuildFile; fileRef = B3838A38257C6AB600420C11 /* SDLDoorStatus.m */; }; + B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */ = {isa = PBXBuildFile; fileRef = B3838A39257C6AB600420C11 /* SDLDoorStatus.h */; settings = {ATTRIBUTES = (Public, ); }; }; B38D8E7E24A118BD00B977D0 /* SDLGearStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */; }; B38D8E8024A1E3D000B977D0 /* SDLTransmissionTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E7F24A1E3D000B977D0 /* SDLTransmissionTypeSpec.m */; }; B38D8E8224A1F53500B977D0 /* SDLCapacityUnitSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B38D8E8124A1F53500B977D0 /* SDLCapacityUnitSpec.m */; }; + B3A9D9E125D2571000CDFD21 /* SDLKeyboardCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9D9DF25D2571000CDFD21 /* SDLKeyboardCapabilities.m */; }; + B3A9D9E225D2571000CDFD21 /* SDLKeyboardCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = B3A9D9E025D2571000CDFD21 /* SDLKeyboardCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3A9D9E725D2578F00CDFD21 /* SDLKeyboardLayoutCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9D9E525D2578F00CDFD21 /* SDLKeyboardLayoutCapability.m */; }; + B3A9D9E825D2578F00CDFD21 /* SDLKeyboardLayoutCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = B3A9D9E625D2578F00CDFD21 /* SDLKeyboardLayoutCapability.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3A9D9ED25D2586C00CDFD21 /* SDLKeyboardInputMask.h in Headers */ = {isa = PBXBuildFile; fileRef = B3A9D9EB25D2586C00CDFD21 /* SDLKeyboardInputMask.h */; settings = {ATTRIBUTES = (Public, ); }; }; + B3A9D9EE25D2586C00CDFD21 /* SDLKeyboardInputMask.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9D9EC25D2586C00CDFD21 /* SDLKeyboardInputMask.m */; }; B3EC9E6E2579AA010039F3AA /* SDLClimateDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3EC9E6D2579AA010039F3AA /* SDLClimateDataSpec.m */; }; B3F7918324E062C200DB5CAF /* SDLGetVehicleDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */; }; C975877F257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = C975877E257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m */; }; @@ -2098,8 +2104,8 @@ 4A40255F250134CA0080E159 /* SDLStabilityControlsStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLStabilityControlsStatus.h; path = public/SDLStabilityControlsStatus.h; sourceTree = "<group>"; }; 4A404C65250BBE11003AB65D /* SDLTextAndGraphicUpdateOperationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicUpdateOperationSpec.m; path = DevAPISpecs/SDLTextAndGraphicUpdateOperationSpec.m; sourceTree = "<group>"; }; 4A404C67250BBE2B003AB65D /* SDLTextAndGraphicStateSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLTextAndGraphicStateSpec.m; path = DevAPISpecs/SDLTextAndGraphicStateSpec.m; sourceTree = "<group>"; }; - 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestConnectionRequestObject.h; sourceTree = "<group>"; }; - 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TestConnectionRequestObject.m; sourceTree = "<group>"; }; + 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = TestConnectionRequestObject.h; sourceTree = "<group>"; }; + 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = TestConnectionRequestObject.m; sourceTree = "<group>"; }; 4A457DC224A2933E00386CBA /* SDLLifecycleRPCAdapterSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleRPCAdapterSpec.m; path = DevAPISpecs/SDLLifecycleRPCAdapterSpec.m; sourceTree = "<group>"; }; 4A457DD224A3886700386CBA /* SDLLifecycleSyncPDataHandlerSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleSyncPDataHandlerSpec.m; path = DevAPISpecs/SDLLifecycleSyncPDataHandlerSpec.m; sourceTree = "<group>"; }; 4A457DD424A3C16E00386CBA /* SDLLifecycleMobileHMIStateHandlerSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleMobileHMIStateHandlerSpec.m; path = DevAPISpecs/SDLLifecycleMobileHMIStateHandlerSpec.m; sourceTree = "<group>"; }; @@ -3195,9 +3201,9 @@ 4ABB2B9924F850AD0061BF55 /* SDLImage.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLImage.h; path = public/SDLImage.h; sourceTree = "<group>"; }; 4ABB2B9A24F850AD0061BF55 /* SDLLightState.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLightState.m; path = public/SDLLightState.m; sourceTree = "<group>"; }; 4ABB2B9B24F850AD0061BF55 /* SDLImageResolution.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLImageResolution.h; path = public/SDLImageResolution.h; sourceTree = "<group>"; }; - 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperation.m; path = private/SDLVoiceCommandUpdateOperation.m; sourceTree = "<group>"; }; - 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandUpdateOperation.h; path = private/SDLVoiceCommandUpdateOperation.h; sourceTree = "<group>"; }; - 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperationSpec.m; path = DevAPISpecs/SDLVoiceCommandUpdateOperationSpec.m; sourceTree = "<group>"; }; + 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperation.m; path = private/SDLVoiceCommandUpdateOperation.m; sourceTree = "<group>"; }; + 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLVoiceCommandUpdateOperation.h; path = private/SDLVoiceCommandUpdateOperation.h; sourceTree = "<group>"; }; + 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = SDLVoiceCommandUpdateOperationSpec.m; path = DevAPISpecs/SDLVoiceCommandUpdateOperationSpec.m; sourceTree = "<group>"; }; 4AE8A7012537796E000666C0 /* SmartDeviceLink.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SmartDeviceLink.h; path = public/SmartDeviceLink.h; sourceTree = "<group>"; }; 4AE8A707253779F9000666C0 /* EAAccessory+OCMock.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = "EAAccessory+OCMock.h"; sourceTree = "<group>"; }; 5D0A9F901F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityTypeSpec.m; sourceTree = "<group>"; }; @@ -3524,21 +3530,27 @@ B360F9E3255F52B90027CA17 /* SDLSeatOccupancy.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLSeatOccupancy.h; path = public/SDLSeatOccupancy.h; sourceTree = "<group>"; }; B38389D4257C187400420C11 /* SDLSeatOccupancySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLSeatOccupancySpec.m; path = SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatOccupancySpec.m; sourceTree = SOURCE_ROOT; }; B38389D5257C187500420C11 /* SDLSeatStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLSeatStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSeatStatusSpec.m; sourceTree = SOURCE_ROOT; }; - B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDoorStatusTypeSpec.m; sourceTree = "<group>"; }; - B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m; sourceTree = SOURCE_ROOT; }; - B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m; sourceTree = SOURCE_ROOT; }; - B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m; sourceTree = SOURCE_ROOT; }; - B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLRoofStatus.h; path = public/SDLRoofStatus.h; sourceTree = "<group>"; }; - B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatus.m; path = public/SDLRoofStatus.m; sourceTree = "<group>"; }; - B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatusType.h; path = public/SDLDoorStatusType.h; sourceTree = "<group>"; }; - B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusType.m; path = public/SDLDoorStatusType.m; sourceTree = "<group>"; }; - B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatus.m; path = public/SDLGateStatus.m; sourceTree = "<group>"; }; - B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLGateStatus.h; path = public/SDLGateStatus.h; sourceTree = "<group>"; }; - B3838A38257C6AB600420C11 /* SDLDoorStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatus.m; path = public/SDLDoorStatus.m; sourceTree = "<group>"; }; - B3838A39257C6AB600420C11 /* SDLDoorStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatus.h; path = public/SDLDoorStatus.h; sourceTree = "<group>"; }; + B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDoorStatusTypeSpec.m; sourceTree = "<group>"; }; + B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDoorStatusSpec.m; sourceTree = SOURCE_ROOT; }; + B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLGateStatusSpec.m; sourceTree = SOURCE_ROOT; }; + B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatusSpec.m; path = SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRoofStatusSpec.m; sourceTree = SOURCE_ROOT; }; + B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLRoofStatus.h; path = public/SDLRoofStatus.h; sourceTree = "<group>"; }; + B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLRoofStatus.m; path = public/SDLRoofStatus.m; sourceTree = "<group>"; }; + B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatusType.h; path = public/SDLDoorStatusType.h; sourceTree = "<group>"; }; + B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatusType.m; path = public/SDLDoorStatusType.m; sourceTree = "<group>"; }; + B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLGateStatus.m; path = public/SDLGateStatus.m; sourceTree = "<group>"; }; + B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLGateStatus.h; path = public/SDLGateStatus.h; sourceTree = "<group>"; }; + B3838A38257C6AB600420C11 /* SDLDoorStatus.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDoorStatus.m; path = public/SDLDoorStatus.m; sourceTree = "<group>"; }; + B3838A39257C6AB600420C11 /* SDLDoorStatus.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLDoorStatus.h; path = public/SDLDoorStatus.h; sourceTree = "<group>"; }; B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGearStatusSpec.m; sourceTree = "<group>"; }; B38D8E7F24A1E3D000B977D0 /* SDLTransmissionTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLTransmissionTypeSpec.m; sourceTree = "<group>"; }; B38D8E8124A1F53500B977D0 /* SDLCapacityUnitSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCapacityUnitSpec.m; sourceTree = "<group>"; }; + B3A9D9DF25D2571000CDFD21 /* SDLKeyboardCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardCapabilities.m; path = public/SDLKeyboardCapabilities.m; sourceTree = "<group>"; }; + B3A9D9E025D2571000CDFD21 /* SDLKeyboardCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardCapabilities.h; path = public/SDLKeyboardCapabilities.h; sourceTree = "<group>"; }; + B3A9D9E525D2578F00CDFD21 /* SDLKeyboardLayoutCapability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardLayoutCapability.m; path = public/SDLKeyboardLayoutCapability.m; sourceTree = "<group>"; }; + B3A9D9E625D2578F00CDFD21 /* SDLKeyboardLayoutCapability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardLayoutCapability.h; path = public/SDLKeyboardLayoutCapability.h; sourceTree = "<group>"; }; + B3A9D9EB25D2586C00CDFD21 /* SDLKeyboardInputMask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardInputMask.h; path = public/SDLKeyboardInputMask.h; sourceTree = "<group>"; }; + B3A9D9EC25D2586C00CDFD21 /* SDLKeyboardInputMask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardInputMask.m; path = public/SDLKeyboardInputMask.m; sourceTree = "<group>"; }; B3EC9E6D2579AA010039F3AA /* SDLClimateDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLClimateDataSpec.m; sourceTree = "<group>"; }; BB3C600D221AEF37007DD4CA /* NSMutableDictionary+StoreSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+StoreSpec.m"; path = "DevAPISpecs/NSMutableDictionary+StoreSpec.m"; sourceTree = "<group>"; }; C975877E257AEFDB0066F271 /* SDLSeekIndicatorTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeekIndicatorTypeSpec.m; sourceTree = "<group>"; }; @@ -3737,7 +3749,7 @@ 162E81F11A9BDE8A00906325 /* SDLDisplayTypeSpec.m */, 1EAA475D2035B177000FE74B /* SDLDisplayModeSpec.m */, 1EAA47612035B1AE000FE74B /* SDLDistanceUnitSpec.m */, - B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */, + B3838A00257C47FD00420C11 /* SDLDoorStatusTypeSpec.m */, 162E81F21A9BDE8A00906325 /* SDLDriverDistractionStateSpec.m */, 162E81F31A9BDE8A00906325 /* SDLECallConfirmationStatusSpec.m */, 5DD8406420FCE21A0082CE04 /* SDLElectronicParkBrakeStatusSpec.m */, @@ -4033,13 +4045,13 @@ 162E82981A9BDE8A00906325 /* SDLDIDResult.m */, 9FA0D00522DF06D3009CF344 /* SDLDisplayCapabilitySpec.m */, 162E82991A9BDE8A00906325 /* SDLDisplayCapabilitiesSpec.m */, - B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */, + B3838A08257C4EB300420C11 /* SDLDoorStatusSpec.m */, 4A1B036E24CF484E008C6B13 /* SDLDriverDistractionCapabilitySpec.m */, 162E829A1A9BDE8A00906325 /* SDLECallInfoSpec.m */, 162E829B1A9BDE8A00906325 /* SDLEmergencyEventSpec.m */, 88B3BFA120DA911E00943565 /* SDLFuelRangeSpec.m */, 1EAA47752036B847000FE74B /* SDLEqualizerSettingsSpec.m */, - B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */, + B3838A0E257C4EE100420C11 /* SDLGateStatusSpec.m */, B38D8E7D24A118BD00B977D0 /* SDLGearStatusSpec.m */, 162E829C1A9BDE8A00906325 /* SDLGPSDataSpec.m */, 88EED83A1F33BECB00E6C42E /* SDLHapticRectSpec.m */, @@ -4081,14 +4093,12 @@ 1EE8C44F1F38629200FDC2CF /* SDLRemoteControlCapabilitiesSpec.m */, 5DADA7771F4E059E0084D17D /* SDLRectangleSpec.m */, 5D92934F20AF526200FCC775 /* SDLRGBColorSpec.m */, - B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */, + B3838A14257C4EFD00420C11 /* SDLRoofStatusSpec.m */, 162E82A71A9BDE8A00906325 /* SDLScreenParamsSpec.m */, B38389D4257C187400420C11 /* SDLSeatOccupancySpec.m */, B38389D5257C187500420C11 /* SDLSeatStatusSpec.m */, 1E89B0E1203196B800A47992 /* SDLSeatControlCapabilitiesSpec.m */, 1E89B0DD2031636000A47992 /* SDLSeatControlDataSpec.m */, - 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */, - 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */, 1EB59CD9202DCEEC00343A61 /* SDLSeatMemoryActionSpec.m */, C9758784257F4C570066F271 /* SDLSeekStreamingIndicatorSpec.m */, 162E82A81A9BDE8A00906325 /* SDLSingleTireStatusSpec.m */, @@ -4117,8 +4127,8 @@ 8855F9DF220C93B700A5C897 /* SDLWeatherDataSpec.m */, 880D2679220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m */, 880D267F220E038800B3F496 /* SDLWeatherServiceManifestSpec.m */, - 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */, - 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */, + 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */, + 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */, 9FA0CFFF22DF06A0009CF344 /* SDLWindowCapabilitySpec.m */, 9FA0D00222DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m */, ); @@ -4184,47 +4194,47 @@ path = MessageSpecs; sourceTree = "<group>"; }; - 4A32B3E425559D93001FFA26 /* Voice Cammands */ = { - isa = PBXGroup; - children = ( - 4A32B3E525559DA4001FFA26 /* Cells */, - 4A32B3E625559DAC001FFA26 /* Operations */, - 4ABB25A824F7E6E10061BF55 /* SDLVoiceCommandManager.h */, - 4ABB25A724F7E6E10061BF55 /* SDLVoiceCommandManager.m */, - ); - name = "Voice Cammands"; - sourceTree = "<group>"; - }; - 4A32B3E525559DA4001FFA26 /* Cells */ = { - isa = PBXGroup; - children = ( - 4ABB259124F7E6820061BF55 /* SDLVoiceCommand.h */, - 4ABB259024F7E6820061BF55 /* SDLVoiceCommand.m */, - ); - name = Cells; - sourceTree = "<group>"; - }; - 4A32B3E625559DAC001FFA26 /* Operations */ = { - isa = PBXGroup; - children = ( - 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */, - 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */, - ); - name = Operations; - sourceTree = "<group>"; - }; - 4A32B3F325559F37001FFA26 /* Menu */ = { - isa = PBXGroup; - children = ( - 5D76751022D907F500E8D71A /* Configuration */, - 755F175E229F14F70041B9CB /* Dynamic Menu Update Utilities */, - 5D339CEC207C08AB000CC364 /* Cells */, - 4ABB25A924F7E6E10061BF55 /* SDLMenuManager.h */, - 4ABB25A624F7E6E10061BF55 /* SDLMenuManager.m */, - ); - name = Menu; - sourceTree = "<group>"; - }; + 4A32B3E425559D93001FFA26 /* Voice Cammands */ = { + isa = PBXGroup; + children = ( + 4A32B3E525559DA4001FFA26 /* Cells */, + 4A32B3E625559DAC001FFA26 /* Operations */, + 4ABB25A824F7E6E10061BF55 /* SDLVoiceCommandManager.h */, + 4ABB25A724F7E6E10061BF55 /* SDLVoiceCommandManager.m */, + ); + name = "Voice Cammands"; + sourceTree = "<group>"; + }; + 4A32B3E525559DA4001FFA26 /* Cells */ = { + isa = PBXGroup; + children = ( + 4ABB259124F7E6820061BF55 /* SDLVoiceCommand.h */, + 4ABB259024F7E6820061BF55 /* SDLVoiceCommand.m */, + ); + name = Cells; + sourceTree = "<group>"; + }; + 4A32B3E625559DAC001FFA26 /* Operations */ = { + isa = PBXGroup; + children = ( + 4ABED25A257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h */, + 4ABED259257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m */, + ); + name = Operations; + sourceTree = "<group>"; + }; + 4A32B3F325559F37001FFA26 /* Menu */ = { + isa = PBXGroup; + children = ( + 5D76751022D907F500E8D71A /* Configuration */, + 755F175E229F14F70041B9CB /* Dynamic Menu Update Utilities */, + 5D339CEC207C08AB000CC364 /* Cells */, + 4ABB25A924F7E6E10061BF55 /* SDLMenuManager.h */, + 4ABB25A624F7E6E10061BF55 /* SDLMenuManager.m */, + ); + name = Menu; + sourceTree = "<group>"; + }; 4A3BA4D9248E8EBB003E56B8 /* SystemRequest Handler */ = { isa = PBXGroup; children = ( @@ -4318,16 +4328,16 @@ name = "Status Manager"; sourceTree = "<group>"; }; - 4AD1F16A2559952D00637FE1 /* Voice Command */ = { - isa = PBXGroup; - children = ( - 5DF40B27208FDA9700DD6FDA /* SDLVoiceCommandManagerSpec.m */, - 5DAB5F5220989A8300A020C8 /* SDLVoiceCommandSpec.m */, - 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */, - ); - name = "Voice Command"; - sourceTree = "<group>"; - }; + 4AD1F16A2559952D00637FE1 /* Voice Command */ = { + isa = PBXGroup; + children = ( + 5DF40B27208FDA9700DD6FDA /* SDLVoiceCommandManagerSpec.m */, + 5DAB5F5220989A8300A020C8 /* SDLVoiceCommandSpec.m */, + 4AD1F1732559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m */, + ); + name = "Voice Command"; + sourceTree = "<group>"; + }; 5D0218EB1A8E795700D1BF62 /* UI */ = { isa = PBXGroup; children = ( @@ -4499,9 +4509,9 @@ 5D339CE5207C0651000CC364 /* Menu */ = { isa = PBXGroup; children = ( - 4A32B3F325559F37001FFA26 /* Menu */, - 4A32B3E425559D93001FFA26 /* Voice Cammands */, - ); + 4A32B3F325559F37001FFA26 /* Menu */, + 4A32B3E425559D93001FFA26 /* Voice Cammands */, + ); name = Menu; sourceTree = "<group>"; }; @@ -4550,7 +4560,7 @@ children = ( 5D4019B11A76EC350006B0C2 /* Examples */, 5D61FA1D1A84237100846EE7 /* SmartDeviceLink */, - 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */, + 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */, 5D61FA2C1A84237100846EE7 /* SmartDeviceLinkTests */, 5D4019B01A76EC350006B0C2 /* Products */, ); @@ -5087,8 +5097,8 @@ 4ABB2B2524F84EF10061BF55 /* SDLDisplayCapabilities.m */, 4ABB2B3324F84EF30061BF55 /* SDLDisplayCapability.h */, 4ABB2B3824F84EF40061BF55 /* SDLDisplayCapability.m */, - B3838A39257C6AB600420C11 /* SDLDoorStatus.h */, - B3838A38257C6AB600420C11 /* SDLDoorStatus.m */, + B3838A39257C6AB600420C11 /* SDLDoorStatus.h */, + B3838A38257C6AB600420C11 /* SDLDoorStatus.m */, 4ABB2B3724F84EF40061BF55 /* SDLDriverDistractionCapability.h */, 4ABB2B2B24F84EF20061BF55 /* SDLDriverDistractionCapability.m */, 4A8BD3B924F98F89000945E3 /* SDLDynamicUpdateCapabilities.h */, @@ -5101,8 +5111,8 @@ 4ABB2B5D24F84FE30061BF55 /* SDLEqualizerSettings.m */, 4ABB2B6424F84FE50061BF55 /* SDLFuelRange.h */, 4ABB2B6524F84FE50061BF55 /* SDLFuelRange.m */, - B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */, - B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */, + B3838A2F257C5D1B00420C11 /* SDLGateStatus.h */, + B3838A2E257C5D1A00420C11 /* SDLGateStatus.m */, 4ABB2B5C24F84FE30061BF55 /* SDLGearStatus.h */, 4ABB2B5F24F84FE40061BF55 /* SDLGearStatus.m */, 4ABB2B5A24F84FE30061BF55 /* SDLGPSData.h */, @@ -5127,6 +5137,12 @@ 4ABB2B9824F850AD0061BF55 /* SDLImageField.m */, 4ABB2B9B24F850AD0061BF55 /* SDLImageResolution.h */, 4ABB2B9124F850AC0061BF55 /* SDLImageResolution.m */, + B3A9D9E025D2571000CDFD21 /* SDLKeyboardCapabilities.h */, + B3A9D9DF25D2571000CDFD21 /* SDLKeyboardCapabilities.m */, + B3A9D9EB25D2586C00CDFD21 /* SDLKeyboardInputMask.h */, + B3A9D9EC25D2586C00CDFD21 /* SDLKeyboardInputMask.m */, + B3A9D9E625D2578F00CDFD21 /* SDLKeyboardLayoutCapability.h */, + B3A9D9E525D2578F00CDFD21 /* SDLKeyboardLayoutCapability.m */, 4ABB2B9224F850AC0061BF55 /* SDLLightCapabilities.h */, 4ABB2B9624F850AD0061BF55 /* SDLLightCapabilities.m */, 4ABB2B8F24F850AB0061BF55 /* SDLLightControlCapabilities.h */, @@ -5191,8 +5207,8 @@ 4A8BD26C24F9343D000945E3 /* SDLRemoteControlCapabilities.m */, 4A8BD28724F934F2000945E3 /* SDLRGBColor.h */, 4A8BD28A24F934F3000945E3 /* SDLRGBColor.m */, - B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */, - B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */, + B3838A1E257C5BAF00420C11 /* SDLRoofStatus.h */, + B3838A1F257C5BB000420C11 /* SDLRoofStatus.m */, 4A8BD29124F93533000945E3 /* SDLScreenParams.h */, 4A8BD28F24F93533000945E3 /* SDLScreenParams.m */, 4A8BD29024F93533000945E3 /* SDLSeatControlCapabilities.h */, @@ -5330,8 +5346,8 @@ 4ABB272A24F7FD1B0061BF55 /* SDLDistanceUnit.m */, 4ABB272D24F7FD1C0061BF55 /* SDLDisplayType.h */, 4ABB272B24F7FD1B0061BF55 /* SDLDisplayType.m */, - B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */, - B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */, + B3838A26257C5CE600420C11 /* SDLDoorStatusType.h */, + B3838A27257C5CE600420C11 /* SDLDoorStatusType.m */, 4ABB274424F7FD9A0061BF55 /* SDLDriverDistractionState.h */, 4ABB274924F7FD9B0061BF55 /* SDLDriverDistractionState.m */, 4ABB274724F7FD9B0061BF55 /* SDLECallConfirmationStatus.h */, @@ -6211,7 +6227,7 @@ 5DAD5F8220507DED0025624C /* Soft Button */, 88D0E5D42478656B009469AB /* Subscribe Button */, 5DAD5F8320507DF30025624C /* Text and Graphic */, - 4AD1F16A2559952D00637FE1 /* Voice Command */, + 4AD1F16A2559952D00637FE1 /* Voice Command */, 5DAD5F8420507E1F0025624C /* SDLScreenManagerSpec.m */, ); name = Screen; @@ -6282,8 +6298,8 @@ 8850DB5F1F4475D30053A48D /* TestMultipleFilesConnectionManager.m */, 5D6035D3202CE4A500A429C9 /* TestMultipleRequestsConnectionManager.h */, 5D6035D4202CE4A500A429C9 /* TestMultipleRequestsConnectionManager.m */, - 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */, - 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */, + 4A41430B255F0A090039C267 /* TestConnectionRequestObject.h */, + 4A41430C255F0A090039C267 /* TestConnectionRequestObject.m */, ); name = "Connection Manager"; sourceTree = "<group>"; @@ -6996,7 +7012,7 @@ 4ABB269624F7F9400061BF55 /* SDLRPCFunctionNames.h in Headers */, 4ABB2B4024F84EF50061BF55 /* SDLCloudAppProperties.h in Headers */, 4ABB2A5824F847B10061BF55 /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */, - B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */, + B3838A20257C5BB000420C11 /* SDLRoofStatus.h in Headers */, 4ABB271824F7FC4E0061BF55 /* SDLCompassDirection.h in Headers */, 4ABB2B5924F84EF50061BF55 /* SDLDeviceStatus.h in Headers */, 4A8BD2CF24F93803000945E3 /* SDLTouchEvent.h in Headers */, @@ -7123,7 +7139,7 @@ 4ABB280124F823F20061BF55 /* SDLResult.h in Headers */, 4ABB2B8624F8504A0061BF55 /* SDLHMISettingsControlCapabilities.h in Headers */, 4ABB276924F7FE480061BF55 /* SDLHMIZoneCapabilities.h in Headers */, - B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */, + B3838A3B257C6AB700420C11 /* SDLDoorStatus.h in Headers */, 4ABB29DF24F846880061BF55 /* SDLSystemRequest.h in Headers */, 4ABB290224F82BE90061BF55 /* SDLAddCommand.h in Headers */, 4ABB260624F7E9650061BF55 /* SDLStreamingMediaManager.h in Headers */, @@ -7244,6 +7260,7 @@ 4ABB275224F7FD9C0061BF55 /* SDLFuelCutoffStatus.h in Headers */, 4ABB24BE24F592620061BF55 /* NSBundle+SDLBundle.h in Headers */, 4ABB286124F828E00061BF55 /* SDLVehicleDataResultCode.h in Headers */, + B3A9D9E825D2578F00CDFD21 /* SDLKeyboardLayoutCapability.h in Headers */, 4ABB2BA024F850AE0061BF55 /* SDLLightCapabilities.h in Headers */, 4ABB284124F828630061BF55 /* SDLTurnSignal.h in Headers */, 4ABB299D24F845440061BF55 /* SDLScrollableMessage.h in Headers */, @@ -7296,7 +7313,7 @@ 4ABB24C924F593090061BF55 /* SDLStreamingProtocolDelegate.h in Headers */, 4ABB275F24F7FE1F0061BF55 /* SDLFuelType.h in Headers */, 4A8BD3A024F9474B000945E3 /* SDLIAPDataSessionDelegate.h in Headers */, - B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */, + B3838A28257C5CE600420C11 /* SDLDoorStatusType.h in Headers */, 4A8BD2F724F93872000945E3 /* SDLVrHelpItem.h in Headers */, 4ABB2A0024F8477F0061BF55 /* SDLAddCommandResponse.h in Headers */, 4ABB291124F842160061BF55 /* SDLChangeRegistration.h in Headers */, @@ -7311,6 +7328,7 @@ 4ABB26D724F7FAFD0061BF55 /* SDLRPCMessage.h in Headers */, 4A8BD24A24F93135000945E3 /* SDLMyKey.h in Headers */, 4ABB24F924F5959E0061BF55 /* SDLAsynchronousOperation.h in Headers */, + B3A9D9E225D2571000CDFD21 /* SDLKeyboardCapabilities.h in Headers */, 4ABB29B324F845DB0061BF55 /* SDLShow.h in Headers */, 4ABB25B424F7E6F60061BF55 /* SDLSoftButtonReplaceOperation.h in Headers */, 4ABB269C24F7F9710061BF55 /* SDLRPCParameterNames.h in Headers */, @@ -7444,6 +7462,7 @@ 4A8BD36E24F94636000945E3 /* SDLProtocolMessageAssembler.h in Headers */, 4ABB28C024F82A6A0061BF55 /* SDLOnCommand.h in Headers */, 4ABB26A824F7F9CF0061BF55 /* SDLLogTargetAppleSystemLog.h in Headers */, + B3A9D9ED25D2586C00CDFD21 /* SDLKeyboardInputMask.h in Headers */, 4ABB250524F596450061BF55 /* SDLListFilesOperation.h in Headers */, 4ABB268F24F7F8FC0061BF55 /* SDLHexUtility.h in Headers */, 4A8BD28124F9343F000945E3 /* SDLRemoteControlCapabilities.h in Headers */, @@ -7471,11 +7490,11 @@ 4ABB296524F844020061BF55 /* SDLListFiles.h in Headers */, 4ABB281824F824A50061BF55 /* SDLStaticIconName.h in Headers */, 4ABB290524F82BE90061BF55 /* SDLAlert.h in Headers */, - B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */, + B3838A31257C5D1B00420C11 /* SDLGateStatus.h in Headers */, 4ABB26BA24F7FA1C0061BF55 /* SDLLogConstants.h in Headers */, 4ABB28DB24F82A6A0061BF55 /* SDLOnSystemCapabilityUpdated.h in Headers */, 4ABB269324F7F9060061BF55 /* SDLTimer.h in Headers */, - 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */, + 4ABED25C257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.h in Headers */, 4A8BD2F924F93872000945E3 /* SDLVehicleDataType.h in Headers */, 4ABB279924F7FF0B0061BF55 /* SDLLanguage.h in Headers */, 4ABB285F24F828E00061BF55 /* SDLVehicleDataActiveStatus.h in Headers */, @@ -7681,7 +7700,7 @@ }; 5D61FA1B1A84237100846EE7 = { CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 1210; + LastSwiftMigration = 1210; }; 5D61FA251A84237100846EE7 = { CreatedOnToolsVersion = 6.1.1; @@ -7838,7 +7857,8 @@ 4ABB264524F7F5340061BF55 /* SDLSystemCapabilityManager.m in Sources */, 4A8BD2B124F935BC000945E3 /* SDLSoftButtonCapabilities.m in Sources */, 4ABB2A5524F847B10061BF55 /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */, - 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */, + 4ABED25B257681ED005BDF61 /* SDLVoiceCommandUpdateOperation.m in Sources */, + B3A9D9E125D2571000CDFD21 /* SDLKeyboardCapabilities.m in Sources */, 4ABB2AA924F847F40061BF55 /* SDLSetAppIconResponse.m in Sources */, 4A8BD2D224F93803000945E3 /* SDLTemplateColorScheme.m in Sources */, 4A8BD3C124F994D5000945E3 /* SDLFileManager.m in Sources */, @@ -7951,7 +7971,7 @@ 4ABB28D624F82A6A0061BF55 /* SDLOnAudioPassThru.m in Sources */, 4A8BD25224F93135000945E3 /* SDLKeyboardProperties.m in Sources */, 4ABB2B1324F84D950061BF55 /* SDLAppServiceRecord.m in Sources */, - B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */, + B3838A29257C5CE600420C11 /* SDLDoorStatusType.m in Sources */, 4ABB290424F82BE90061BF55 /* SDLAlertManeuver.m in Sources */, 4ABB27B224F7FFDA0061BF55 /* SDLMassageMode.m in Sources */, 4ABB274F24F7FD9C0061BF55 /* SDLECallConfirmationStatus.m in Sources */, @@ -8073,6 +8093,7 @@ 4ABB269224F7F9060061BF55 /* SDLTimer.m in Sources */, 4ABB25C624F7E73C0061BF55 /* SDLSubscribeButtonManager.m in Sources */, 4ABB278E24F7FF0B0061BF55 /* SDLKeyboardEvent.m in Sources */, + B3A9D9E725D2578F00CDFD21 /* SDLKeyboardLayoutCapability.m in Sources */, 4ABB279024F7FF0B0061BF55 /* SDLImageType.m in Sources */, 4ABB28CB24F82A6A0061BF55 /* SDLOnTouchEvent.m in Sources */, 4ABB2B4E24F84EF50061BF55 /* SDLClusterModeStatus.m in Sources */, @@ -8097,7 +8118,7 @@ 4A8BD24C24F93135000945E3 /* SDLLocationDetails.m in Sources */, 4ABB275C24F7FE1F0061BF55 /* SDLFuelType.m in Sources */, 4ABB2B4324F84EF50061BF55 /* SDLDisplayCapabilities.m in Sources */, - B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */, + B3838A3A257C6AB700420C11 /* SDLDoorStatus.m in Sources */, 4ABB267724F7F6720061BF55 /* SDLObjectWithPriority.m in Sources */, 4ABB29FE24F8477F0061BF55 /* SDLAddCommandResponse.m in Sources */, 4ABB251324F7E3A30061BF55 /* SDLLifecycleConfiguration.m in Sources */, @@ -8134,6 +8155,7 @@ 4ABB2AB924F847F40061BF55 /* SDLSetInteriorVehicleDataResponse.m in Sources */, 4ABB295424F843440061BF55 /* SDLEndAudioPassThru.m in Sources */, 4ABB2A2924F847980061BF55 /* SDLDeleteFileResponse.m in Sources */, + B3A9D9EE25D2586C00CDFD21 /* SDLKeyboardInputMask.m in Sources */, 4ABB284524F828630061BF55 /* SDLTouchType.m in Sources */, 4ABB2B8024F8504A0061BF55 /* SDLHapticRect.m in Sources */, 4A8BD38A24F94712000945E3 /* SDLSecondaryTransportManager.m in Sources */, @@ -8254,7 +8276,7 @@ 4ABB2A5B24F847B10061BF55 /* SDLGetCloudAppPropertiesResponse.m in Sources */, 4ABB25F424F7E7EF0061BF55 /* SDLTouch.m in Sources */, 4ABB2B3E24F84EF50061BF55 /* SDLDeviceStatus.m in Sources */, - B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */, + B3838A21257C5BB000420C11 /* SDLRoofStatus.m in Sources */, 4ABB28BE24F82A6A0061BF55 /* SDLOnSyncPData.m in Sources */, 4ABB275724F7FD9C0061BF55 /* SDLEmergencyEventType.m in Sources */, 4ABB29B824F845DB0061BF55 /* SDLSetMediaClockTimer.m in Sources */, @@ -8321,7 +8343,7 @@ 4ABB2AA224F847F40061BF55 /* SDLSetCloudAppPropertiesResponse.m in Sources */, 4A8BD3A224F9474B000945E3 /* SDLIAPDataSession.m in Sources */, 4A8BD3B624F98F64000945E3 /* SDLOnUpdateSubMenu.m in Sources */, - B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */, + B3838A30257C5D1B00420C11 /* SDLGateStatus.m in Sources */, 4ABB256624F7E5B80061BF55 /* SDLRPCPermissionStatus.m in Sources */, 4ABB299824F845440061BF55 /* SDLReleaseInteriorVehicleDataModule.m in Sources */, 4ABB277724F7FE910061BF55 /* SDLIgnitionStatus.m in Sources */, @@ -8439,7 +8461,7 @@ 162E82E31A9BDE8B00906325 /* SDLIgnitionStatusSpec.m in Sources */, 162E83511A9BDE8B00906325 /* SDLDeleteInteractionChoiceSetResponseSpec.m in Sources */, DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */, - B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */, + B3838A0F257C4EE100420C11 /* SDLGateStatusSpec.m in Sources */, 162E82E41A9BDE8B00906325 /* SDLImageFieldNameSpec.m in Sources */, 162E82ED1A9BDE8B00906325 /* SDLMaintenanceModeStatusSpec.m in Sources */, 8B9376DB1F33656C009605C4 /* SDLMetadataTagsSpec.m in Sources */, @@ -8452,7 +8474,7 @@ 162E83181A9BDE8B00906325 /* SDLOnKeyboardInputSpec.m in Sources */, 1EE8C4441F34A1B900FDC2CF /* SDLClimateControlDataSpec.m in Sources */, 162E83701A9BDE8B00906325 /* SDLUpdateTurnListResponseSpec.m in Sources */, - 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */, + 4A41430D255F0A090039C267 /* TestConnectionRequestObject.m in Sources */, 88C23E8822297C6000EA171F /* SDLRPCResponseNotificationSpec.m in Sources */, 162E833B1A9BDE8B00906325 /* SDLSetGlobalPropertiesSpec.m in Sources */, 884AF94C220B3FCC00E22928 /* SDLGetSystemCapabilitySpec.m in Sources */, @@ -8563,7 +8585,7 @@ 162E82F71A9BDE8B00906325 /* SDLResultSpec.m in Sources */, 88DDD0F9229ECA57002F9623 /* SDLIAPConstantsSpec.m in Sources */, 1680B1141A9CD7AD00DBD79E /* SDLV1ProtocolHeaderSpec.m in Sources */, - B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */, + B3838A15257C4EFD00420C11 /* SDLRoofStatusSpec.m in Sources */, 880D2680220E038800B3F496 /* SDLWeatherServiceManifestSpec.m in Sources */, 88EEC5BE220A3B8B005AA2F9 /* SDLPublishAppServiceResponseSpec.m in Sources */, 1680B1161A9CD7AD00DBD79E /* SDLProtocolMessageSpec.m in Sources */, @@ -8629,7 +8651,7 @@ 1EAA47762036B847000FE74B /* SDLEqualizerSettingsSpec.m in Sources */, 752ECDB9228C42E100D945F4 /* SDLMenuRunScoreSpec.m in Sources */, 162E83141A9BDE8B00906325 /* SDLOnDriverDistractionSpec.m in Sources */, - B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */, + B3838A09257C4EB400420C11 /* SDLDoorStatusSpec.m in Sources */, 162E83371A9BDE8B00906325 /* SDLResetGlobalPropertiesSpec.m in Sources */, 162E82DF1A9BDE8B00906325 /* SDLGlobalProperySpec.m in Sources */, 88DF998F22035D1700477AC1 /* SDLIAPSessionSpec.m in Sources */, @@ -8832,7 +8854,7 @@ 1EAA47782036BA74000FE74B /* SDLAudioControlCapabilitiesSpec.m in Sources */, 5DB1BCD51D243A8E002FFC37 /* SDLUploadFileOperationSpec.m in Sources */, 162E83401A9BDE8B00906325 /* SDLSpeakSpec.m in Sources */, - B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */, + B3838A01257C47FD00420C11 /* SDLDoorStatusTypeSpec.m in Sources */, 88A5E7F4220B57F900495E8A /* SDLOnSystemCapabilityUpdatedSpec.m in Sources */, 5DCF76FC1ACDDB4200BB647B /* SDLSendLocationSpec.m in Sources */, 5DB1BCD81D243AA6002FFC37 /* SDLPermissionFilterSpec.m in Sources */, @@ -8853,7 +8875,7 @@ 162E831E1A9BDE8B00906325 /* SDLOnTBTClientStateSpec.m in Sources */, 162E83351A9BDE8B00906325 /* SDLReadDIDSpec.m in Sources */, 5DF40B28208FDA9700DD6FDA /* SDLVoiceCommandManagerSpec.m in Sources */, - 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */, + 4AD1F1742559957100637FE1 /* SDLVoiceCommandUpdateOperationSpec.m in Sources */, 88B3BFA020DA8FD000943565 /* SDLFuelTypeSpec.m in Sources */, 162E836F1A9BDE8B00906325 /* SDLUnsubscribeVehicleDataResponseSpec.m in Sources */, 162E82DB1A9BDE8B00906325 /* SDLECallConfirmationStatusSpec.m in Sources */, @@ -9267,7 +9289,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - VALIDATE_WORKSPACE = NO; + VALIDATE_WORKSPACE = NO; }; name = Debug; }; @@ -9300,7 +9322,7 @@ PRODUCT_BUNDLE_IDENTIFIER = "com.smartdevicelink.$(PRODUCT_NAME:rfc1034identifier)"; PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_VERSION = 5.0; - VALIDATE_WORKSPACE = NO; + VALIDATE_WORKSPACE = NO; }; name = Release; }; diff --git a/SmartDeviceLink/private/SDLChoiceSetManager.m b/SmartDeviceLink/private/SDLChoiceSetManager.m index 51dd32b9e..9ab56ea87 100644 --- a/SmartDeviceLink/private/SDLChoiceSetManager.m +++ b/SmartDeviceLink/private/SDLChoiceSetManager.m @@ -515,7 +515,7 @@ UInt16 const ChoiceCellCancelIdMin = 1; } - (SDLKeyboardProperties *)sdl_defaultKeyboardConfiguration { - return [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageEnUs keyboardLayout:SDLKeyboardLayoutQWERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil]; + return [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageEnUs keyboardLayout:SDLKeyboardLayoutQWERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil maskInputCharacters:nil customKeys:nil]; } #pragma mark - Getters diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.h b/SmartDeviceLink/private/SDLRPCParameterNames.h index cd34d66e9..d792b9b1a 100644 --- a/SmartDeviceLink/private/SDLRPCParameterNames.h +++ b/SmartDeviceLink/private/SDLRPCParameterNames.h @@ -166,6 +166,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported; extern SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature; extern SDLRPCParameterName const SDLRPCParameterNameCushion; extern SDLRPCParameterName const SDLRPCParameterNameCustomButtonId; +extern SDLRPCParameterName const SDLRPCParameterNameCustomKeys; extern SDLRPCParameterName const SDLRPCParameterNameCustomPresets; extern SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType; extern SDLRPCParameterName const SDLRPCParameterNameData; @@ -354,6 +355,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameIsSubscribed; extern SDLRPCParameterName const SDLRPCParameterNameJunctionType; extern SDLRPCParameterName const SDLRPCParameterNameKeepContext; extern SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable; +extern SDLRPCParameterName const SDLRPCParameterNameKeyboardCapabilities; extern SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout; extern SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties; extern SDLRPCParameterName const SDLRPCParameterNameKeypressMode; @@ -400,6 +402,8 @@ extern SDLRPCParameterName const SDLRPCParameterNameMajorVersion; extern SDLRPCParameterName const SDLRPCParameterNameMake; extern SDLRPCParameterName const SDLRPCParameterNameManeuverComplete; extern SDLRPCParameterName const SDLRPCParameterNameManualTextEntry; +extern SDLRPCParameterName const SDLRPCParameterNameMaskInputCharacters; +extern SDLRPCParameterName const SDLRPCParameterNameMaskInputCharactersSupported; extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness; extern SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable; extern SDLRPCParameterName const SDLRPCParameterNameMassageEnabled; @@ -485,6 +489,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameNotification; extern SDLRPCParameterName const SDLRPCParameterNameNumber; extern SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable; extern SDLRPCParameterName const SDLRPCParameterNameNumberTicks; +extern SDLRPCParameterName const SDLRPCParameterNameNumConfigurableKeys; extern SDLRPCParameterName const SDLRPCParameterNameOdometer; extern SDLRPCParameterName const SDLRPCParameterNameOffset; extern SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus; @@ -675,6 +680,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes; extern SDLRPCParameterName const SDLRPCParameterNameSupportedDynamicImageFieldNames; extern SDLRPCParameterName const SDLRPCParameterNameSupportsDynamicSubMenus; extern SDLRPCParameterName const SDLRPCParameterNameSupportedFormats; +extern SDLRPCParameterName const SDLRPCParameterNameSupportedKeyboards; extern SDLRPCParameterName const SDLRPCParameterNameSupportedLights; extern SDLRPCParameterName const SDLRPCParameterNameSyncFileName; extern SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion; diff --git a/SmartDeviceLink/private/SDLRPCParameterNames.m b/SmartDeviceLink/private/SDLRPCParameterNames.m index d95d6af05..04c9e66b8 100644 --- a/SmartDeviceLink/private/SDLRPCParameterNames.m +++ b/SmartDeviceLink/private/SDLRPCParameterNames.m @@ -165,6 +165,7 @@ SDLRPCParameterName const SDLRPCParameterNameCurrentForecastSupported = @"curren SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature = @"currentTemperature"; SDLRPCParameterName const SDLRPCParameterNameCushion = @"cushion"; SDLRPCParameterName const SDLRPCParameterNameCustomButtonId = @"customButtonID"; +SDLRPCParameterName const SDLRPCParameterNameCustomKeys = @"customKeys"; SDLRPCParameterName const SDLRPCParameterNameCustomPresets = @"customPresets"; SDLRPCParameterName const SDLRPCParameterNameData = @"data"; SDLRPCParameterName const SDLRPCParameterNameDataResult = @"dataResult"; @@ -353,6 +354,7 @@ SDLRPCParameterName const SDLRPCParameterNameIsSubscribed = @"isSubscribed"; SDLRPCParameterName const SDLRPCParameterNameJunctionType = @"junctionType"; SDLRPCParameterName const SDLRPCParameterNameKeepContext = @"keepContext"; SDLRPCParameterName const SDLRPCParameterNameKeepContextAvailable = @"keepContextAvailable"; +SDLRPCParameterName const SDLRPCParameterNameKeyboardCapabilities = @"keyboardCapabilities"; SDLRPCParameterName const SDLRPCParameterNameKeyboardLayout = @"keyboardLayout"; SDLRPCParameterName const SDLRPCParameterNameKeyboardProperties = @"keyboardProperties"; SDLRPCParameterName const SDLRPCParameterNameKeypressMode = @"keypressMode"; @@ -395,6 +397,8 @@ SDLRPCParameterName const SDLRPCParameterNameMajorVersion = @"majorVersion"; SDLRPCParameterName const SDLRPCParameterNameMake = @"make"; SDLRPCParameterName const SDLRPCParameterNameManeuverComplete = @"maneuverComplete"; SDLRPCParameterName const SDLRPCParameterNameManualTextEntry = @"manualTextEntry"; +SDLRPCParameterName const SDLRPCParameterNameMaskInputCharacters = @"maskInputCharacters"; +SDLRPCParameterName const SDLRPCParameterNameMaskInputCharactersSupported = @"maskInputCharactersSupported"; SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmness = @"massageCushionFirmness"; SDLRPCParameterName const SDLRPCParameterNameMassageCushionFirmnessAvailable = @"massageCushionFirmnessAvailable"; SDLRPCParameterName const SDLRPCParameterNameMassageEnabled = @"massageEnabled"; @@ -480,6 +484,7 @@ SDLRPCParameterName const SDLRPCParameterNameNotification = @"notification"; SDLRPCParameterName const SDLRPCParameterNameNumber = @"number"; SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable = @"numCustomPresetsAvailable"; SDLRPCParameterName const SDLRPCParameterNameNumberTicks = @"numTicks"; +SDLRPCParameterName const SDLRPCParameterNameNumConfigurableKeys = @"numConfigurableKeys"; SDLRPCParameterName const SDLRPCParameterNameOdometer = @"odometer"; SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType = @"oemCustomDataType"; SDLRPCParameterName const SDLRPCParameterNameOffset = @"offset"; @@ -671,6 +676,7 @@ SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes = @"suppor SDLRPCParameterName const SDLRPCParameterNameSupportedDynamicImageFieldNames = @"supportedDynamicImageFieldNames"; SDLRPCParameterName const SDLRPCParameterNameSupportsDynamicSubMenus = @"supportsDynamicSubMenus"; SDLRPCParameterName const SDLRPCParameterNameSupportedFormats = @"supportedFormats"; +SDLRPCParameterName const SDLRPCParameterNameSupportedKeyboards = @"supportedKeyboards"; SDLRPCParameterName const SDLRPCParameterNameSupportedLights = @"supportedLights"; SDLRPCParameterName const SDLRPCParameterNameSyncFileName = @"syncFileName"; SDLRPCParameterName const SDLRPCParameterNameSyncMessageVersion = @"syncMsgVersion"; diff --git a/SmartDeviceLink/public/SDLKeyboardCapabilities.h b/SmartDeviceLink/public/SDLKeyboardCapabilities.h new file mode 100644 index 000000000..04302cfaa --- /dev/null +++ b/SmartDeviceLink/public/SDLKeyboardCapabilities.h @@ -0,0 +1,64 @@ +/* + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLRPCStruct.h" + +@class SDLKeyboardLayoutCapability; + +NS_ASSUME_NONNULL_BEGIN + +/** + * @added in SmartDeviceLink 7.1.0 + */ +@interface SDLKeyboardCapabilities : SDLRPCStruct + +/** + * @param maskInputCharactersSupported - maskInputCharactersSupported + * @param supportedKeyboards - supportedKeyboards + * @return A SDLKeyboardCapabilities object + */ +- (instancetype)initWithMaskInputCharactersSupported:(nullable NSNumber<SDLBool> *)maskInputCharactersSupported supportedKeyboards:(nullable NSArray<SDLKeyboardLayoutCapability *> *)supportedKeyboards; + +/** + * Availability of capability to mask input characters using keyboard. True: Available, False: Not Available + */ +@property (nullable, strong, nonatomic) NSNumber<SDLBool> *maskInputCharactersSupported; + +/** + * Capabilities of supported keyboard layouts by HMI. + * {"array_min_size": 1, "array_max_size": 1000} + */ +@property (nullable, strong, nonatomic) NSArray<SDLKeyboardLayoutCapability *> *supportedKeyboards; + +@end + +NS_ASSUME_NONNULL_END
\ No newline at end of file diff --git a/SmartDeviceLink/public/SDLKeyboardCapabilities.m b/SmartDeviceLink/public/SDLKeyboardCapabilities.m new file mode 100644 index 000000000..27799f17a --- /dev/null +++ b/SmartDeviceLink/public/SDLKeyboardCapabilities.m @@ -0,0 +1,70 @@ +/* + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "NSMutableDictionary+Store.h" +#import "SDLKeyboardCapabilities.h" +#import "SDLKeyboardLayoutCapability.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN + +@implementation SDLKeyboardCapabilities + +- (instancetype)initWithMaskInputCharactersSupported:(nullable NSNumber<SDLBool> *)maskInputCharactersSupported supportedKeyboards:(nullable NSArray<SDLKeyboardLayoutCapability *> *)supportedKeyboards { + self = [self init]; + if (!self) { + return nil; + } + self.maskInputCharactersSupported = maskInputCharactersSupported; + self.supportedKeyboards = supportedKeyboards; + return self; +} + +- (void)setMaskInputCharactersSupported:(nullable NSNumber<SDLBool> *)maskInputCharactersSupported { + [self.store sdl_setObject:maskInputCharactersSupported forName:SDLRPCParameterNameMaskInputCharactersSupported]; +} + +- (nullable NSNumber<SDLBool> *)maskInputCharactersSupported { + return [self.store sdl_objectForName:SDLRPCParameterNameMaskInputCharactersSupported ofClass:NSNumber.class error:nil]; +} + +- (void)setSupportedKeyboards:(nullable NSArray<SDLKeyboardLayoutCapability *> *)supportedKeyboards { + [self.store sdl_setObject:supportedKeyboards forName:SDLRPCParameterNameSupportedKeyboards]; +} + +- (nullable NSArray<SDLKeyboardLayoutCapability *> *)supportedKeyboards { + return [self.store sdl_objectsForName:SDLRPCParameterNameSupportedKeyboards ofClass:SDLKeyboardLayoutCapability.class error:nil]; +} + +@end + +NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLKeyboardEvent.h b/SmartDeviceLink/public/SDLKeyboardEvent.h index 1ac7b67e4..9e017c8d6 100644 --- a/SmartDeviceLink/public/SDLKeyboardEvent.h +++ b/SmartDeviceLink/public/SDLKeyboardEvent.h @@ -37,3 +37,13 @@ extern SDLKeyboardEvent const SDLKeyboardEventAborted; @since SDL 4.0 */ extern SDLKeyboardEvent const SDLKeyboardEventVoice; + +/** + * @added in SmartDeviceLink 7.1.0 + */ +extern SDLKeyboardEvent const SDLKeyboardEventInputKeyMaskEnabled; + +/** + * @added in SmartDeviceLink 7.1.0 + */ +extern SDLKeyboardEvent const SDLKeyboardEventInputKeyMaskDisabled; diff --git a/SmartDeviceLink/public/SDLKeyboardEvent.m b/SmartDeviceLink/public/SDLKeyboardEvent.m index 67f4e60f2..f55ac3597 100644 --- a/SmartDeviceLink/public/SDLKeyboardEvent.m +++ b/SmartDeviceLink/public/SDLKeyboardEvent.m @@ -9,3 +9,5 @@ SDLKeyboardEvent const SDLKeyboardEventSubmitted = @"ENTRY_SUBMITTED"; SDLKeyboardEvent const SDLKeyboardEventCancelled = @"ENTRY_CANCELLED"; SDLKeyboardEvent const SDLKeyboardEventAborted = @"ENTRY_ABORTED"; SDLKeyboardEvent const SDLKeyboardEventVoice = @"ENTRY_VOICE"; +SDLKeyboardEvent const SDLKeyboardEventInputKeyMaskEnabled = @"INPUT_KEY_MASK_ENABLED"; +SDLKeyboardEvent const SDLKeyboardEventInputKeyMaskDisabled = @"INPUT_KEY_MASK_DISABLED"; diff --git a/SmartDeviceLink/public/SDLKeyboardInputMask.h b/SmartDeviceLink/public/SDLKeyboardInputMask.h new file mode 100644 index 000000000..fc16b1756 --- /dev/null +++ b/SmartDeviceLink/public/SDLKeyboardInputMask.h @@ -0,0 +1,46 @@ +/* + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLEnum.h" + +/** + * Enumeration listing possible input character masking. + * + * @added in SmartDeviceLink 7.1.0 + */ +typedef SDLEnum SDLKeyboardInputMask NS_TYPED_ENUM; + +extern SDLKeyboardInputMask const SDLKeyboardInputMaskEnableInputKeyMask; + +extern SDLKeyboardInputMask const SDLKeyboardInputMaskDisableInputKeyMask; + +extern SDLKeyboardInputMask const SDLKeyboardInputMaskUserChoiceInputKeyMask; diff --git a/SmartDeviceLink/public/SDLKeyboardInputMask.m b/SmartDeviceLink/public/SDLKeyboardInputMask.m new file mode 100644 index 000000000..3be3d3ec1 --- /dev/null +++ b/SmartDeviceLink/public/SDLKeyboardInputMask.m @@ -0,0 +1,37 @@ +/* + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLKeyboardInputMask.h" + +SDLKeyboardInputMask const SDLKeyboardInputMaskEnableInputKeyMask = @"ENABLE_INPUT_KEY_MASK"; +SDLKeyboardInputMask const SDLKeyboardInputMaskDisableInputKeyMask = @"DISABLE_INPUT_KEY_MASK"; +SDLKeyboardInputMask const SDLKeyboardInputMaskUserChoiceInputKeyMask = @"USER_CHOICE_INPUT_KEY_MASK";
\ No newline at end of file diff --git a/SmartDeviceLink/public/SDLKeyboardLayout.h b/SmartDeviceLink/public/SDLKeyboardLayout.h index 4b4e97550..181836146 100644 --- a/SmartDeviceLink/public/SDLKeyboardLayout.h +++ b/SmartDeviceLink/public/SDLKeyboardLayout.h @@ -25,3 +25,8 @@ extern SDLKeyboardLayout const SDLKeyboardLayoutQWERTZ; AZERTY layout (the name comes from the first six keys<br> appearing on the top left letter row of the keyboard and read from left to right) */ extern SDLKeyboardLayout const SDLKeyboardLayoutAZERTY; + +/** + * @added in SmartDeviceLink 7.1.0 + */ +extern SDLKeyboardLayout const SDLKeyboardLayoutNumeric; diff --git a/SmartDeviceLink/public/SDLKeyboardLayout.m b/SmartDeviceLink/public/SDLKeyboardLayout.m index 7fa8e1958..0bc5ecc3b 100644 --- a/SmartDeviceLink/public/SDLKeyboardLayout.m +++ b/SmartDeviceLink/public/SDLKeyboardLayout.m @@ -7,3 +7,4 @@ SDLKeyboardLayout const SDLKeyboardLayoutQWERTY = @"QWERTY"; SDLKeyboardLayout const SDLKeyboardLayoutQWERTZ = @"QWERTZ"; SDLKeyboardLayout const SDLKeyboardLayoutAZERTY = @"AZERTY"; +SDLKeyboardLayout const SDLKeyboardLayoutNumeric = @"NUMERIC"; diff --git a/SmartDeviceLink/public/SDLKeyboardLayoutCapability.h b/SmartDeviceLink/public/SDLKeyboardLayoutCapability.h new file mode 100644 index 000000000..2bcbe95ca --- /dev/null +++ b/SmartDeviceLink/public/SDLKeyboardLayoutCapability.h @@ -0,0 +1,62 @@ +/* + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "SDLKeyboardLayout.h" +#import "SDLRPCStruct.h" + +NS_ASSUME_NONNULL_BEGIN + +/** + * Describes the capabilities of a single keyboard layout. + * + * @added in SmartDeviceLink 7.1.0 + */ +@interface SDLKeyboardLayoutCapability : SDLRPCStruct + +/** + * @param keyboardLayout - keyboardLayout + * @param numConfigurableKeys - @(numConfigurableKeys) + * @return A SDLKeyboardLayoutCapability object + */ +- (instancetype)initWithKeyboardLayout:(SDLKeyboardLayout)keyboardLayout numConfigurableKeys:(UInt8)numConfigurableKeys; + +@property (strong, nonatomic) SDLKeyboardLayout keyboardLayout; + +/** + * Number of keys available for special characters, App can customize as per their needs. + * {"num_min_value": 0, "num_max_value": 10} + */ +@property (strong, nonatomic) NSNumber<SDLUInt> *numConfigurableKeys; + +@end + +NS_ASSUME_NONNULL_END
\ No newline at end of file diff --git a/SmartDeviceLink/public/SDLKeyboardLayoutCapability.m b/SmartDeviceLink/public/SDLKeyboardLayoutCapability.m new file mode 100644 index 000000000..ec302a409 --- /dev/null +++ b/SmartDeviceLink/public/SDLKeyboardLayoutCapability.m @@ -0,0 +1,71 @@ +/* + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. + * All rights reserved. + * + * Redistribution and use in source and binary forms, with or without + * modification, are permitted provided that the following conditions are met: + * + * Redistributions of source code must retain the above copyright notice, this + * list of conditions and the following disclaimer. + * + * Redistributions in binary form must reproduce the above copyright notice, + * this list of conditions and the following + * disclaimer in the documentation and/or other materials provided with the + * distribution. + * + * Neither the name of the SmartDeviceLink Consortium Inc. nor the names of + * its contributors may be used to endorse or promote products derived + * from this software without specific prior written permission. + * + * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS" + * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE + * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE + * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE + * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR + * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF + * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS + * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN + * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) + * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE + * POSSIBILITY OF SUCH DAMAGE. + */ + +#import "NSMutableDictionary+Store.h" +#import "SDLKeyboardLayout.h" +#import "SDLKeyboardLayoutCapability.h" +#import "SDLRPCParameterNames.h" + +NS_ASSUME_NONNULL_BEGIN +@implementation SDLKeyboardLayoutCapability + +- (instancetype)initWithKeyboardLayout:(SDLKeyboardLayout)keyboardLayout numConfigurableKeys:(UInt8)numConfigurableKeys { + self = [self init]; + if (!self) { + return nil; + } + self.keyboardLayout = keyboardLayout; + self.numConfigurableKeys = @(numConfigurableKeys); + return self; +} + +- (void)setKeyboardLayout:(SDLKeyboardLayout)keyboardLayout { + [self.store sdl_setObject:keyboardLayout forName:SDLRPCParameterNameKeyboardLayout]; +} + +- (SDLKeyboardLayout)keyboardLayout { + NSError *error = nil; + return [self.store sdl_enumForName:SDLRPCParameterNameKeyboardLayout error:&error]; +} + +- (void)setNumConfigurableKeys:(NSNumber<SDLUInt> *)numConfigurableKeys { + [self.store sdl_setObject:numConfigurableKeys forName:SDLRPCParameterNameNumConfigurableKeys]; +} + +- (NSNumber<SDLUInt> *)numConfigurableKeys { + NSError *error = nil; + return [self.store sdl_objectForName:SDLRPCParameterNameNumConfigurableKeys ofClass:NSNumber.class error:&error]; +} + +@end + +NS_ASSUME_NONNULL_END
\ No newline at end of file diff --git a/SmartDeviceLink/public/SDLKeyboardProperties.h b/SmartDeviceLink/public/SDLKeyboardProperties.h index a538b52bd..55a3ed1b0 100644 --- a/SmartDeviceLink/public/SDLKeyboardProperties.h +++ b/SmartDeviceLink/public/SDLKeyboardProperties.h @@ -1,11 +1,11 @@ // SDLKeyboardProperties.h // -#import "SDLRPCMessage.h" - +#import "SDLKeyboardInputMask.h" #import "SDLKeyboardLayout.h" #import "SDLKeypressMode.h" #import "SDLLanguage.h" +#import "SDLRPCStruct.h" NS_ASSUME_NONNULL_BEGIN @@ -25,7 +25,7 @@ NS_ASSUME_NONNULL_BEGIN @param autoCompleteList A list of strings to show the user to complete what they are typing. @return The RPC object */ -- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList __deprecated_msg("Use initWithLanguage:keyboardLayout:keypressMode:limitedCharacterList:autoCompleteList: instead"); +- (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList __deprecated_msg("Use initWithLanguage:keyboardLayout:keypressMode:limitedCharacterList:autoCompleteList:maskInputCharacters:customKeys: instead"); /** * Convenience init with all properties. @@ -37,7 +37,19 @@ NS_ASSUME_NONNULL_BEGIN * @param autoCompleteList - autoCompleteList * @return A SDLKeyboardProperties object */ -- (instancetype)initWithLanguage:(nullable SDLLanguage)language keyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList; +- (instancetype)initWithLanguage:(nullable SDLLanguage)language keyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList __deprecated_msg("Use initWithLanguage:keyboardLayout:keypressMode:limitedCharacterList:autoCompleteList:maskInputCharacters:customKeys: instead"); + +/** + * @param language - language + * @param keyboardLayout - keyboardLayout + * @param keypressMode - keypressMode + * @param limitedCharacterList - limitedCharacterList + * @param autoCompleteList - autoCompleteList + * @param maskInputCharacters - maskInputCharacters + * @param customKeys - customKeys + * @return A SDLKeyboardProperties object + */ +- (instancetype)initWithLanguage:(nullable SDLLanguage)language keyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList maskInputCharacters:(nullable SDLKeyboardInputMask)maskInputCharacters customKeys:(nullable NSArray<NSString *> *)customKeys; /** The keyboard language @@ -85,6 +97,21 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) NSArray<NSString *> *autoCompleteList; +/** + * Allows an app to mask entered characters on HMI + * + * @added in SmartDeviceLink 7.1.0 + */ +@property (nullable, strong, nonatomic) SDLKeyboardInputMask maskInputCharacters; + +/** + * Array of special characters to show in customizable keys. If omitted, keyboard will show default special characters + * {"array_min_size": 1, "array_max_size": 10, "string_min_length": 1, "string_max_length": 1} + * + * @added in SmartDeviceLink 7.1.0 + */ +@property (nullable, strong, nonatomic) NSArray<NSString *> *customKeys; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLKeyboardProperties.m b/SmartDeviceLink/public/SDLKeyboardProperties.m index c21c91bc7..08949afff 100644 --- a/SmartDeviceLink/public/SDLKeyboardProperties.m +++ b/SmartDeviceLink/public/SDLKeyboardProperties.m @@ -11,7 +11,7 @@ NS_ASSUME_NONNULL_BEGIN @implementation SDLKeyboardProperties - (instancetype)initWithLanguage:(nullable SDLLanguage)language layout:(nullable SDLKeyboardLayout)layout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteText:(nullable NSString *)autoCompleteText autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList { - self = [[self init] initWithLanguage:language keyboardLayout:layout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteList:autoCompleteList]; + self = [self initWithLanguage:language keyboardLayout:layout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteList:autoCompleteList maskInputCharacters:nil customKeys:nil]; if (!self) { return nil; } self.autoCompleteText = autoCompleteText; @@ -19,17 +19,23 @@ NS_ASSUME_NONNULL_BEGIN } - (instancetype)initWithLanguage:(nullable SDLLanguage)language keyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList { + return [self initWithLanguage:language keyboardLayout:keyboardLayout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteList:autoCompleteList maskInputCharacters:nil customKeys:nil]; + + return self; +} + +- (instancetype)initWithLanguage:(nullable SDLLanguage)language keyboardLayout:(nullable SDLKeyboardLayout)keyboardLayout keypressMode:(nullable SDLKeypressMode)keypressMode limitedCharacterList:(nullable NSArray<NSString *> *)limitedCharacterList autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList maskInputCharacters:(nullable SDLKeyboardInputMask)maskInputCharacters customKeys:(nullable NSArray<NSString *> *)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; } @@ -81,6 +87,22 @@ NS_ASSUME_NONNULL_BEGIN 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<NSString *> *)customKeys { + [self.store sdl_setObject:customKeys forName:SDLRPCParameterNameCustomKeys]; +} + +- (nullable NSArray<NSString *> *)customKeys { + return [self.store sdl_objectsForName:SDLRPCParameterNameCustomKeys ofClass:NSString.class error:nil]; +} + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLWindowCapability.h b/SmartDeviceLink/public/SDLWindowCapability.h index 4795e667b..efdbf72c3 100644 --- a/SmartDeviceLink/public/SDLWindowCapability.h +++ b/SmartDeviceLink/public/SDLWindowCapability.h @@ -38,10 +38,10 @@ @class SDLButtonCapabilities; @class SDLDynamicUpdateCapabilities; @class SDLImageField; +@class SDLKeyboardCapabilities; @class SDLSoftButtonCapabilities; @class SDLTextField; - NS_ASSUME_NONNULL_BEGIN /** @@ -136,6 +136,13 @@ NS_ASSUME_NONNULL_BEGIN */ @property (nullable, strong, nonatomic) SDLDynamicUpdateCapabilities *dynamicUpdateCapabilities; +/** + * See KeyboardCapabilities + * + * @added in SmartDeviceLink 7.1.0 + */ +@property (nullable, strong, nonatomic) SDLKeyboardCapabilities *keyboardCapabilities; + @end NS_ASSUME_NONNULL_END diff --git a/SmartDeviceLink/public/SDLWindowCapability.m b/SmartDeviceLink/public/SDLWindowCapability.m index 9c3ebe7e2..0a5c084da 100644 --- a/SmartDeviceLink/public/SDLWindowCapability.m +++ b/SmartDeviceLink/public/SDLWindowCapability.m @@ -36,6 +36,7 @@ #import "SDLButtonCapabilities.h" #import "SDLDynamicUpdateCapabilities.h" #import "SDLImageField.h" +#import "SDLKeyboardCapabilities.h" #import "SDLRPCParameterNames.h" #import "SDLSoftButtonCapabilities.h" #import "SDLTextField.h" @@ -141,4 +142,12 @@ return [self.store sdl_objectForName:SDLRPCParameterNameDynamicUpdateCapabilities ofClass:SDLDynamicUpdateCapabilities.class error:nil]; } +- (void)setKeyboardCapabilities:(nullable SDLKeyboardCapabilities *)keyboardCapabilities { + [self.store sdl_setObject:keyboardCapabilities forName:SDLRPCParameterNameKeyboardCapabilities]; +} + +- (nullable SDLKeyboardCapabilities *)keyboardCapabilities { + return [self.store sdl_objectForName:SDLRPCParameterNameKeyboardCapabilities ofClass:SDLKeyboardCapabilities.class error:nil]; +} + @end diff --git a/SmartDeviceLink/public/SmartDeviceLink.h b/SmartDeviceLink/public/SmartDeviceLink.h index 8b8b6f68d..16a573ebf 100644 --- a/SmartDeviceLink/public/SmartDeviceLink.h +++ b/SmartDeviceLink/public/SmartDeviceLink.h @@ -225,6 +225,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLImage.h" #import "SDLImageField.h" #import "SDLImageResolution.h" +#import "SDLKeyboardCapabilities.h" +#import "SDLKeyboardLayoutCapability.h" #import "SDLKeyboardProperties.h" #import "SDLLightCapabilities.h" #import "SDLLightControlCapabilities.h" @@ -340,6 +342,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLImageType.h" #import "SDLInteractionMode.h" #import "SDLKeyboardEvent.h" +#import "SDLKeyboardInputMask.h" #import "SDLKeyboardLayout.h" #import "SDLKeypressMode.h" #import "SDLLanguage.h" diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m index 883720b82..db1ddb950 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentChoiceSetOperationSpec.m @@ -60,7 +60,7 @@ describe(@"present choice operation", ^{ testKeyboardDelegate = OCMProtocolMock(@protocol(SDLKeyboardDelegate)); OCMStub([testKeyboardDelegate customKeyboardConfiguration]).andReturn(nil); - testKeyboardProperties = [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageArSa keyboardLayout:SDLKeyboardLayoutAZERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil]; + testKeyboardProperties = [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageArSa keyboardLayout:SDLKeyboardLayoutAZERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil maskInputCharacters:nil customKeys:nil]; }); it(@"should have a priority of 'normal'", ^{ diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m index 29ed6d0b0..1f90b61a7 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLPresentKeyboardOperationSpec.m @@ -43,7 +43,7 @@ describe(@"present keyboard operation", ^{ testDelegate = OCMProtocolMock(@protocol(SDLKeyboardDelegate)); OCMStub([testDelegate customKeyboardConfiguration]).andReturn(nil); - testInitialProperties = [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageArSa keyboardLayout:SDLKeyboardLayoutAZERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil]; + testInitialProperties = [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageArSa keyboardLayout:SDLKeyboardLayoutAZERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil maskInputCharacters:nil customKeys:nil]; }); it(@"should have a priority of 'normal'", ^{ |