summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2017-08-23 14:14:51 -0400
committerJoel Fischer <joeljfischer@gmail.com>2017-08-23 14:14:51 -0400
commit83530664cfaeb63bef03c00ee4972fa9bf44a461 (patch)
tree35fb679e7f716125f8f3a908908cb233bf72baaa
parenta76f3fdcc75a6e04c3978315dd253fc9ad64b274 (diff)
downloadsdl_ios-83530664cfaeb63bef03c00ee4972fa9bf44a461.tar.gz
Fixes #705
* Update haptic data proposal to newest accepted revisions
-rw-r--r--SmartDeviceLink-iOS.podspec7
-rw-r--r--SmartDeviceLink-iOS.xcodeproj/project.pbxproj38
-rw-r--r--SmartDeviceLink.podspec3
-rw-r--r--SmartDeviceLink/SDLHapticRect.h53
-rw-r--r--SmartDeviceLink/SDLHapticRect.m69
-rw-r--r--SmartDeviceLink/SDLNames.h3
-rw-r--r--SmartDeviceLink/SDLRectangle.h70
-rw-r--r--SmartDeviceLink/SDLRectangle.m (renamed from SmartDeviceLink/SDLSpatialStruct.m)39
-rw-r--r--SmartDeviceLink/SDLSendHapticData.h6
-rw-r--r--SmartDeviceLink/SDLSendHapticData.m22
-rw-r--r--SmartDeviceLink/SDLSpatialStruct.h80
-rw-r--r--SmartDeviceLink/SmartDeviceLink.h3
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m30
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m57
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m6
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSpatialStructSpec.m62
16 files changed, 333 insertions, 215 deletions
diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec
index 6ad38382e..1992fb7fc 100644
--- a/SmartDeviceLink-iOS.podspec
+++ b/SmartDeviceLink-iOS.podspec
@@ -178,6 +178,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLImageResolution.h',
'SmartDeviceLink/SDLKeyboardProperties.h',
'SmartDeviceLink/SDLMenuParams.h',
+'SmartDeviceLink/SDLMetadataTags.h',
'SmartDeviceLink/SDLMyKey.h',
'SmartDeviceLink/SDLNavigationCapability.h',
'SmartDeviceLink/SDLOasisAddress.h',
@@ -185,6 +186,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLPermissionItem.h',
'SmartDeviceLink/SDLPhoneCapability.h',
'SmartDeviceLink/SDLPresetBankCapabilities.h',
+'SmartDeviceLink/SDLRectangle.h',
'SmartDeviceLink/SDLScreenParams.h',
'SmartDeviceLink/SDLSingleTireStatus.h',
'SmartDeviceLink/SDLSoftButton.h',
@@ -244,6 +246,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLLockScreenStatus.h',
'SmartDeviceLink/SDLMaintenanceModeStatus.h',
'SmartDeviceLink/SDLMediaClockFormat.h',
+'SmartDeviceLink/SDLMetadataType.h',
'SmartDeviceLink/SDLPRNDL.h',
'SmartDeviceLink/SDLPermissionStatus.h',
'SmartDeviceLink/SDLPowerModeQualificationStatus.h',
@@ -256,7 +259,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLResult.h',
'SmartDeviceLink/SDLSamplingRate.h',
'SmartDeviceLink/SDLSoftButtonType.h',
-'SmartDeviceLink/SDLSpatialStruct',
+'SmartDeviceLink/SDLHapticRect',
'SmartDeviceLink/SDLSpeechCapabilities.h',
'SmartDeviceLink/SDLSystemAction.h',
'SmartDeviceLink/SDLSystemCapabilityType.h',
@@ -298,8 +301,6 @@ s.public_header_files = [
'SmartDeviceLink/SDLRequestHandler.h',
'SmartDeviceLink/SDLRPCNotificationNotification.h',
'SmartDeviceLink/SDLRPCResponseNotification.h',
-'SmartDeviceLink/SDLMetadataTags.h',
-'SmartDeviceLink/SDLMetadataType.h'
]
end
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
index 5d95158cb..bd9fcc3b2 100644
--- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
+++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
@@ -886,6 +886,9 @@
5DA3F3711BC4489A0026F2D0 /* SDLManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA3F36F1BC4489A0026F2D0 /* SDLManager.m */; };
5DA49CE51F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DA49CE31F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h */; };
5DA49CE61F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DA49CE41F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m */; };
+ 5DADA76F1F4DF5180084D17D /* SDLRectangle.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DADA76D1F4DF5180084D17D /* SDLRectangle.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 5DADA7701F4DF5180084D17D /* SDLRectangle.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DADA76E1F4DF5180084D17D /* SDLRectangle.m */; };
+ 5DADA7721F4DFB9B0084D17D /* SDLRectangleSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DADA7711F4DFB9B0084D17D /* SDLRectangleSpec.m */; };
5DAE06731BDEC6C000F9B498 /* SDLFileSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DAE06721BDEC6C000F9B498 /* SDLFileSpec.m */; };
5DAE06751BDEC6D600F9B498 /* SDLArtworkSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DAE06741BDEC6D600F9B498 /* SDLArtworkSpec.m */; };
5DB1BCD31D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DB1BCD01D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m */; };
@@ -937,13 +940,13 @@
5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */; };
5DFFB9151BD7C89700DB3F04 /* SDLConnectionManagerType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */; };
8872772F1F33542000368CCD /* SDLSendHapticDataResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8872772E1F33542000368CCD /* SDLSendHapticDataResponseSpec.m */; };
- 88E0719B1F3221F000C9CB2F /* SDLSpatialStruct.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E071991F3221F000C9CB2F /* SDLSpatialStruct.h */; settings = {ATTRIBUTES = (Public, ); }; };
- 88E0719C1F3221F000C9CB2F /* SDLSpatialStruct.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E0719A1F3221F000C9CB2F /* SDLSpatialStruct.m */; };
+ 88E0719B1F3221F000C9CB2F /* SDLHapticRect.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E071991F3221F000C9CB2F /* SDLHapticRect.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 88E0719C1F3221F000C9CB2F /* SDLHapticRect.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E0719A1F3221F000C9CB2F /* SDLHapticRect.m */; };
88E0719F1F322C3100C9CB2F /* SDLSendHapticData.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E0719D1F322C3100C9CB2F /* SDLSendHapticData.h */; settings = {ATTRIBUTES = (Public, ); }; };
88E071A01F322C3100C9CB2F /* SDLSendHapticData.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E0719E1F322C3100C9CB2F /* SDLSendHapticData.m */; };
88E071A31F32454600C9CB2F /* SDLSendHapticDataResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 88E071A11F32454600C9CB2F /* SDLSendHapticDataResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
88E071A41F32454600C9CB2F /* SDLSendHapticDataResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E071A21F32454600C9CB2F /* SDLSendHapticDataResponse.m */; };
- 88E071A61F327A8B00C9CB2F /* SDLSpatialStructSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E071A51F327A8B00C9CB2F /* SDLSpatialStructSpec.m */; };
+ 88E071A61F327A8B00C9CB2F /* SDLHapticRectSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E071A51F327A8B00C9CB2F /* SDLHapticRectSpec.m */; };
88E071A81F327E3C00C9CB2F /* SDLSendHapticDataSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 88E071A71F327E3C00C9CB2F /* SDLSendHapticDataSpec.m */; };
8B06061F1F30BCED005ADB2F /* SDLMetadataType.h in Headers */ = {isa = PBXBuildFile; fileRef = 8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */; settings = {ATTRIBUTES = (Public, ); }; };
8B0606201F30BCED005ADB2F /* SDLMetadataType.m in Sources */ = {isa = PBXBuildFile; fileRef = 8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */; };
@@ -2006,6 +2009,9 @@
5DA3F36F1BC4489A0026F2D0 /* SDLManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLManager.m; sourceTree = "<group>"; };
5DA49CE31F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLControlFramePayloadRPCStartService.h; sourceTree = "<group>"; };
5DA49CE41F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLControlFramePayloadRPCStartService.m; sourceTree = "<group>"; };
+ 5DADA76D1F4DF5180084D17D /* SDLRectangle.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLRectangle.h; sourceTree = "<group>"; };
+ 5DADA76E1F4DF5180084D17D /* SDLRectangle.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRectangle.m; sourceTree = "<group>"; };
+ 5DADA7711F4DFB9B0084D17D /* SDLRectangleSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRectangleSpec.m; sourceTree = "<group>"; };
5DAE06721BDEC6C000F9B498 /* SDLFileSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLFileSpec.m; path = DevAPISpecs/SDLFileSpec.m; sourceTree = "<group>"; };
5DAE06741BDEC6D600F9B498 /* SDLArtworkSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLArtworkSpec.m; path = DevAPISpecs/SDLArtworkSpec.m; sourceTree = "<group>"; };
5DB1BCD01D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLDeleteFileOperationSpec.m; path = DevAPISpecs/SDLDeleteFileOperationSpec.m; sourceTree = "<group>"; };
@@ -2057,13 +2063,13 @@
5DF2BB9C1B94E38A00CE5994 /* SDLURLSessionSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLURLSessionSpec.m; path = "UtilitiesSpecs/HTTP Connection/SDLURLSessionSpec.m"; sourceTree = "<group>"; };
5DFFB9141BD7C89700DB3F04 /* SDLConnectionManagerType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLConnectionManagerType.h; sourceTree = "<group>"; };
8872772E1F33542000368CCD /* SDLSendHapticDataResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponseSpec.m; sourceTree = "<group>"; };
- 88E071991F3221F000C9CB2F /* SDLSpatialStruct.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSpatialStruct.h; sourceTree = "<group>"; };
- 88E0719A1F3221F000C9CB2F /* SDLSpatialStruct.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSpatialStruct.m; sourceTree = "<group>"; };
+ 88E071991F3221F000C9CB2F /* SDLHapticRect.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLHapticRect.h; sourceTree = "<group>"; };
+ 88E0719A1F3221F000C9CB2F /* SDLHapticRect.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRect.m; sourceTree = "<group>"; };
88E0719D1F322C3100C9CB2F /* SDLSendHapticData.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticData.h; sourceTree = "<group>"; };
88E0719E1F322C3100C9CB2F /* SDLSendHapticData.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticData.m; sourceTree = "<group>"; };
88E071A11F32454600C9CB2F /* SDLSendHapticDataResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSendHapticDataResponse.h; sourceTree = "<group>"; };
88E071A21F32454600C9CB2F /* SDLSendHapticDataResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataResponse.m; sourceTree = "<group>"; };
- 88E071A51F327A8B00C9CB2F /* SDLSpatialStructSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSpatialStructSpec.m; sourceTree = "<group>"; };
+ 88E071A51F327A8B00C9CB2F /* SDLHapticRectSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLHapticRectSpec.m; sourceTree = "<group>"; };
88E071A71F327E3C00C9CB2F /* SDLSendHapticDataSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSendHapticDataSpec.m; sourceTree = "<group>"; };
8B06061D1F30BCED005ADB2F /* SDLMetadataType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMetadataType.h; sourceTree = "<group>"; };
8B06061E1F30BCED005ADB2F /* SDLMetadataType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataType.m; sourceTree = "<group>"; };
@@ -2469,6 +2475,7 @@
162E829A1A9BDE8A00906325 /* SDLECallInfoSpec.m */,
162E829B1A9BDE8A00906325 /* SDLEmergencyEventSpec.m */,
162E829C1A9BDE8A00906325 /* SDLGPSDataSpec.m */,
+ 88E071A51F327A8B00C9CB2F /* SDLHapticRectSpec.m */,
162E829D1A9BDE8A00906325 /* SDLHeadLampStatusSpec.m */,
5DE372A31ACB336600849FAA /* SDLHMICapabilitiesSpec.m */,
162E829E1A9BDE8A00906325 /* SDLHMIPermissionsSpec.m */,
@@ -2478,6 +2485,7 @@
DA9F7EAD1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m */,
DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */,
162E82A21A9BDE8A00906325 /* SDLMenuParamsSpec.m */,
+ 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */,
162E82A31A9BDE8A00906325 /* SDLMyKeySpec.m */,
5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */,
DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */,
@@ -2485,11 +2493,11 @@
162E82A51A9BDE8A00906325 /* SDLPermissionItemSpec.m */,
5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */,
162E82A61A9BDE8A00906325 /* SDLPresetBankCapabilitiesSpec.m */,
+ 5DADA7711F4DFB9B0084D17D /* SDLRectangleSpec.m */,
162E82A71A9BDE8A00906325 /* SDLScreenParamsSpec.m */,
162E82A81A9BDE8A00906325 /* SDLSingleTireStatusSpec.m */,
162E82A91A9BDE8A00906325 /* SDLSoftButtonCapabilitiesSpec.m */,
162E82AA1A9BDE8A00906325 /* SDLSoftButtonSpec.m */,
- 88E071A51F327A8B00C9CB2F /* SDLSpatialStructSpec.m */,
162E82AB1A9BDE8A00906325 /* SDLStartTimeSpec.m */,
162E82AC1A9BDE8A00906325 /* SDLSyncMsgVersionSpec.m */,
5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */,
@@ -2505,7 +2513,6 @@
8BF9DE061F2BAEEE004FFCBB /* SDLVideoStreamingFormatSpec.m */,
8BF9DE081F2BAF0C004FFCBB /* SDLVideoStreamingCapabilitySpec.m */,
162E82B61A9BDE8A00906325 /* SDLVrHelpItemSpec.m */,
- 8B06062B1F310ED2005ADB2F /* SDLMetadataTagsSpec.m */,
);
path = StructSpecs;
sourceTree = "<group>";
@@ -3078,6 +3085,8 @@
5D61FAAE1A84238A00846EE7 /* SDLEmergencyEvent.m */,
5D61FACE1A84238A00846EE7 /* SDLGPSData.h */,
5D61FACF1A84238A00846EE7 /* SDLGPSData.m */,
+ 88E071991F3221F000C9CB2F /* SDLHapticRect.h */,
+ 88E0719A1F3221F000C9CB2F /* SDLHapticRect.m */,
5D61FAD01A84238A00846EE7 /* SDLHeadLampStatus.h */,
5D61FAD11A84238A00846EE7 /* SDLHeadLampStatus.m */,
5DE3729F1ACB2ED300849FAA /* SDLHMICapabilities.h */,
@@ -3114,6 +3123,8 @@
5D00AC7A1F15287E004000D9 /* SDLPhoneCapability.m */,
5D61FB4E1A84238B00846EE7 /* SDLPresetBankCapabilities.h */,
5D61FB4F1A84238B00846EE7 /* SDLPresetBankCapabilities.m */,
+ 5DADA76D1F4DF5180084D17D /* SDLRectangle.h */,
+ 5DADA76E1F4DF5180084D17D /* SDLRectangle.m */,
5D61FB8C1A84238B00846EE7 /* SDLScreenParams.h */,
5D61FB8D1A84238B00846EE7 /* SDLScreenParams.m */,
5D61FBAA1A84238B00846EE7 /* SDLSingleTireStatus.h */,
@@ -3122,8 +3133,6 @@
5D61FBB31A84238B00846EE7 /* SDLSoftButton.m */,
5D61FBB41A84238B00846EE7 /* SDLSoftButtonCapabilities.h */,
5D61FBB51A84238B00846EE7 /* SDLSoftButtonCapabilities.m */,
- 88E071991F3221F000C9CB2F /* SDLSpatialStruct.h */,
- 88E0719A1F3221F000C9CB2F /* SDLSpatialStruct.m */,
5D61FBBE1A84238B00846EE7 /* SDLStartTime.h */,
5D61FBBF1A84238B00846EE7 /* SDLStartTime.m */,
5D61FBC81A84238B00846EE7 /* SDLSyncMsgVersion.h */,
@@ -4286,7 +4295,7 @@
5D61FCC71A84238C00846EE7 /* SDLIAPTransport.h in Headers */,
5D61FC6D1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.h in Headers */,
5D8204221BCEA89A00D0A41B /* SDLFileManager.h in Headers */,
- 88E0719B1F3221F000C9CB2F /* SDLSpatialStruct.h in Headers */,
+ 88E0719B1F3221F000C9CB2F /* SDLHapticRect.h in Headers */,
5D4D67B41D30161600468B4A /* SDLLockScreenManager.h in Headers */,
5D00AC7B1F15287E004000D9 /* SDLPhoneCapability.h in Headers */,
5D61FE111A84238C00846EE7 /* SDLWarningLightStatus.h in Headers */,
@@ -4567,6 +4576,7 @@
DA9F7E831DCC047200ACAE48 /* SDLWaypointType.h in Headers */,
5D61FDF51A84238C00846EE7 /* SDLV1ProtocolHeader.h in Headers */,
DAC572671D10C5640004288B /* CGPoint_Util.h in Headers */,
+ 5DADA76F1F4DF5180084D17D /* SDLRectangle.h in Headers */,
5D61FDF91A84238C00846EE7 /* SDLV2ProtocolHeader.h in Headers */,
5D82041E1BCD8E6100D0A41B /* SDLConfiguration.h in Headers */,
5D61FD4A1A84238C00846EE7 /* SDLProtocolMessageAssembler.h in Headers */,
@@ -4798,7 +4808,7 @@
5D61FD531A84238C00846EE7 /* SDLProxyFactory.m in Sources */,
5D61FDCA1A84238C00846EE7 /* SDLTextField.m in Sources */,
5D61FC9D1A84238C00846EE7 /* SDLEmergencyEventType.m in Sources */,
- 88E0719C1F3221F000C9CB2F /* SDLSpatialStruct.m in Sources */,
+ 88E0719C1F3221F000C9CB2F /* SDLHapticRect.m in Sources */,
5D61FCAC1A84238C00846EE7 /* SDLFuelCutoffStatus.m in Sources */,
5D61FC871A84238C00846EE7 /* SDLDeviceStatus.m in Sources */,
5D61FD561A84238C00846EE7 /* SDLPutFile.m in Sources */,
@@ -4951,6 +4961,7 @@
5D61FDBC1A84238C00846EE7 /* SDLSystemAction.m in Sources */,
5D61FC381A84238C00846EE7 /* SDLAlert.m in Sources */,
5D61FD2C1A84238C00846EE7 /* SDLPerformInteractionResponse.m in Sources */,
+ 5DADA7701F4DF5180084D17D /* SDLRectangle.m in Sources */,
5D00AC7C1F15287E004000D9 /* SDLPhoneCapability.m in Sources */,
5D61FDF21A84238C00846EE7 /* SDLUpdateTurnList.m in Sources */,
5D61FD101A84238C00846EE7 /* SDLOnHMIStatus.m in Sources */,
@@ -5291,7 +5302,7 @@
DA9F7EA41DCC05EE00ACAE48 /* SDLSubscribeWaypointsSpec.m in Sources */,
DA4353EB1D2721680099B8C4 /* SDLTouchSpec.m in Sources */,
5DB1BCE71D245647002FFC37 /* TestStateMachineTarget.m in Sources */,
- 88E071A61F327A8B00C9CB2F /* SDLSpatialStructSpec.m in Sources */,
+ 88E071A61F327A8B00C9CB2F /* SDLHapticRectSpec.m in Sources */,
162E83541A9BDE8B00906325 /* SDLEncodedSyncPDataResponseSpec.m in Sources */,
162E83161A9BDE8B00906325 /* SDLOnHashChangeSpec.m in Sources */,
162E82FE1A9BDE8B00906325 /* SDLTBTStateSpec.m in Sources */,
@@ -5314,6 +5325,7 @@
5DB1BCDA1D243D85002FFC37 /* SDLStateMachineSpec.m in Sources */,
162E83131A9BDE8B00906325 /* SDLOnCommandSpec.m in Sources */,
162E833A1A9BDE8B00906325 /* SDLSetDisplayLayoutSpec.m in Sources */,
+ 5DADA7721F4DFB9B0084D17D /* SDLRectangleSpec.m in Sources */,
162E838F1A9BDE8B00906325 /* SDLTextFieldSpec.m in Sources */,
162E82CA1A9BDE8A00906325 /* SDLAmbientLightStatusSpec.m in Sources */,
162E83091A9BDE8B00906325 /* SDLVehicleDataStatusSpec.m in Sources */,
diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec
index 5241241c8..e53c44ca6 100644
--- a/SmartDeviceLink.podspec
+++ b/SmartDeviceLink.podspec
@@ -186,6 +186,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLPermissionItem.h',
'SmartDeviceLink/SDLPhoneCapability.h',
'SmartDeviceLink/SDLPresetBankCapabilities.h',
+'SmartDeviceLink/SDLRectangle.h',
'SmartDeviceLink/SDLScreenParams.h',
'SmartDeviceLink/SDLSingleTireStatus.h',
'SmartDeviceLink/SDLSoftButton.h',
@@ -258,7 +259,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLResult.h',
'SmartDeviceLink/SDLSamplingRate.h',
'SmartDeviceLink/SDLSoftButtonType.h',
-'SmartDeviceLink/SDLSpatialStruct',
+'SmartDeviceLink/SDLHapticRect',
'SmartDeviceLink/SDLSpeechCapabilities.h',
'SmartDeviceLink/SDLSystemAction.h',
'SmartDeviceLink/SDLSystemCapabilityType.h',
diff --git a/SmartDeviceLink/SDLHapticRect.h b/SmartDeviceLink/SDLHapticRect.h
new file mode 100644
index 000000000..22b1b06fc
--- /dev/null
+++ b/SmartDeviceLink/SDLHapticRect.h
@@ -0,0 +1,53 @@
+//
+// SDLHapticRect.h
+// SmartDeviceLink-iOS
+//
+// Created by Nicole on 8/2/17.
+// Copyright © 2017 smartdevicelink. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "SDLRPCStruct.h"
+
+@class SDLRectangle;
+
+/**
+ * Defines spatial for each user control object for video streaming application
+ */
+@interface SDLHapticRect : SDLRPCStruct
+
+/**
+ * @abstract Constructs a newly allocated SDLHapticRect object
+ */
+- (instancetype)init;
+
+/**
+ * @abstract Constructs a newly allocated SDLHapticRect object indicated by the dictionary parameter
+ * @param dict The dictionary to use
+ */
+- (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
+
+/**
+ Create a SpatialStruct
+
+ @param id The id of the rectangle
+ @param rect The SDLRectangle to use as the bounding rectangle
+ @return An new SDLHapticRect object
+ */
+- (instancetype)initWithId:(NSNumber *)id rect:(SDLRectangle *)rect;
+
+/**
+ * A user control spatial identifier
+ * Required, Integer, 0 - 2,000,000,000
+ */
+@property (strong, nonatomic) NSNumber *id;
+
+/**
+ The position of the haptic rectangle to be highlighted. The center of this rectangle will be "touched" when a press occurs.
+
+ Required
+ */
+@property (strong, nonatomic) SDLRectangle *rect;
+
+@end
diff --git a/SmartDeviceLink/SDLHapticRect.m b/SmartDeviceLink/SDLHapticRect.m
new file mode 100644
index 000000000..00acb2d18
--- /dev/null
+++ b/SmartDeviceLink/SDLHapticRect.m
@@ -0,0 +1,69 @@
+//
+// SDLHapticRect.m
+// SmartDeviceLink-iOS
+//
+// Created by Nicole on 8/2/17.
+// Copyright © 2017 smartdevicelink. All rights reserved.
+//
+
+#import "SDLHapticRect.h"
+
+#import "SDLNames.h"
+#import "SDLRectangle.h"
+
+@implementation SDLHapticRect
+
+- (instancetype)init {
+ if (self = [super init]) {
+ }
+ return self;
+}
+
+- (instancetype)initWithDictionary:(NSMutableDictionary *)dict {
+ if (self = [super initWithDictionary:dict]) {
+ }
+ return self;
+}
+
+- (instancetype)initWithId:(NSNumber *)id rect:(SDLRectangle *)rect {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.id = id;
+ self.rect = rect;
+
+ return self;
+}
+
+- (void)setId:(NSNumber *)id {
+ if (id != nil) {
+ [store setObject:id forKey:NAMES_id];
+ } else {
+ [store removeObjectForKey:NAMES_id];
+ }
+}
+
+- (NSNumber *)id {
+ return [store objectForKey:NAMES_id];
+}
+
+- (void)setRect:(SDLRectangle *)rect {
+ if (rect != nil) {
+ [store setObject:rect forKey:NAMES_rect];
+ } else {
+ [store removeObjectForKey:NAMES_rect];
+ }
+}
+
+- (SDLRectangle *)rect {
+ NSObject *obj = store[NAMES_rect];
+ if (obj == nil || [obj isKindOfClass:SDLRectangle.class]) {
+ return (SDLRectangle *)obj;
+ } else {
+ return [[SDLRectangle alloc] initWithDictionary:(NSMutableDictionary *)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h
index 195479aca..de7884ce6 100644
--- a/SmartDeviceLink/SDLNames.h
+++ b/SmartDeviceLink/SDLNames.h
@@ -130,7 +130,7 @@
#define NAMES_gps @"gps"
#define NAMES_graphic @"graphic"
#define NAMES_graphicSupported @"graphicSupported"
-#define NAMES_hapticSpatialData @"hapticSpatialData"
+#define NAMES_hapticRectData @"hapticRectData"
#define NAMES_hapticSpatialDataSupported @"hapticSpatialDataSupported"
#define NAMES_hardware @"hardware"
#define NAMES_hashID @"hashID"
@@ -311,6 +311,7 @@
#define NAMES_rearLeftDoorAjar @"rearLeftDoorAjar"
#define NAMES_rearRightDoorAjar @"rearRightDoorAjar"
#define NAMES_reason @"reason"
+#define NAMES_rect @"rect"
#define NAMES_RegisterAppInterface @"RegisterAppInterface"
#define NAMES_request @"request"
#define NAMES_requestType @"requestType"
diff --git a/SmartDeviceLink/SDLRectangle.h b/SmartDeviceLink/SDLRectangle.h
new file mode 100644
index 000000000..8d0fd44ad
--- /dev/null
+++ b/SmartDeviceLink/SDLRectangle.h
@@ -0,0 +1,70 @@
+//
+// SDLRectangle.h
+// SmartDeviceLink-iOS
+//
+// Created by Joel Fischer on 8/23/17.
+// Copyright © 2017 smartdevicelink. All rights reserved.
+//
+
+#import <UIKit/UIKit.h>
+
+#import "SDLRPCStruct.h"
+
+@interface SDLRectangle : SDLRPCStruct
+
+/**
+ * @abstract Constructs a newly allocated SDLRectangle object
+ */
+- (instancetype)init;
+
+/**
+ * @abstract Constructs a newly allocated SDLRectangle object indicated by the dictionary parameter
+ * @param dict The dictionary to use
+ */
+- (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
+
+/**
+ Create a Rectangle
+
+ @param x The top-left x value
+ @param y The top-left y value
+ @param width The width
+ @param height The height
+ @return An new SDLRectangle object
+ */
+- (instancetype)initWithX:(NSNumber *)x y:(NSNumber *)y width:(NSNumber *)width height:(NSNumber *)height;
+
+/**
+ Create a Rectangle from a CGRect
+
+ @param rect The rectangle to use
+ @return An new SDLRectangle object
+ */
+- (instancetype)initWithCGRect:(CGRect)rect;
+
+/**
+ * The upper left X-coordinate of the rectangle
+ * Required, Float
+ */
+@property (strong, nonatomic) NSNumber *x;
+
+/**
+ * The upper left Y-coordinate of the rectangle
+ * Required, Float
+ */
+@property (strong, nonatomic) NSNumber *y;
+
+/**
+ * The width of the rectangle
+ * Required, Float
+ */
+@property (strong, nonatomic) NSNumber *width;
+
+/**
+ * The height of the rectangle
+ * Required, Float
+ */
+@property (strong, nonatomic) NSNumber *height;
+
+
+@end
diff --git a/SmartDeviceLink/SDLSpatialStruct.m b/SmartDeviceLink/SDLRectangle.m
index 0421449f4..ce877c385 100644
--- a/SmartDeviceLink/SDLSpatialStruct.m
+++ b/SmartDeviceLink/SDLRectangle.m
@@ -1,15 +1,16 @@
//
-// SDLSpatialStruct.m
+// SDLRectangle.m
// SmartDeviceLink-iOS
//
-// Created by Nicole on 8/2/17.
+// Created by Joel Fischer on 8/23/17.
// Copyright © 2017 smartdevicelink. All rights reserved.
//
-#import "SDLSpatialStruct.h"
+#import "SDLRectangle.h"
+
#import "SDLNames.h"
-@implementation SDLSpatialStruct
+@implementation SDLRectangle
- (instancetype)init {
if (self = [super init]) {
@@ -17,13 +18,18 @@
return self;
}
-- (instancetype)initWithId:(NSNumber *)id xCoord:(NSNumber *)x yCoord:(NSNumber *)y width:(NSNumber *)width height:(NSNumber *)height {
+- (instancetype)initWithDictionary:(NSMutableDictionary *)dict {
+ if (self = [super initWithDictionary:dict]) {
+ }
+ return self;
+}
+
+- (instancetype)initWithX:(NSNumber *)x y:(NSNumber *)y width:(NSNumber *)width height:(NSNumber *)height {
self = [self init];
if (!self) {
return nil;
}
- self.id = id;
self.x = x;
self.y = y;
self.width = width;
@@ -32,13 +38,12 @@
return self;
}
-- (instancetype)initWithId:(NSNumber *)id CGRect:(CGRect)rect {
+- (instancetype)initWithCGRect:(CGRect)rect {
self = [self init];
if (!self) {
return nil;
}
- self.id = id;
self.x = @((float)rect.origin.x);
self.y = @((float)rect.origin.y);
self.width = @((float)rect.size.width);
@@ -47,24 +52,6 @@
return self;
}
-- (instancetype)initWithDictionary:(NSMutableDictionary *)dict {
- if (self = [super initWithDictionary:dict]) {
- }
- return self;
-}
-
-- (void)setId:(NSNumber *)id {
- if (id != nil) {
- [store setObject:id forKey:NAMES_id];
- } else {
- [store removeObjectForKey:NAMES_id];
- }
-}
-
-- (NSNumber *)id {
- return [store objectForKey:NAMES_id];
-}
-
- (void)setX:(NSNumber *)x {
if (x != nil) {
[store setObject:x forKey:NAMES_x];
diff --git a/SmartDeviceLink/SDLSendHapticData.h b/SmartDeviceLink/SDLSendHapticData.h
index 6c3117ff0..47536e3e2 100644
--- a/SmartDeviceLink/SDLSendHapticData.h
+++ b/SmartDeviceLink/SDLSendHapticData.h
@@ -32,13 +32,13 @@
*
* @param hapticSpatialData Array of spatial data structures
*/
-- (instancetype)initWithHapticSpatialData:(NSMutableArray *)hapticSpatialData;
+- (instancetype)initWithHapticRectData:(NSMutableArray *)hapticSpatialData;
/**
* Array of spatial data structures that represent the locations of all user controls present on the HMI. This data should be updated if/when the application presents a new screen. When a request is sent, if successful, it will replace all spatial data previously sent through RPC. If an empty array is sent, the existing spatial data will be cleared
*
- * Optional, Array of SDLSpatialStruct, Array size 0 - 1,000
+ * Optional, Array of SDLHapticRect, Array size 0 - 1,000
*/
-@property (strong) NSMutableArray *hapticSpatialData;
+@property (strong) NSMutableArray *hapticRectData;
@end
diff --git a/SmartDeviceLink/SDLSendHapticData.m b/SmartDeviceLink/SDLSendHapticData.m
index 44e2f4cdb..a486eac84 100644
--- a/SmartDeviceLink/SDLSendHapticData.m
+++ b/SmartDeviceLink/SDLSendHapticData.m
@@ -8,7 +8,7 @@
#import "SDLNames.h"
#import "SDLSendHapticData.h"
-#import "SDLSpatialStruct.h"
+#import "SDLHapticRect.h"
@implementation SDLSendHapticData
@@ -24,35 +24,35 @@
return self;
}
-- (instancetype)initWithHapticSpatialData:(NSMutableArray *)hapticSpatialData {
+- (instancetype)initWithHapticRectData:(NSMutableArray *)hapticRectData {
self = [self init];
if (!self) {
return nil;
}
- self.hapticSpatialData = [hapticSpatialData mutableCopy];
+ self.hapticRectData = [hapticRectData mutableCopy];
return self;
}
-- (void)setHapticSpatialData:(NSMutableArray *)hapticSpatialData {
- if (hapticSpatialData != nil) {
- [parameters setObject:hapticSpatialData forKey:NAMES_hapticSpatialData];
+- (void)setHapticRectData:(NSMutableArray *)hapticRectData {
+ if (hapticRectData != nil) {
+ [parameters setObject:hapticRectData forKey:NAMES_hapticRectData];
} else {
- [parameters removeObjectForKey:NAMES_hapticSpatialData];
+ [parameters removeObjectForKey:NAMES_hapticRectData];
}
}
-- (NSMutableArray *)hapticSpatialData {
- NSMutableArray *array = [parameters objectForKey:NAMES_hapticSpatialData];
+- (NSMutableArray *)hapticRectData {
+ NSMutableArray *array = [parameters objectForKey:NAMES_hapticRectData];
if ([array isEqual:[NSNull null]]) {
return [NSMutableArray array];
- } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLSpatialStruct.class]) {
+ } else if (array.count < 1 || [array.firstObject isKindOfClass:SDLHapticRect.class]) {
return array;
} else {
NSMutableArray *newList = [NSMutableArray arrayWithCapacity:[array count]];
for (NSDictionary *dict in array) {
- [newList addObject:[[SDLSpatialStruct alloc] initWithDictionary:(NSMutableDictionary *) dict]];
+ [newList addObject:[[SDLHapticRect alloc] initWithDictionary:(NSMutableDictionary *) dict]];
}
return newList;
}
diff --git a/SmartDeviceLink/SDLSpatialStruct.h b/SmartDeviceLink/SDLSpatialStruct.h
deleted file mode 100644
index 17d17c342..000000000
--- a/SmartDeviceLink/SDLSpatialStruct.h
+++ /dev/null
@@ -1,80 +0,0 @@
-//
-// SDLSpatialStruct.h
-// SmartDeviceLink-iOS
-//
-// Created by Nicole on 8/2/17.
-// Copyright © 2017 smartdevicelink. All rights reserved.
-//
-
-#import <UIKit/UIKit.h>
-
-#import "SDLRPCStruct.h"
-
-/**
- * Defines spatial for each user control object for video streaming application
- */
-@interface SDLSpatialStruct : SDLRPCStruct
-
-/**
- * @abstract Constructs a newly allocated SDLSpatialStruct object
- */
-- (instancetype)init;
-
-/**
- * @abstract Constructs a newly allocated SDLSpatialStruct object indicated by the dictionary parameter
- * @param dict The dictionary to use
- */
-- (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
-
-/**
- Create a SpatialStruct
-
- @param id The id of the rectangle
- @param x The top-left x value
- @param y The top-left y value
- @param width The width
- @param height The height
- @return An new SDLSpatialStruct object
- */
-- (instancetype)initWithId:(NSNumber *)id xCoord:(NSNumber *)x yCoord:(NSNumber *)y width:(NSNumber *)width height:(NSNumber *)height;
-
-/**
- Create a SpatialStruct from a CGRect
-
- @param id The id of the rectangle
- @param rect The rectangle to use
- @return An new SDLSpatialStruct object
- */
-- (instancetype)initWithId:(NSNumber *)id CGRect:(CGRect)rect;
-
-/**
- * A user control spatial identifier
- * Required, Integer, 0 - 2,000,000,000
- */
-@property (strong, nonatomic) NSNumber *id;
-
-/**
- * The X-coordinate of the top-left corner of the user control
- * Required, Float
- */
-@property (strong, nonatomic) NSNumber *x;
-
-/**
- * The Y-coordinate of the top-left corner of the user control
- * Required, Float
- */
-@property (strong, nonatomic) NSNumber *y;
-
-/**
- * The width of the user control's bounding rectangle
- * Required, Float
- */
-@property (strong, nonatomic) NSNumber *width;
-
-/**
- * The height of the user control's bounding rectangle
- * Required, Float
- */
-@property (strong, nonatomic) NSNumber *height;
-
-@end
diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h
index 1505678f6..13fc4f675 100644
--- a/SmartDeviceLink/SmartDeviceLink.h
+++ b/SmartDeviceLink/SmartDeviceLink.h
@@ -191,6 +191,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLECallInfo.h"
#import "SDLEmergencyEvent.h"
#import "SDLGPSData.h"
+#import "SDLHapticRect.h"
#import "SDLHMICapabilities.h"
#import "SDLHMIPermissions.h"
#import "SDLHeadLampStatus.h"
@@ -208,11 +209,11 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLPermissionItem.h"
#import "SDLPhoneCapability.h"
#import "SDLPresetBankCapabilities.h"
+#import "SDLRectangle.h"
#import "SDLScreenParams.h"
#import "SDLSingleTireStatus.h"
#import "SDLSoftButton.h"
#import "SDLSoftButtonCapabilities.h"
-#import "SDLSpatialStruct.h"
#import "SDLStartTime.h"
#import "SDLSyncMsgVersion.h"
#import "SDLSystemCapability.h"
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m
index 549c1c39b..7919e578a 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendHapticDataSpec.m
@@ -13,28 +13,30 @@
#import "SDLNames.h"
#import "SDLSendHapticData.h"
-#import "SDLSpatialStruct.h"
+#import "SDLHapticRect.h"
QuickSpecBegin(SDLSendHapticDataSpec)
describe(@"Initialization Tests", ^ {
- __block SDLSpatialStruct *testStruct = nil;
+ __block SDLHapticRect *testStruct = nil;
beforeEach(^{
NSMutableDictionary *dict = [@{NAMES_id:@2,
- NAMES_x:@20,
- NAMES_y:@200,
- NAMES_width:@2000,
- NAMES_height:@3000} mutableCopy];
- testStruct = [[SDLSpatialStruct alloc] initWithDictionary:dict];
+ NAMES_hapticRectData: @{
+ NAMES_x:@20,
+ NAMES_y:@200,
+ NAMES_width:@2000,
+ NAMES_height:@3000
+ }} mutableCopy];
+ testStruct = [[SDLHapticRect alloc] initWithDictionary:dict];
});
context(@"Getter/Setter Tests", ^ {
it(@"Should set and get correctly", ^ {
SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] init];
- testRequest.hapticSpatialData = [@[testStruct] mutableCopy];
+ testRequest.hapticRectData = [@[testStruct] mutableCopy];
- expect(testRequest.hapticSpatialData).to(equal(@[testStruct]));
+ expect(testRequest.hapticRectData).to(equal(@[testStruct]));
});
});
@@ -42,23 +44,23 @@ describe(@"Initialization Tests", ^ {
it(@"Should get correctly when initialized with a dictionary", ^ {
NSMutableDictionary* dict = [@{NAMES_request:
@{NAMES_parameters:
- @{NAMES_hapticSpatialData:@[testStruct]},
+ @{NAMES_hapticRectData:@[testStruct]},
NAMES_operation_name:NAMES_SendHapticData}} mutableCopy];
SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] initWithDictionary:dict];
- expect(testRequest.hapticSpatialData).to(equal(@[testStruct]));
+ expect(testRequest.hapticRectData).to(equal(@[testStruct]));
});
it(@"Should initialize correctly with initWithType:", ^{
- SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] initWithHapticSpatialData:[NSMutableArray arrayWithArray:@[testStruct]]];
+ SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] initWithHapticRectData:[NSMutableArray arrayWithArray:@[testStruct]]];
- expect(testRequest.hapticSpatialData).to(equal(@[testStruct]));
+ expect(testRequest.hapticRectData).to(equal(@[testStruct]));
});
it(@"Should return nil if not set", ^ {
SDLSendHapticData *testRequest = [[SDLSendHapticData alloc] init];
- expect(testRequest.hapticSpatialData).to(beNil());
+ expect(testRequest.hapticRectData).to(beNil());
});
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m
new file mode 100644
index 000000000..5f0d6f11d
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHapticRectSpec.m
@@ -0,0 +1,57 @@
+//
+// SDLHapticRectSpec.m
+// SmartDeviceLink-iOS
+//
+// Created by Nicole on 8/2/17.
+// Copyright © 2017 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLNames.h"
+#import "SDLHapticRect.h"
+#import "SDLRectangle.h"
+
+QuickSpecBegin(SDLHapticRectSpec)
+
+describe(@"Getter/Setter Tests", ^{
+ it(@"Should set and get correctly", ^{
+ SDLRectangle *testRect = [[SDLRectangle alloc] initWithX:@1 y:@2 width:@3 height:@4];
+ SDLHapticRect *testStruct = [[SDLHapticRect alloc] init];
+
+ testStruct.id = @1;
+ testStruct.rect = testRect;
+
+ expect(testStruct.id).to(equal(@1));
+ expect(testStruct.rect).to(equal(testRect));
+ });
+
+ it(@"Should get correctly when initialized", ^{
+ NSMutableDictionary *dict = [@{NAMES_id:@2,
+ NAMES_rect: @{
+ NAMES_x:@20,
+ NAMES_y:@200,
+ NAMES_width:@2000,
+ NAMES_height:@3000
+ }} mutableCopy];
+ SDLHapticRect * testStruct = [[SDLHapticRect alloc] initWithDictionary:dict];
+
+ expect(testStruct.id).to(equal(@2));
+ expect(testStruct.rect.x).to(equal(@20));
+ expect(testStruct.rect.y).to(equal(@200));
+ expect(testStruct.rect.width).to(equal(@2000));
+ expect(testStruct.rect.height).to(equal(@3000));
+ });
+
+ it(@"Should return nil if not set", ^{
+ SDLHapticRect *testStruct = [[SDLHapticRect alloc] init];
+
+ expect(testStruct.id).to(beNil());
+ expect(testStruct.rect).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m
new file mode 100644
index 000000000..86b5af722
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRectangleSpec.m
@@ -0,0 +1,6 @@
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+QuickSpecBegin(SDLRectangleSpec)
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSpatialStructSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSpatialStructSpec.m
deleted file mode 100644
index 29b3d97b5..000000000
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSpatialStructSpec.m
+++ /dev/null
@@ -1,62 +0,0 @@
-//
-// SDLSpatialStructSpec.m
-// SmartDeviceLink-iOS
-//
-// Created by Nicole on 8/2/17.
-// Copyright © 2017 smartdevicelink. All rights reserved.
-//
-
-#import <Foundation/Foundation.h>
-
-#import <Quick/Quick.h>
-#import <Nimble/Nimble.h>
-
-#import "SDLNames.h"
-#import "SDLSpatialStruct.h"
-
-QuickSpecBegin(SDLSpatialStructSpec)
-
-describe(@"Getter/Setter Tests", ^{
- it(@"Should set and get correctly", ^{
- SDLSpatialStruct *testStruct = [[SDLSpatialStruct alloc] init];
-
- testStruct.id = @1;
- testStruct.x = @10;
- testStruct.y = @100;
- testStruct.width = @1000;
- testStruct.height = @2000;
-
- expect(testStruct.id).to(equal(@1));
- expect(testStruct.x).to(equal(@10));
- expect(testStruct.y).to(equal(@100));
- expect(testStruct.width).to(equal(@1000));
- expect(testStruct.height).to(equal(@2000));
- });
-
- it(@"Should get correctly when initialized", ^{
- NSMutableDictionary *dict = [@{NAMES_id:@2,
- NAMES_x:@20,
- NAMES_y:@200,
- NAMES_width:@2000,
- NAMES_height:@3000} mutableCopy];
- SDLSpatialStruct * testStruct = [[SDLSpatialStruct alloc] initWithDictionary:dict];
-
- expect(testStruct.id).to(equal(@2));
- expect(testStruct.x).to(equal(@20));
- expect(testStruct.y).to(equal(@200));
- expect(testStruct.width).to(equal(@2000));
- expect(testStruct.height).to(equal(@3000));
- });
-
- it(@"Should return nil if not set", ^{
- SDLSpatialStruct *testStruct = [[SDLSpatialStruct alloc] init];
-
- expect(testStruct.id).to(beNil());
- expect(testStruct.x).to(beNil());
- expect(testStruct.y).to(beNil());
- expect(testStruct.width).to(beNil());
- expect(testStruct.height).to(beNil());
- });
-});
-
-QuickSpecEnd