diff options
author | leonid lokhmatov, Luxoft <zaqqqqqqqq@gmail.com> | 2021-02-09 10:54:24 +0200 |
---|---|---|
committer | leonid lokhmatov, Luxoft <zaqqqqqqqq@gmail.com> | 2021-02-09 10:54:24 +0200 |
commit | 607a7bf6eafdc976747497de95d797a59f47b08d (patch) | |
tree | 542d9c49fb6a16f14a4cb1757d59618fcc9d417f | |
parent | 90e6f5e10361bc687ef2ec108c4a53ab5f8afaba (diff) | |
parent | 7b4da3f42ddc25700db0df68091f65941c6d28db (diff) | |
download | sdl_ios-607a7bf6eafdc976747497de95d797a59f47b08d.tar.gz |
SDL0238 'Keyboard Enhancements r2': implement revision r2
23 files changed, 550 insertions, 327 deletions
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 78a2d87ed..49658d0d3 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,30 +1672,30 @@ 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 */; }; - B3992623258C1E490048F09B /* SDLKeyboardCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = B3992621258C1E480048F09B /* SDLKeyboardCapabilities.m */; }; - B3992624258C1E490048F09B /* SDLKeyboardCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = B3992622258C1E480048F09B /* SDLKeyboardCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3992629258C24130048F09B /* SDLKeyboardInputMask.h in Headers */ = {isa = PBXBuildFile; fileRef = B3992627258C24120048F09B /* SDLKeyboardInputMask.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B399262A258C24130048F09B /* SDLKeyboardInputMask.m in Sources */ = {isa = PBXBuildFile; fileRef = B3992628258C24130048F09B /* SDLKeyboardInputMask.m */; }; - B3992633258C276B0048F09B /* SDLConfigurableKeyboards.m in Sources */ = {isa = PBXBuildFile; fileRef = B3992631258C276A0048F09B /* SDLConfigurableKeyboards.m */; }; - B3992634258C276B0048F09B /* SDLConfigurableKeyboards.h in Headers */ = {isa = PBXBuildFile; fileRef = B3992632258C276B0048F09B /* SDLConfigurableKeyboards.h */; settings = {ATTRIBUTES = (Public, ); }; }; - B3992642258FAAE00048F09B /* SDLConfigurableKeyboardsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3992641258FAADF0048F09B /* SDLConfigurableKeyboardsSpec.m */; }; - B399264A258FAB6B0048F09B /* SDLKeyboardCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3992649258FAB6B0048F09B /* SDLKeyboardCapabilitiesSpec.m */; }; - B3992650258FABF70048F09B /* SDLKeyboardInputMaskSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B399264F258FABF60048F09B /* SDLKeyboardInputMaskSpec.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 */; }; + B3A9DA0425D26D8500CDFD21 /* SDLKeyboardInputMaskSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9DA0325D26D8500CDFD21 /* SDLKeyboardInputMaskSpec.m */; }; + B3A9DA0A25D26E1800CDFD21 /* SDLKeyboardCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9DA0925D26E1800CDFD21 /* SDLKeyboardCapabilitiesSpec.m */; }; + B3A9DA1225D270EA00CDFD21 /* SDLKeyboardLayoutCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = B3A9DA1125D270E900CDFD21 /* SDLKeyboardLayoutCapabilitySpec.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 */; }; @@ -2107,8 +2107,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>"; }; @@ -3204,9 +3204,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>"; }; @@ -3533,30 +3533,30 @@ 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>"; }; - B3992621258C1E480048F09B /* SDLKeyboardCapabilities.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardCapabilities.m; path = public/SDLKeyboardCapabilities.m; sourceTree = "<group>"; }; - B3992622258C1E480048F09B /* SDLKeyboardCapabilities.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardCapabilities.h; path = public/SDLKeyboardCapabilities.h; sourceTree = "<group>"; }; - B3992627258C24120048F09B /* SDLKeyboardInputMask.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLKeyboardInputMask.h; path = public/SDLKeyboardInputMask.h; sourceTree = "<group>"; }; - B3992628258C24130048F09B /* SDLKeyboardInputMask.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLKeyboardInputMask.m; path = public/SDLKeyboardInputMask.m; sourceTree = "<group>"; }; - B3992631258C276A0048F09B /* SDLConfigurableKeyboards.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLConfigurableKeyboards.m; path = public/SDLConfigurableKeyboards.m; sourceTree = "<group>"; }; - B3992632258C276B0048F09B /* SDLConfigurableKeyboards.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = SDLConfigurableKeyboards.h; path = public/SDLConfigurableKeyboards.h; sourceTree = "<group>"; }; - B3992641258FAADF0048F09B /* SDLConfigurableKeyboardsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLConfigurableKeyboardsSpec.m; sourceTree = "<group>"; }; - B3992649258FAB6B0048F09B /* SDLKeyboardCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLKeyboardCapabilitiesSpec.m; sourceTree = "<group>"; }; - B399264F258FABF60048F09B /* SDLKeyboardInputMaskSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLKeyboardInputMaskSpec.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>"; }; + B3A9DA0325D26D8500CDFD21 /* SDLKeyboardInputMaskSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLKeyboardInputMaskSpec.m; sourceTree = "<group>"; }; + B3A9DA0925D26E1800CDFD21 /* SDLKeyboardCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLKeyboardCapabilitiesSpec.m; sourceTree = "<group>"; }; + B3A9DA1125D270E900CDFD21 /* SDLKeyboardLayoutCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLKeyboardLayoutCapabilitySpec.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>"; }; @@ -3755,7 +3755,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 */, @@ -3773,7 +3773,7 @@ 162E81FD1A9BDE8A00906325 /* SDLImageTypeSpec.m */, 162E81FE1A9BDE8A00906325 /* SDLInteractionModeSpec.m */, 162E81FF1A9BDE8A00906325 /* SDLKeyboardEventSpec.m */, - B399264F258FABF60048F09B /* SDLKeyboardInputMaskSpec.m */, + B3A9DA0325D26D8500CDFD21 /* SDLKeyboardInputMaskSpec.m */, 162E82001A9BDE8A00906325 /* SDLKeyboardLayoutSpec.m */, 162E82011A9BDE8A00906325 /* SDLKeypressModeSpec.m */, 162E82021A9BDE8A00906325 /* SDLLanguageSpec.m */, @@ -4053,13 +4053,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 */, @@ -4071,7 +4071,8 @@ 162E829F1A9BDE8A00906325 /* SDLImageFieldSpec.m */, 5DB202261F5F2D030061D189 /* SDLImageResolutionSpec.m */, 162E82A01A9BDE8A00906325 /* SDLImageSpec.m */, - B3992649258FAB6B0048F09B /* SDLKeyboardCapabilitiesSpec.m */, + B3A9DA0925D26E1800CDFD21 /* SDLKeyboardCapabilitiesSpec.m */, + B3A9DA1125D270E900CDFD21 /* SDLKeyboardLayoutCapabilitySpec.m */, 162E82A11A9BDE8A00906325 /* SDLKeyboardPropertiesSpec.m */, 1EAA476B2036A52F000FE74B /* SDLLightCapabilitiesSpec.m */, 1EAA476920369ECC000FE74B /* SDLLightControlCapabilitiesSpec.m */, @@ -4102,14 +4103,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 */, @@ -4138,8 +4137,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 */, ); @@ -4205,47 +4204,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 = ( @@ -4339,16 +4338,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 = ( @@ -4520,9 +4519,9 @@ 5D339CE5207C0651000CC364 /* Menu */ = { isa = PBXGroup; children = ( - 4A32B3F325559F37001FFA26 /* Menu */, - 4A32B3E425559D93001FFA26 /* Voice Cammands */, - ); + 4A32B3F325559F37001FFA26 /* Menu */, + 4A32B3E425559D93001FFA26 /* Voice Cammands */, + ); name = Menu; sourceTree = "<group>"; }; @@ -4571,7 +4570,7 @@ children = ( 5D4019B11A76EC350006B0C2 /* Examples */, 5D61FA1D1A84237100846EE7 /* SmartDeviceLink */, - 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */, + 5D4346621E6F38E600B639C6 /* SmartDeviceLinkSwift */, 5D61FA2C1A84237100846EE7 /* SmartDeviceLinkTests */, 5D4019B01A76EC350006B0C2 /* Products */, ); @@ -5110,8 +5109,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 */, @@ -5124,8 +5123,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 */, @@ -5150,6 +5149,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 */, @@ -5216,8 +5221,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 */, @@ -5355,8 +5360,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 */, @@ -6238,7 +6243,7 @@ 5DAD5F8220507DED0025624C /* Soft Button */, 88D0E5D42478656B009469AB /* Subscribe Button */, 5DAD5F8320507DF30025624C /* Text and Graphic */, - 4AD1F16A2559952D00637FE1 /* Voice Command */, + 4AD1F16A2559952D00637FE1 /* Voice Command */, 5DAD5F8420507E1F0025624C /* SDLScreenManagerSpec.m */, ); name = Screen; @@ -6309,8 +6314,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>"; @@ -7023,7 +7028,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 */, B3992629258C24130048F09B /* SDLKeyboardInputMask.h in Headers */, @@ -7152,7 +7157,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 */, @@ -7273,6 +7278,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 */, @@ -7326,7 +7332,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 */, @@ -7341,6 +7347,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 */, @@ -7474,6 +7481,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 */, @@ -7501,11 +7509,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 */, @@ -7711,7 +7719,7 @@ }; 5D61FA1B1A84237100846EE7 = { CreatedOnToolsVersion = 6.1.1; - LastSwiftMigration = 1210; + LastSwiftMigration = 1210; }; 5D61FA251A84237100846EE7 = { CreatedOnToolsVersion = 6.1.1; @@ -7869,7 +7877,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 */, @@ -7983,7 +7992,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 */, @@ -8105,6 +8114,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 */, @@ -8129,7 +8139,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 */, @@ -8166,6 +8176,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 */, @@ -8287,7 +8298,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 */, @@ -8354,7 +8365,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 */, @@ -8446,6 +8457,7 @@ 162E837D1A9BDE8B00906325 /* SDLEmergencyEventSpec.m in Sources */, 162E82D31A9BDE8A00906325 /* SDLCarModeStatusSpec.m in Sources */, 8B7B31A91F2FB8BC00BDC38D /* SDLVideoStreamingProtocolSpec.m in Sources */, + B3A9DA0A25D26E1800CDFD21 /* SDLKeyboardCapabilitiesSpec.m in Sources */, 88EED83B1F33BECB00E6C42E /* SDLHapticRectSpec.m in Sources */, 162E82EA1A9BDE8B00906325 /* SDLLanguageSpec.m in Sources */, 5D76E3291D3D0A8800647CFA /* SDLFakeViewControllerPresenter.m in Sources */, @@ -8473,7 +8485,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 */, @@ -8486,7 +8498,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 */, @@ -8521,6 +8533,7 @@ 162E835B1A9BDE8B00906325 /* SDLPerformInteractionResponseSpec.m in Sources */, 880E35B82088F78E00181259 /* SDLSystemCapabilityManagerSpec.m in Sources */, 162E832D1A9BDE8B00906325 /* SDLEncodedSyncPDataSpec.m in Sources */, + B3A9DA0425D26D8500CDFD21 /* SDLKeyboardInputMaskSpec.m in Sources */, 1EE8C44C1F385C7100FDC2CF /* SDLRDSDataSpec.m in Sources */, 5DB92D241AC47B2C00C15BB0 /* SDLHexUtilitySpec.m in Sources */, 8815D0F022330765000F24E6 /* SDLRPCRequestNotificationSpec.m in Sources */, @@ -8597,7 +8610,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 */, @@ -8663,7 +8676,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 */, @@ -8826,6 +8839,7 @@ 162E830F1A9BDE8B00906325 /* SDLOnAppInterfaceUnregisteredSpec.m in Sources */, 162E83971A9BDE8B00906325 /* SDLVehicleTypeSpec.m in Sources */, 887BE4D422272B2200B397C2 /* SDLControlFramePayloadConstantsSpec.m in Sources */, + B3A9DA1225D270EA00CDFD21 /* SDLKeyboardLayoutCapabilitySpec.m in Sources */, 885468382225CBA400994D8D /* SDLCloudAppPropertiesSpec.m in Sources */, 88A795D5210678E000056542 /* SDLStaticIconNameSpec.m in Sources */, 1680B1131A9CD7AD00DBD79E /* SDLProtocolHeaderSpec.m in Sources */, @@ -8868,7 +8882,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 */, @@ -8889,7 +8903,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 */, @@ -9303,7 +9317,7 @@ PRODUCT_NAME = "$(TARGET_NAME)"; SWIFT_OPTIMIZATION_LEVEL = "-Onone"; SWIFT_VERSION = 5.0; - VALIDATE_WORKSPACE = NO; + VALIDATE_WORKSPACE = NO; }; name = Debug; }; @@ -9336,7 +9350,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 d995a5509..a838076a3 100644 --- a/SmartDeviceLink/private/SDLRPCParameterNames.h +++ b/SmartDeviceLink/private/SDLRPCParameterNames.h @@ -168,6 +168,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 SDLRPCParameterNameCustomizeKeys; extern SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType; @@ -492,6 +493,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; @@ -682,7 +684,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes; extern SDLRPCParameterName const SDLRPCParameterNameSupportedDynamicImageFieldNames; extern SDLRPCParameterName const SDLRPCParameterNameSupportsDynamicSubMenus; extern SDLRPCParameterName const SDLRPCParameterNameSupportedFormats; -extern SDLRPCParameterName const SDLRPCParameterNameSupportedKeyboardLayouts; +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 f5c3cfd5a..3131a96d9 100644 --- a/SmartDeviceLink/private/SDLRPCParameterNames.m +++ b/SmartDeviceLink/private/SDLRPCParameterNames.m @@ -167,6 +167,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 SDLRPCParameterNameCustomizeKeys = @"customizeKeys"; SDLRPCParameterName const SDLRPCParameterNameData = @"data"; @@ -482,11 +483,11 @@ SDLRPCParameterName const SDLRPCParameterNameNextTurnIcon = @"nextTurnIcon"; SDLRPCParameterName const SDLRPCParameterNameNGNMediaScreenAppName = @"ngnMediaScreenAppName"; SDLRPCParameterName const SDLRPCParameterNameNicknames = @"nicknames"; SDLRPCParameterName const SDLRPCParameterNameNightColorScheme = @"nightColorScheme"; -SDLRPCParameterName const SDLRPCParameterNameNumConfigurableKeys = @"numConfigurableKeys"; 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"; @@ -678,7 +679,7 @@ SDLRPCParameterName const SDLRPCParameterNameSupportedDiagnosticModes = @"suppor SDLRPCParameterName const SDLRPCParameterNameSupportedDynamicImageFieldNames = @"supportedDynamicImageFieldNames"; SDLRPCParameterName const SDLRPCParameterNameSupportsDynamicSubMenus = @"supportsDynamicSubMenus"; SDLRPCParameterName const SDLRPCParameterNameSupportedFormats = @"supportedFormats"; -SDLRPCParameterName const SDLRPCParameterNameSupportedKeyboardLayouts = @"supportedKeyboardLayouts"; +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 index d4a5e0b56..9ed4e831e 100644 --- a/SmartDeviceLink/public/SDLKeyboardCapabilities.h +++ b/SmartDeviceLink/public/SDLKeyboardCapabilities.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -30,10 +30,9 @@ * POSSIBILITY OF SUCH DAMAGE. */ -#import "SDLKeyboardLayout.h" #import "SDLRPCStruct.h" -@class SDLConfigurableKeyboards; +@class SDLKeyboardLayoutCapability; NS_ASSUME_NONNULL_BEGIN @@ -44,34 +43,21 @@ NS_ASSUME_NONNULL_BEGIN /** * @param maskInputCharactersSupported - maskInputCharactersSupported - * @param supportedKeyboardLayouts - supportedKeyboardLayouts - * @param configurableKeys - configurableKeys + * @param supportedKeyboards - supportedKeyboards * @return A SDLKeyboardCapabilities object */ -- (instancetype)initWithMaskInputCharactersSupported:(nullable NSNumber<SDLBool> *)maskInputCharactersSupported supportedKeyboardLayouts:(nullable NSArray<SDLKeyboardLayout> *)supportedKeyboardLayouts configurableKeys:(nullable NSArray<SDLConfigurableKeyboards *> *)configurableKeys; +- (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 - * - * @added in SmartDeviceLink 7.1.0 */ @property (nullable, strong, nonatomic) NSNumber<SDLBool> *maskInputCharactersSupported; /** - * Supported keyboard layouts by HMI. - * {"array_min_size": 1, "array_max_size": 1000} - * - * @added in SmartDeviceLink 7.1.0 - */ -@property (nullable, strong, nonatomic) NSArray<SDLKeyboardLayout> *supportedKeyboardLayouts; - -/** - * Get Number of Keys for Special characters, App can customize as per their needs. + * Capabilities of supported keyboard layouts by HMI. * {"array_min_size": 1, "array_max_size": 1000} - * - * @added in SmartDeviceLink 7.1.0 */ -@property (nullable, strong, nonatomic) NSArray<SDLConfigurableKeyboards *> *configurableKeys; +@property (nullable, strong, nonatomic) NSArray<SDLKeyboardLayoutCapability *> *supportedKeyboards; @end diff --git a/SmartDeviceLink/public/SDLKeyboardCapabilities.m b/SmartDeviceLink/public/SDLKeyboardCapabilities.m index 08f7a7816..27799f17a 100644 --- a/SmartDeviceLink/public/SDLKeyboardCapabilities.m +++ b/SmartDeviceLink/public/SDLKeyboardCapabilities.m @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -31,22 +31,21 @@ */ #import "NSMutableDictionary+Store.h" -#import "SDLConfigurableKeyboards.h" #import "SDLKeyboardCapabilities.h" -#import "SDLKeyboardLayout.h" +#import "SDLKeyboardLayoutCapability.h" #import "SDLRPCParameterNames.h" NS_ASSUME_NONNULL_BEGIN + @implementation SDLKeyboardCapabilities -- (instancetype)initWithMaskInputCharactersSupported:(nullable NSNumber<SDLBool> *)maskInputCharactersSupported supportedKeyboardLayouts:(nullable NSArray<SDLKeyboardLayout> *)supportedKeyboardLayouts configurableKeys:(nullable NSArray<SDLConfigurableKeyboards *> *)configurableKeys { +- (instancetype)initWithMaskInputCharactersSupported:(nullable NSNumber<SDLBool> *)maskInputCharactersSupported supportedKeyboards:(nullable NSArray<SDLKeyboardLayoutCapability *> *)supportedKeyboards { self = [self init]; if (!self) { return nil; } self.maskInputCharactersSupported = maskInputCharactersSupported; - self.supportedKeyboardLayouts = supportedKeyboardLayouts; - self.configurableKeys = configurableKeys; + self.supportedKeyboards = supportedKeyboards; return self; } @@ -58,20 +57,12 @@ NS_ASSUME_NONNULL_BEGIN return [self.store sdl_objectForName:SDLRPCParameterNameMaskInputCharactersSupported ofClass:NSNumber.class error:nil]; } -- (void)setSupportedKeyboardLayouts:(nullable NSArray<SDLKeyboardLayout> *)supportedKeyboardLayouts { - [self.store sdl_setObject:supportedKeyboardLayouts forName:SDLRPCParameterNameSupportedKeyboardLayouts]; -} - -- (nullable NSArray<SDLKeyboardLayout> *)supportedKeyboardLayouts { - return [self.store sdl_enumsForName:SDLRPCParameterNameSupportedKeyboardLayouts error:nil]; -} - -- (void)setConfigurableKeys:(nullable NSArray<SDLConfigurableKeyboards *> *)configurableKeys { - [self.store sdl_setObject:configurableKeys forName:SDLRPCParameterNameConfigurableKeys]; +- (void)setSupportedKeyboards:(nullable NSArray<SDLKeyboardLayoutCapability *> *)supportedKeyboards { + [self.store sdl_setObject:supportedKeyboards forName:SDLRPCParameterNameSupportedKeyboards]; } -- (nullable NSArray<SDLConfigurableKeyboards *> *)configurableKeys { - return [self.store sdl_objectsForName:SDLRPCParameterNameConfigurableKeys ofClass:SDLConfigurableKeyboards.class error:nil]; +- (nullable NSArray<SDLKeyboardLayoutCapability *> *)supportedKeyboards { + return [self.store sdl_objectsForName:SDLRPCParameterNameSupportedKeyboards ofClass:SDLKeyboardLayoutCapability.class error:nil]; } @end diff --git a/SmartDeviceLink/public/SDLKeyboardInputMask.h b/SmartDeviceLink/public/SDLKeyboardInputMask.h index 89eb5d191..fc16b1756 100644 --- a/SmartDeviceLink/public/SDLKeyboardInputMask.h +++ b/SmartDeviceLink/public/SDLKeyboardInputMask.h @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without @@ -38,6 +38,7 @@ * @added in SmartDeviceLink 7.1.0 */ typedef SDLEnum SDLKeyboardInputMask NS_TYPED_ENUM; + extern SDLKeyboardInputMask const SDLKeyboardInputMaskEnableInputKeyMask; extern SDLKeyboardInputMask const SDLKeyboardInputMaskDisableInputKeyMask; diff --git a/SmartDeviceLink/public/SDLKeyboardInputMask.m b/SmartDeviceLink/public/SDLKeyboardInputMask.m index ac87ac149..e8be72db1 100644 --- a/SmartDeviceLink/public/SDLKeyboardInputMask.m +++ b/SmartDeviceLink/public/SDLKeyboardInputMask.m @@ -1,5 +1,5 @@ /* - * Copyright (c) 2020, SmartDeviceLink Consortium, Inc. + * Copyright (c) 2021, SmartDeviceLink Consortium, Inc. * All rights reserved. * * Redistribution and use in source and binary forms, with or without diff --git a/SmartDeviceLink/public/SDLKeyboardLayoutCapability.h b/SmartDeviceLink/public/SDLKeyboardLayoutCapability.h new file mode 100644 index 000000000..b78218663 --- /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 diff --git a/SmartDeviceLink/public/SDLKeyboardLayoutCapability.m b/SmartDeviceLink/public/SDLKeyboardLayoutCapability.m new file mode 100644 index 000000000..57cb9a81c --- /dev/null +++ b/SmartDeviceLink/public/SDLKeyboardLayoutCapability.m @@ -0,0 +1,72 @@ +/* + * 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 diff --git a/SmartDeviceLink/public/SDLKeyboardProperties.h b/SmartDeviceLink/public/SDLKeyboardProperties.h index 575994ae5..55a3ed1b0 100644 --- a/SmartDeviceLink/public/SDLKeyboardProperties.h +++ b/SmartDeviceLink/public/SDLKeyboardProperties.h @@ -1,12 +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 @@ -26,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. @@ -38,7 +37,7 @@ 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 @@ -47,10 +46,10 @@ NS_ASSUME_NONNULL_BEGIN * @param limitedCharacterList - limitedCharacterList * @param autoCompleteList - autoCompleteList * @param maskInputCharacters - maskInputCharacters - * @param customizeKeys - customizeKeys + * @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 customizeKeys:(nullable NSArray<NSString *> *)customizeKeys; +- (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 @@ -106,12 +105,12 @@ NS_ASSUME_NONNULL_BEGIN @property (nullable, strong, nonatomic) SDLKeyboardInputMask maskInputCharacters; /** - * Array of special characters to show in customizable Keys. If omitted, keyboard will show default special characters + * 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 *> *customizeKeys; +@property (nullable, strong, nonatomic) NSArray<NSString *> *customKeys; @end diff --git a/SmartDeviceLink/public/SDLKeyboardProperties.m b/SmartDeviceLink/public/SDLKeyboardProperties.m index b6e5090c8..d57a21c2c 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,11 +19,10 @@ 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 { - self = [self initWithLanguage:language keyboardLayout:keyboardLayout keypressMode:keypressMode limitedCharacterList:limitedCharacterList autoCompleteList:autoCompleteList maskInputCharacters:nil customizeKeys:nil]; - return self; + 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<NSString *> *)limitedCharacterList autoCompleteList:(nullable NSArray<NSString *> *)autoCompleteList maskInputCharacters:(nullable SDLKeyboardInputMask)maskInputCharacters customizeKeys:(nullable NSArray<NSString *> *)customizeKeys { +- (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; @@ -34,7 +33,7 @@ NS_ASSUME_NONNULL_BEGIN self.limitedCharacterList = limitedCharacterList; self.autoCompleteList = autoCompleteList; self.maskInputCharacters = maskInputCharacters; - self.customizeKeys = customizeKeys; + self.customKeys = customKeys; return self; } @@ -94,12 +93,12 @@ NS_ASSUME_NONNULL_BEGIN return [self.store sdl_enumForName:SDLRPCParameterNameMaskInputCharacters error:nil]; } -- (void)setCustomizeKeys:(nullable NSArray<NSString *> *)customizeKeys { - [self.store sdl_setObject:customizeKeys forName:SDLRPCParameterNameCustomizeKeys]; +- (void)setCustomKeys:(nullable NSArray<NSString *> *)customKeys { + [self.store sdl_setObject:customKeys forName:SDLRPCParameterNameCustomKeys]; } -- (nullable NSArray<NSString *> *)customizeKeys { - return [self.store sdl_objectsForName:SDLRPCParameterNameCustomizeKeys ofClass:NSString.class error:nil]; +- (nullable NSArray<NSString *> *)customKeys { + return [self.store sdl_objectsForName:SDLRPCParameterNameCustomKeys ofClass:NSString.class error:nil]; } @end diff --git a/SmartDeviceLink/public/SDLWindowCapability.h b/SmartDeviceLink/public/SDLWindowCapability.h index ff85a680b..3f37d2e50 100644 --- a/SmartDeviceLink/public/SDLWindowCapability.h +++ b/SmartDeviceLink/public/SDLWindowCapability.h @@ -42,7 +42,6 @@ @class SDLSoftButtonCapabilities; @class SDLTextField; - NS_ASSUME_NONNULL_BEGIN /** diff --git a/SmartDeviceLink/public/SDLWindowCapability.m b/SmartDeviceLink/public/SDLWindowCapability.m index 5402cb2fa..3db3195ff 100644 --- a/SmartDeviceLink/public/SDLWindowCapability.m +++ b/SmartDeviceLink/public/SDLWindowCapability.m @@ -43,6 +43,10 @@ @implementation SDLWindowCapability +- (instancetype)initWithWindowID:(nullable NSNumber<SDLInt> *)windowID textFields:(nullable NSArray<SDLTextField *> *)textFields imageFields:(nullable NSArray<SDLImageField *> *)imageFields imageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported templatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable numCustomPresetsAvailable:(nullable NSNumber<SDLUInt> *)numCustomPresetsAvailable buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities softButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities menuLayoutsAvailable:(nullable NSArray<SDLMenuLayout> *)menuLayoutsAvailable dynamicUpdateCapabilities:(nullable SDLDynamicUpdateCapabilities *)dynamicUpdateCapabilities { + return [self initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:dynamicUpdateCapabilities keyboardCapabilities:nil]; +} + - (instancetype)initWithWindowID:(nullable NSNumber<SDLInt> *)windowID textFields:(nullable NSArray<SDLTextField *> *)textFields imageFields:(nullable NSArray<SDLImageField *> *)imageFields imageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported templatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable numCustomPresetsAvailable:(nullable NSNumber<SDLUInt> *)numCustomPresetsAvailable buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities softButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities menuLayoutsAvailable:(nullable NSArray<SDLMenuLayout> *)menuLayoutsAvailable dynamicUpdateCapabilities:(nullable SDLDynamicUpdateCapabilities *)dynamicUpdateCapabilities keyboardCapabilities:(nullable SDLKeyboardCapabilities *)keyboardCapabilities { self = [super init]; if (!self) { @@ -62,11 +66,6 @@ return self; } -- (instancetype)initWithWindowID:(nullable NSNumber<SDLInt> *)windowID textFields:(nullable NSArray<SDLTextField *> *)textFields imageFields:(nullable NSArray<SDLImageField *> *)imageFields imageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported templatesAvailable:(nullable NSArray<NSString *> *)templatesAvailable numCustomPresetsAvailable:(nullable NSNumber<SDLUInt> *)numCustomPresetsAvailable buttonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities softButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities menuLayoutsAvailable:(nullable NSArray<SDLMenuLayout> *)menuLayoutsAvailable dynamicUpdateCapabilities:(nullable SDLDynamicUpdateCapabilities *)dynamicUpdateCapabilities { - self = [self initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:dynamicUpdateCapabilities keyboardCapabilities:nil]; - return self; -} - - (void)setWindowID:(nullable NSNumber<SDLUInt> *)windowID { [self.store sdl_setObject:windowID forName:SDLRPCParameterNameWindowId]; } diff --git a/SmartDeviceLink/public/SmartDeviceLink.h b/SmartDeviceLink/public/SmartDeviceLink.h index 6889bd64c..16a573ebf 100644 --- a/SmartDeviceLink/public/SmartDeviceLink.h +++ b/SmartDeviceLink/public/SmartDeviceLink.h @@ -198,7 +198,6 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLClimateControlData.h" #import "SDLClimateData.h" #import "SDLCloudAppProperties.h" -#import "SDLConfigurableKeyboards.h" #import "SDLDIDResult.h" #import "SDLDateTime.h" #import "SDLDeviceInfo.h" @@ -227,6 +226,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[]; #import "SDLImageField.h" #import "SDLImageResolution.h" #import "SDLKeyboardCapabilities.h" +#import "SDLKeyboardLayoutCapability.h" #import "SDLKeyboardProperties.h" #import "SDLLightCapabilities.h" #import "SDLLightControlCapabilities.h" diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLChoiceSetManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLChoiceSetManagerSpec.m index 321a2dde6..2d3fa0707 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLChoiceSetManagerSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLChoiceSetManagerSpec.m @@ -105,7 +105,7 @@ describe(@"choice set manager tests", ^{ it(@"should be in the correct startup state", ^{ expect(testManager.currentState).to(equal(SDLChoiceManagerStateShutdown)); - SDLKeyboardProperties *defaultProperties = [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageEnUs keyboardLayout:SDLKeyboardLayoutQWERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil]; + SDLKeyboardProperties *defaultProperties = [[SDLKeyboardProperties alloc] initWithLanguage:SDLLanguageEnUs keyboardLayout:SDLKeyboardLayoutQWERTY keypressMode:SDLKeypressModeResendCurrentEntry limitedCharacterList:nil autoCompleteList:nil maskInputCharacters:nil customKeys:nil]; expect(testManager.keyboardConfiguration).to(equal(defaultProperties)); }); 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'", ^{ diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m index d254c9d06..e0ab9ed0f 100644 --- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLKeyboardLayoutSpec.m @@ -12,8 +12,8 @@ QuickSpecBegin(SDLKeyboardLayoutSpec) -describe(@"individual enum value tests", ^{ - it(@"should match internal values", ^{ +describe(@"individual enum value tests", ^ { + it(@"should match internal values", ^ { expect(SDLKeyboardLayoutQWERTY).to(equal(@"QWERTY")); expect(SDLKeyboardLayoutQWERTZ).to(equal(@"QWERTZ")); expect(SDLKeyboardLayoutAZERTY).to(equal(@"AZERTY")); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardCapabilitiesSpec.m index 2d0e80779..dc25aa921 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardCapabilitiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardCapabilitiesSpec.m @@ -1,5 +1,5 @@ // -// SDLScreenParamsSpec.m +// SDLKeyboardCapabilitiesSpec.m // SmartDeviceLink @@ -8,62 +8,69 @@ #import <Quick/Quick.h> #import <Nimble/Nimble.h> -#import "SDLConfigurableKeyboards.h" #import "SDLKeyboardCapabilities.h" #import "SDLRPCParameterNames.h" +#import "SDLKeyboardLayoutCapability.h" QuickSpecBegin(SDLKeyboardCapabilitiesSpec) NSNumber *maskInputCharactersSupported = @YES; -NSArray<SDLKeyboardLayout> *supportedKeyboardLayouts = @[SDLKeyboardLayoutNumeric]; -NSArray<SDLConfigurableKeyboards *> *configurableKeys = @[[[SDLConfigurableKeyboards alloc] init]]; +SDLKeyboardLayoutCapability *keyboardLayoutCapability = [[SDLKeyboardLayoutCapability alloc] init]; +NSArray<SDLKeyboardLayoutCapability *> *supportedKeyboards = @[keyboardLayoutCapability]; +__block SDLKeyboardCapabilities* testStruct = nil; describe(@"getter/setter tests", ^{ + afterEach(^{ + testStruct = nil; + }); + context(@"init", ^{ - SDLKeyboardCapabilities* testStruct = [[SDLKeyboardCapabilities alloc] init]; + beforeEach(^{ + testStruct = [[SDLKeyboardCapabilities alloc] init]; + }); it(@"should return nil if not set", ^{ expect(testStruct.maskInputCharactersSupported).to(beNil()); - expect(testStruct.supportedKeyboardLayouts).to(beNil()); - expect(testStruct.configurableKeys).to(beNil()); + expect(testStruct.supportedKeyboards).to(beNil()); }); }); context(@"init and assign", ^{ - SDLKeyboardCapabilities* testStruct = [[SDLKeyboardCapabilities alloc] init]; - testStruct.maskInputCharactersSupported = maskInputCharactersSupported; - testStruct.supportedKeyboardLayouts = supportedKeyboardLayouts; - testStruct.configurableKeys = configurableKeys; + beforeEach(^{ + testStruct = [[SDLKeyboardCapabilities alloc] init]; + testStruct.maskInputCharactersSupported = maskInputCharactersSupported; + testStruct.supportedKeyboards = supportedKeyboards; + }); it(@"expect all properties to be set properly", ^{ expect(testStruct.maskInputCharactersSupported).to(equal(maskInputCharactersSupported)); - expect(testStruct.supportedKeyboardLayouts).to(equal(supportedKeyboardLayouts)); - expect(testStruct.configurableKeys).to(equal(configurableKeys)); + expect(testStruct.supportedKeyboards).to(equal(supportedKeyboards)); }); }); context(@"initWithDictionary:", ^{ - NSDictionary<NSString *, id> *dict = @{ - SDLRPCParameterNameMaskInputCharactersSupported: maskInputCharactersSupported, - SDLRPCParameterNameSupportedKeyboardLayouts: supportedKeyboardLayouts, - SDLRPCParameterNameConfigurableKeys: configurableKeys, - }; - SDLKeyboardCapabilities* testStruct = [[SDLKeyboardCapabilities alloc] initWithDictionary:dict]; + beforeEach(^{ + NSDictionary<NSString *, id> *dict = @{ + SDLRPCParameterNameMaskInputCharactersSupported: maskInputCharactersSupported, + SDLRPCParameterNameSupportedKeyboards: supportedKeyboards, + }; + testStruct = [[SDLKeyboardCapabilities alloc] initWithDictionary:dict]; + }); it(@"expect all properties to be set properly", ^{ expect(testStruct.maskInputCharactersSupported).to(equal(maskInputCharactersSupported)); - expect(testStruct.supportedKeyboardLayouts).to(equal(supportedKeyboardLayouts)); - expect(testStruct.configurableKeys).to(equal(configurableKeys)); + expect(testStruct.supportedKeyboards).to(equal(supportedKeyboards)); }); }); - context(@"initWithMaskInputCharactersSupported:supportedKeyboardLayouts:configurableKeys:", ^{ - SDLKeyboardCapabilities* testStruct = [[SDLKeyboardCapabilities alloc] initWithMaskInputCharactersSupported:maskInputCharactersSupported supportedKeyboardLayouts:supportedKeyboardLayouts configurableKeys:configurableKeys]; + context(@"initWithMaskInputCharactersSupported:supportedKeyboards:", ^{ + beforeEach(^{ + testStruct = [[SDLKeyboardCapabilities alloc] initWithMaskInputCharactersSupported:maskInputCharactersSupported supportedKeyboards:supportedKeyboards]; + }); it(@"expect all properties to be set properly", ^{ expect(testStruct.maskInputCharactersSupported).to(equal(maskInputCharactersSupported)); - expect(testStruct.supportedKeyboardLayouts).to(equal(supportedKeyboardLayouts)); - expect(testStruct.configurableKeys).to(equal(configurableKeys)); + expect(testStruct.supportedKeyboards).to(equal(supportedKeyboards)); }); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardLayoutCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardLayoutCapabilitySpec.m new file mode 100644 index 000000000..6457c6e97 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardLayoutCapabilitySpec.m @@ -0,0 +1,78 @@ +// +// SDLKeyboardLayoutCapabilitySpec.m +// SmartDeviceLink + + +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLKeyboardCapabilities.h" +#import "SDLKeyboardLayout.h" +#import "SDLRPCParameterNames.h" +#import "SDLKeyboardLayoutCapability.h" + +QuickSpecBegin(SDLKeyboardLayoutCapabilitySpec) + +SDLKeyboardLayout keyboardLayout = SDLKeyboardLayoutNumeric; +UInt8 numConfigurableKeys = 9; +__block SDLKeyboardLayoutCapability* testStruct = nil; + +describe(@"getter/setter tests", ^{ + afterEach(^{ + testStruct = nil; + }); + + context(@"init", ^{ + beforeEach(^{ + testStruct = [[SDLKeyboardLayoutCapability alloc] init]; + }); + + it(@"should return nil if not set", ^{ + expect(testStruct.keyboardLayout).to(beNil()); + expect(testStruct.numConfigurableKeys).to(beNil()); + }); + }); + + context(@"init and assign", ^{ + beforeEach(^{ + testStruct = [[SDLKeyboardLayoutCapability alloc] init]; + testStruct.numConfigurableKeys = @(numConfigurableKeys); + testStruct.keyboardLayout = keyboardLayout; + }); + + it(@"expect all properties to be set properly", ^{ + expect(testStruct.numConfigurableKeys).to(equal(@(numConfigurableKeys))); + expect(testStruct.keyboardLayout).to(equal(keyboardLayout)); + }); + }); + + context(@"initWithDictionary:", ^{ + beforeEach(^{ + NSDictionary<NSString *, id> *dict = @{ + SDLRPCParameterNameNumConfigurableKeys: @(numConfigurableKeys), + SDLRPCParameterNameKeyboardLayout: keyboardLayout, + }; + testStruct = [[SDLKeyboardLayoutCapability alloc] initWithDictionary:dict]; + }); + + it(@"expect all properties to be set properly", ^{ + expect(testStruct.numConfigurableKeys).to(equal(@(numConfigurableKeys))); + expect(testStruct.keyboardLayout).to(equal(keyboardLayout)); + }); + }); + + context(@"initWithKeyboardLayout:numConfigurableKeys:", ^{ + beforeEach(^{ + testStruct = [[SDLKeyboardLayoutCapability alloc] initWithKeyboardLayout:keyboardLayout numConfigurableKeys:numConfigurableKeys]; + }); + + it(@"expect all properties to be set properly", ^{ + expect(testStruct.numConfigurableKeys).to(equal(@(numConfigurableKeys))); + expect(testStruct.keyboardLayout).to(equal(keyboardLayout)); + }); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m index a6f072d5e..e8eda61ea 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLKeyboardPropertiesSpec.m @@ -17,17 +17,17 @@ QuickSpecBegin(SDLKeyboardPropertiesSpec) +SDLLanguage testLanguage = SDLLanguageDaDk; +SDLKeyboardLayout testLayout = SDLKeyboardLayoutAZERTY; +SDLKeypressMode testMode = SDLKeypressModeSingleKeypress; +NSArray<NSString *> *testLimitedCharacterList = @[@"s", @"r", @"f"]; +NSString *testAutoCompleteText = @"Auto Carrot"; +NSArray<NSString *> *testAutoCompleteList = @[@"Hello World", @"How are you"]; +SDLKeyboardInputMask maskInputCharacters = SDLKeyboardInputMaskEnableInputKeyMask; +NSArray<NSString *> *customKeys = @[@"abc", @"DEF"]; + describe(@"getter/setter tests", ^{ - SDLLanguage testLanguage = SDLLanguageDaDk; - SDLKeyboardLayout testLayout = SDLKeyboardLayoutAZERTY; - SDLKeypressMode testMode = SDLKeypressModeSingleKeypress; - NSArray<NSString *> *testLimitedCharacterList = @[@"s", @"r", @"f"]; - NSString *testAutoCompleteText = @"Auto Carrot"; - NSArray<NSString *> *testAutoCompleteList = @[@"Hello World", @"How are you"]; - SDLKeyboardInputMask maskInputCharacters = SDLKeyboardInputMaskUserChoiceInputKeyMask; - NSArray<NSString *> *customizeKeys = @[@"aaa", @"bbb"]; - - context(@"init and assign", ^{ + it(@"should set and get correctly", ^{ SDLKeyboardProperties* testStruct = [[SDLKeyboardProperties alloc] init]; testStruct.language = testLanguage; @@ -35,29 +35,29 @@ describe(@"getter/setter tests", ^{ testStruct.keypressMode = testMode; testStruct.limitedCharacterList = testLimitedCharacterList; testStruct.autoCompleteList = testAutoCompleteList; + testStruct.maskInputCharacters = maskInputCharacters; + testStruct.customKeys = customKeys; #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" testStruct.autoCompleteText = testAutoCompleteText; #pragma clang diagnostic pop testStruct.maskInputCharacters = maskInputCharacters; - testStruct.customizeKeys = customizeKeys; - it(@"expect to be set properly", ^{ - expect(testStruct.language).to(equal(testLanguage)); - expect(testStruct.keyboardLayout).to(equal(testLayout)); - expect(testStruct.keypressMode).to(equal(testMode)); - expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); - expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); + expect(testStruct.language).to(equal(testLanguage)); + expect(testStruct.keyboardLayout).to(equal(testLayout)); + expect(testStruct.keypressMode).to(equal(testMode)); + expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); + expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); + expect(testStruct.maskInputCharacters).to(equal(maskInputCharacters)); + expect(testStruct.customKeys).to(equal(customKeys)); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.autoCompleteText).to(equal(testAutoCompleteText)); #pragma clang diagnostic pop expect(testStruct.maskInputCharacters).to(equal(maskInputCharacters)); - expect(testStruct.customizeKeys).to(equal(customizeKeys)); }); - }); - context(@"initWithDictionary", ^{ + it(@"should get correctly when initialized with a dictionary", ^{ NSDictionary* dict = @{SDLRPCParameterNameLanguage: testLanguage, SDLRPCParameterNameKeyboardLayout: testLayout, SDLRPCParameterNameKeypressMode: testMode, @@ -65,97 +65,99 @@ describe(@"getter/setter tests", ^{ SDLRPCParameterNameAutoCompleteList: testAutoCompleteList, SDLRPCParameterNameAutoCompleteText: testAutoCompleteText, SDLRPCParameterNameMaskInputCharacters: maskInputCharacters, - SDLRPCParameterNameCustomizeKeys: customizeKeys, + SDLRPCParameterNameCustomKeys: customKeys, }; SDLKeyboardProperties* testStruct = [[SDLKeyboardProperties alloc] initWithDictionary:dict]; - it(@"expect to be set properly", ^{ - expect(testStruct.language).to(equal(testLanguage)); - expect(testStruct.keyboardLayout).to(equal(testLayout)); - expect(testStruct.keypressMode).to(equal(testMode)); - expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); - expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); + expect(testStruct.language).to(equal(testLanguage)); + expect(testStruct.keyboardLayout).to(equal(testLayout)); + expect(testStruct.keypressMode).to(equal(testMode)); + expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); + expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); + expect(testStruct.maskInputCharacters).to(equal(maskInputCharacters)); + expect(testStruct.customKeys).to(equal(customKeys)); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.autoCompleteText).to(equal(testAutoCompleteText)); #pragma clang diagnostic pop expect(testStruct.maskInputCharacters).to(equal(maskInputCharacters)); - expect(testStruct.customizeKeys).to(equal(customizeKeys)); }); - }); - context(@"initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:autoCompleteList:", ^{ + it(@"should get correctly when initialized with initWithLanguage:layout:keypressMode:limitedCharacterList:autoCompleteText:autoCompleteList:", ^{ #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLKeyboardProperties *testStruct = [[SDLKeyboardProperties alloc] initWithLanguage:testLanguage layout:testLayout keypressMode:testMode limitedCharacterList:testLimitedCharacterList autoCompleteText:testAutoCompleteText autoCompleteList:testAutoCompleteList]; #pragma clang diagnostic pop - - it(@"expect to be set properly", ^{ - expect(testStruct.language).to(equal(testLanguage)); - expect(testStruct.keyboardLayout).to(equal(testLayout)); - expect(testStruct.keypressMode).to(equal(testMode)); - expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); + expect(testStruct.language).to(equal(testLanguage)); + expect(testStruct.keyboardLayout).to(equal(testLayout)); + expect(testStruct.keypressMode).to(equal(testMode)); + expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); + expect(testStruct.maskInputCharacters).to(beNil()); + expect(testStruct.customKeys).to(beNil()); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.autoCompleteText).to(equal(testAutoCompleteText)); #pragma clang diagnostic pop expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); expect(testStruct.maskInputCharacters).to(beNil()); - expect(testStruct.customizeKeys).to(beNil()); }); - }); - context(@"initWithLanguage:keyboardLayout:keypressMode:limitedCharacterList:autoCompleteList:", ^{ + it(@"should get correctly when initialized with initWithLanguage:keyboardLayout:keypressMode:limitedCharacterList:autoCompleteList:", ^{ +#pragma clang diagnostic push +#pragma clang diagnostic ignored "-Wdeprecated-declarations" SDLKeyboardProperties *testStruct = [[SDLKeyboardProperties alloc] initWithLanguage:testLanguage keyboardLayout:testLayout keypressMode:testMode limitedCharacterList:testLimitedCharacterList autoCompleteList:testAutoCompleteList]; - - it(@"expect to be set properly", ^{ - expect(testStruct.language).to(equal(testLanguage)); - expect(testStruct.keyboardLayout).to(equal(testLayout)); - expect(testStruct.keypressMode).to(equal(testMode)); - expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); +#pragma clang diagnostic pop + expect(testStruct.language).to(equal(testLanguage)); + expect(testStruct.keyboardLayout).to(equal(testLayout)); + expect(testStruct.keypressMode).to(equal(testMode)); + expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); + expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); + expect(testStruct.maskInputCharacters).to(beNil()); + expect(testStruct.customKeys).to(beNil()); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.autoCompleteText).to(beNil()); #pragma clang diagnostic pop expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); expect(testStruct.maskInputCharacters).to(beNil()); - expect(testStruct.customizeKeys).to(beNil()); }); - }); - - context(@"initWithLanguage:keyboardLayout:keypressMode:limitedCharacterList:autoCompleteList:maskInputCharacters:customizeKeys:", ^{ - SDLKeyboardProperties *testStruct = [[SDLKeyboardProperties alloc] initWithLanguage:testLanguage keyboardLayout:testLayout keypressMode:testMode limitedCharacterList:testLimitedCharacterList autoCompleteList:testAutoCompleteList maskInputCharacters:maskInputCharacters customizeKeys:customizeKeys]; - it(@"expect to be set properly", ^{ - expect(testStruct.language).to(equal(testLanguage)); - expect(testStruct.keyboardLayout).to(equal(testLayout)); - expect(testStruct.keypressMode).to(equal(testMode)); - expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); + it(@"should return nil if not set", ^{ + SDLKeyboardProperties* testStruct = [[SDLKeyboardProperties alloc] init]; + + expect(testStruct.language).to(beNil()); + expect(testStruct.keyboardLayout).to(beNil()); + expect(testStruct.keypressMode).to(beNil()); + expect(testStruct.limitedCharacterList).to(beNil()); + expect(testStruct.autoCompleteList).to(beNil()); + expect(testStruct.maskInputCharacters).to(beNil()); + expect(testStruct.customKeys).to(beNil()); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.autoCompleteText).to(beNil()); #pragma clang diagnostic pop - expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); - expect(testStruct.maskInputCharacters).to(equal(maskInputCharacters)); - expect(testStruct.customizeKeys).to(equal(customizeKeys)); + expect(testStruct.maskInputCharacters).to(beNil()); }); - }); - context(@"init", ^{ - SDLKeyboardProperties* testStruct = [[SDLKeyboardProperties alloc] init]; + context(@"initWithLanguage:keyboardLayout:keypressMode:limitedCharacterList:autoCompleteList:maskInputCharacters:customKeys:", ^{ + __block SDLKeyboardProperties *testStruct = nil; - it(@"should return nil if not set", ^{ - expect(testStruct.language).to(beNil()); - expect(testStruct.keyboardLayout).to(beNil()); - expect(testStruct.keypressMode).to(beNil()); - expect(testStruct.limitedCharacterList).to(beNil()); - expect(testStruct.autoCompleteList).to(beNil()); + beforeEach(^{ + testStruct = [[SDLKeyboardProperties alloc] initWithLanguage:testLanguage keyboardLayout:testLayout keypressMode:testMode limitedCharacterList:testLimitedCharacterList autoCompleteList:testAutoCompleteList maskInputCharacters:maskInputCharacters customKeys:customKeys]; + }); + + it(@"all properties must be set properly", ^{ + expect(testStruct.language).to(equal(testLanguage)); + expect(testStruct.keyboardLayout).to(equal(testLayout)); + expect(testStruct.keypressMode).to(equal(testMode)); + expect(testStruct.limitedCharacterList).to(equal(testLimitedCharacterList)); + expect(testStruct.autoCompleteList).to(equal(testAutoCompleteList)); + expect(testStruct.maskInputCharacters).to(equal(maskInputCharacters)); + expect(testStruct.customKeys).to(equal(customKeys)); #pragma clang diagnostic push #pragma clang diagnostic ignored "-Wdeprecated-declarations" expect(testStruct.autoCompleteText).to(beNil()); #pragma clang diagnostic pop - expect(testStruct.maskInputCharacters).to(beNil()); - expect(testStruct.customizeKeys).to(beNil()); }); }); }); diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m index a3832fe58..ef4a193ad 100644 --- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m @@ -45,21 +45,28 @@ NSArray<SDLImageType> *imageTypeSupported = @[testImageType]; NSArray<NSString *> *templatesAvailable = @[testTemplateAvailable]; NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities = @[testSoftButtonsCapabilities]; NSArray<SDLMenuLayout> *menuLayoutsAvailable = @[testMenuLayout]; +__block SDLWindowCapability *testStruct = nil; describe(@"getter/setter tests", ^{ + afterEach(^{ + testStruct = nil; + }); + context(@"init and assign", ^{ - SDLWindowCapability *testStruct = [[SDLWindowCapability alloc] init]; - testStruct.windowID = windowID; - testStruct.numCustomPresetsAvailable = numCustomPresetsAvailable; - testStruct.textFields = @[testTextField]; - testStruct.imageFields = @[testImageField]; - testStruct.imageTypeSupported = @[testImageType]; - testStruct.buttonCapabilities = @[testButtonCapabilities]; - testStruct.softButtonCapabilities = @[testSoftButtonsCapabilities]; - testStruct.menuLayoutsAvailable = @[testMenuLayout]; - testStruct.templatesAvailable = @[testTemplateAvailable]; - testStruct.dynamicUpdateCapabilities = testDynamicUpdates; - testStruct.keyboardCapabilities = keyboardCapabilities; + beforeEach(^{ + testStruct = [[SDLWindowCapability alloc] init]; + testStruct.windowID = windowID; + testStruct.numCustomPresetsAvailable = numCustomPresetsAvailable; + testStruct.textFields = @[testTextField]; + testStruct.imageFields = @[testImageField]; + testStruct.imageTypeSupported = @[testImageType]; + testStruct.buttonCapabilities = @[testButtonCapabilities]; + testStruct.softButtonCapabilities = @[testSoftButtonsCapabilities]; + testStruct.menuLayoutsAvailable = @[testMenuLayout]; + testStruct.templatesAvailable = @[testTemplateAvailable]; + testStruct.dynamicUpdateCapabilities = testDynamicUpdates; + testStruct.keyboardCapabilities = keyboardCapabilities; + }); it(@"expect to be set properly", ^{ expect(testStruct.windowID).to(equal(windowID)); @@ -80,7 +87,9 @@ describe(@"getter/setter tests", ^{ }); context(@"initWithWindowID:textFields:imageFields:imageTypeSupported:templatesAvailable:numCustomPresetsAvailable:buttonCapabilities:softButtonCapabilities:menuLayoutsAvailable:dynamicUpdateCapabilities:", ^{ - SDLWindowCapability *testStruct = [[SDLWindowCapability alloc] initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:testDynamicUpdates]; + beforeEach(^{ + testStruct = [[SDLWindowCapability alloc] initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:testDynamicUpdates]; + }); it(@"expect to be set properly", ^{ expect(testStruct.windowID).to(equal(windowID)); @@ -101,7 +110,9 @@ describe(@"getter/setter tests", ^{ }); context(@"initWithWindowID:textFields:imageFields:imageTypeSupported:templatesAvailable:numCustomPresetsAvailable:buttonCapabilities:softButtonCapabilities:menuLayoutsAvailable:dynamicUpdateCapabilities:keyboardCapabilities:", ^{ - SDLWindowCapability *testStruct = [[SDLWindowCapability alloc] initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:testDynamicUpdates keyboardCapabilities:keyboardCapabilities]; + beforeEach(^{ + testStruct = [[SDLWindowCapability alloc] initWithWindowID:windowID textFields:textFields imageFields:imageFields imageTypeSupported:imageTypeSupported templatesAvailable:templatesAvailable numCustomPresetsAvailable:numCustomPresetsAvailable buttonCapabilities:buttonCapabilities softButtonCapabilities:softButtonCapabilities menuLayoutsAvailable:menuLayoutsAvailable dynamicUpdateCapabilities:testDynamicUpdates keyboardCapabilities:keyboardCapabilities]; + }); it(@"expect to be set properly", ^{ expect(testStruct.windowID).to(equal(windowID)); |