summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2016-11-04 16:05:44 -0400
committerJoel Fischer <joeljfischer@gmail.com>2016-11-04 16:05:44 -0400
commitcf2b4a7fc59e8a87f92c7a602b1e7f13af9714c1 (patch)
treea0ba3f429ea88be27d44784c3be1a8b20b7f3ef3
parent5cbc40741d865b61ff725c5fc3370537b25d93b3 (diff)
parentcf23ca7519dd3fa0fe8533a02829b9edd6c8b220 (diff)
downloadsdl_ios-cf2b4a7fc59e8a87f92c7a602b1e7f13af9714c1.tar.gz
Merge branch 'release/4.4.0'
-rw-r--r--SmartDeviceLink-iOS.podspec15
-rw-r--r--SmartDeviceLink-iOS.xcodeproj/project.pbxproj156
-rw-r--r--SmartDeviceLink/SDLDateTime.h79
-rw-r--r--SmartDeviceLink/SDLDateTime.m168
-rw-r--r--SmartDeviceLink/SDLDeliveryMode.h48
-rw-r--r--SmartDeviceLink/SDLDeliveryMode.m55
-rw-r--r--SmartDeviceLink/SDLDisplayType.h2
-rw-r--r--SmartDeviceLink/SDLDisplayType.m9
-rw-r--r--SmartDeviceLink/SDLFunctionID.m2
-rw-r--r--SmartDeviceLink/SDLGetWaypoints.h20
-rw-r--r--SmartDeviceLink/SDLGetWaypoints.m46
-rw-r--r--SmartDeviceLink/SDLGetWaypointsResponse.h19
-rw-r--r--SmartDeviceLink/SDLGetWaypointsResponse.m27
-rw-r--r--SmartDeviceLink/SDLLocationCoordinate.h22
-rw-r--r--SmartDeviceLink/SDLLocationCoordinate.m33
-rw-r--r--SmartDeviceLink/SDLLocationDetails.h68
-rw-r--r--SmartDeviceLink/SDLLocationDetails.m97
-rw-r--r--SmartDeviceLink/SDLNames.h28
-rw-r--r--SmartDeviceLink/SDLOasisAddress.h75
-rw-r--r--SmartDeviceLink/SDLOasisAddress.m141
-rw-r--r--SmartDeviceLink/SDLOnWaypointChange.h17
-rw-r--r--SmartDeviceLink/SDLOnWaypointChange.m28
-rw-r--r--SmartDeviceLink/SDLProtocolHeader.m2
-rw-r--r--SmartDeviceLink/SDLSendLocation.h42
-rw-r--r--SmartDeviceLink/SDLSendLocation.m79
-rw-r--r--SmartDeviceLink/SDLSubscribeWaypoints.h16
-rw-r--r--SmartDeviceLink/SDLSubscribeWaypoints.m15
-rw-r--r--SmartDeviceLink/SDLSubscribeWaypointsResponse.h8
-rw-r--r--SmartDeviceLink/SDLSubscribeWaypointsResponse.m15
-rw-r--r--SmartDeviceLink/SDLUnsubscribeWaypoints.h8
-rw-r--r--SmartDeviceLink/SDLUnsubscribeWaypoints.m8
-rw-r--r--SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h8
-rw-r--r--SmartDeviceLink/SDLUnsubscribeWaypointsResponse.m8
-rw-r--r--SmartDeviceLink/SDLUploadFileOperation.m4
-rw-r--r--SmartDeviceLink/SDLWaypointType.h36
-rw-r--r--SmartDeviceLink/SDLWaypointType.m46
-rw-r--r--SmartDeviceLink/SmartDeviceLink.h12
-rw-r--r--SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m9
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m2
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m55
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m10
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m51
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m102
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m42
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m71
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeWaypointsSpec.m13
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeWaypointsSpec.m13
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m101
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeWaypointsResponseSpec.m13
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeWaypointsResponseSpec.m13
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m82
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m95
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m192
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m78
54 files changed, 2365 insertions, 39 deletions
diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec
index 0377d62cc..ed0b7766c 100644
--- a/SmartDeviceLink-iOS.podspec
+++ b/SmartDeviceLink-iOS.podspec
@@ -1,7 +1,7 @@
Pod::Spec.new do |s|
s.name = "SmartDeviceLink-iOS"
-s.version = "4.3.0"
+s.version = "4.4.0"
s.summary = "Connect your app with cars!"
s.homepage = "https://github.com/smartdevicelink/SmartDeviceLink-iOS"
s.license = { :type => "New BSD", :file => "LICENSE" }
@@ -59,6 +59,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLEndAudioPassThru.h',
'SmartDeviceLink/SDLGetDTCs.h',
'SmartDeviceLink/SDLGetVehicleData.h',
+'SmartDeviceLink/SDLGetWaypoints.h',
'SmartDeviceLink/SDLListFiles.h',
'SmartDeviceLink/SDLPerformAudioPassThru.h',
'SmartDeviceLink/SDLPerformInteraction.h',
@@ -78,10 +79,12 @@ s.public_header_files = [
'SmartDeviceLink/SDLSpeak.h',
'SmartDeviceLink/SDLSubscribeButton.h',
'SmartDeviceLink/SDLSubscribeVehicleData.h',
+'SmartDeviceLink/SDLSubscribeWaypoints.h',
'SmartDeviceLink/SDLSyncPData.h',
'SmartDeviceLink/SDLUnregisterAppInterface.h',
'SmartDeviceLink/SDLUnsubscribeButton.h',
'SmartDeviceLink/SDLUnsubscribeVehicleData.h',
+'SmartDeviceLink/SDLUnsubscribeWaypoints.h',
'SmartDeviceLink/SDLUpdateTurnList.h',
'SmartDeviceLink/SDLAddCommandResponse.h',
'SmartDeviceLink/SDLAddSubMenuResponse.h',
@@ -100,6 +103,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLGenericResponse.h',
'SmartDeviceLink/SDLGetDTCsResponse.h',
'SmartDeviceLink/SDLGetVehicleDataResponse.h',
+'SmartDeviceLink/SDLGetWaypointsResponse.h',
'SmartDeviceLink/SDLListFilesResponse.h',
'SmartDeviceLink/SDLPerformAudioPassThruResponse.h',
'SmartDeviceLink/SDLPerformInteractionResponse.h',
@@ -119,10 +123,12 @@ s.public_header_files = [
'SmartDeviceLink/SDLSpeakResponse.h',
'SmartDeviceLink/SDLSubscribeButtonResponse.h',
'SmartDeviceLink/SDLSubscribeVehicleDataResponse.h',
+'SmartDeviceLink/SDLSubscribeWaypointsResponse.h',
'SmartDeviceLink/SDLSyncPDataResponse.h',
'SmartDeviceLink/SDLUnregisterAppInterfaceResponse.h',
'SmartDeviceLink/SDLUnsubscribeButtonResponse.h',
'SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h',
+'SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h',
'SmartDeviceLink/SDLUpdateTurnListResponse.h',
'SmartDeviceLink/SDLOnAppInterfaceUnregistered.h',
'SmartDeviceLink/SDLOnAudioPassThru.h',
@@ -142,6 +148,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLOnTBTClientState.h',
'SmartDeviceLink/SDLOnTouchEvent.h',
'SmartDeviceLink/SDLOnVehicleData.h',
+'SmartDeviceLink/SDLOnWaypointChange.h',
'SmartDeviceLink/SDLAirbagStatus.h',
'SmartDeviceLink/SDLAppInfo.h',
'SmartDeviceLink/SDLAudioPassThruCapabilities.h',
@@ -151,6 +158,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLChoice.h',
'SmartDeviceLink/SDLClusterModeStatus.h',
'SmartDeviceLink/SDLDIDResult.h',
+'SmartDeviceLink/SDLDateTime.h',
'SmartDeviceLink/SDLDeviceInfo.h',
'SmartDeviceLink/SDLDeviceStatus.h',
'SmartDeviceLink/SDLDisplayCapabilities.h',
@@ -166,6 +174,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLKeyboardProperties.h',
'SmartDeviceLink/SDLMenuParams.h',
'SmartDeviceLink/SDLMyKey.h',
+'SmartDeviceLink/SDLOasisAddress.h',
'SmartDeviceLink/SDLParameterPermissions.h',
'SmartDeviceLink/SDLPermissionItem.h',
'SmartDeviceLink/SDLPresetBankCapabilities.h',
@@ -198,6 +207,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLCharacterSet.h',
'SmartDeviceLink/SDLCompassDirection.h',
'SmartDeviceLink/SDLComponentVolumeStatus.h',
+'SmartDeviceLink/SDLDeliveryMode.h',
'SmartDeviceLink/SDLDeviceLevelStatus.h',
'SmartDeviceLink/SDLDimension.h',
'SmartDeviceLink/SDLDisplayType.h',
@@ -219,6 +229,8 @@ s.public_header_files = [
'SmartDeviceLink/SDLKeypressMode.h',
'SmartDeviceLink/SDLLanguage.h',
'SmartDeviceLink/SDLLayoutMode.h',
+'SmartDeviceLink/SDLLocationCoordinate.h',
+'SmartDeviceLink/SDLLocationDetails.h',
'SmartDeviceLink/SDLLockScreenStatus.h',
'SmartDeviceLink/SDLMaintenanceModeStatus.h',
'SmartDeviceLink/SDLMediaClockFormat.h',
@@ -252,6 +264,7 @@ s.public_header_files = [
'SmartDeviceLink/SDLVehicleDataStatus.h',
'SmartDeviceLink/SDLVehicleDataType.h',
'SmartDeviceLink/SDLWarningLightStatus.h',
+'SmartDeviceLink/SDLWaypointType.h',
'SmartDeviceLink/SDLWiperStatus.h',
'SmartDeviceLink/SDLConfiguration.h',
'SmartDeviceLink/SDLLifecycleConfiguration.h',
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
index 1406102a6..f6f895478 100644
--- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
+++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
@@ -909,6 +909,45 @@
DA7515C11D95FAA000F29323 /* sdl_logo_white@2x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515AF1D95FAA000F29323 /* sdl_logo_white@2x.png */; };
DA7515C21D95FAA000F29323 /* sdl_logo_white@3x.png in Resources */ = {isa = PBXBuildFile; fileRef = DA7515B01D95FAA000F29323 /* sdl_logo_white@3x.png */; };
DA96C0661D4D4F730022F520 /* SDLAppInfoSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA96C0651D4D4F730022F520 /* SDLAppInfoSpec.m */; };
+ DA9F7E6F1DCBFFDB00ACAE48 /* SDLGetWaypoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWaypoints.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E701DCBFFDB00ACAE48 /* SDLGetWaypoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWaypoints.m */; };
+ DA9F7E731DCC004C00ACAE48 /* SDLGetWaypointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E711DCC004C00ACAE48 /* SDLGetWaypointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E741DCC004C00ACAE48 /* SDLGetWaypointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E721DCC004C00ACAE48 /* SDLGetWaypointsResponse.m */; };
+ DA9F7E7F1DCC028B00ACAE48 /* SDLOnWaypointChange.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E7D1DCC028B00ACAE48 /* SDLOnWaypointChange.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E801DCC028B00ACAE48 /* SDLOnWaypointChange.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E7E1DCC028B00ACAE48 /* SDLOnWaypointChange.m */; };
+ DA9F7E831DCC047200ACAE48 /* SDLWaypointType.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E811DCC047200ACAE48 /* SDLWaypointType.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E841DCC047200ACAE48 /* SDLWaypointType.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E821DCC047200ACAE48 /* SDLWaypointType.m */; };
+ DA9F7E871DCC049900ACAE48 /* SDLSubscribeWaypoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E851DCC049900ACAE48 /* SDLSubscribeWaypoints.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E881DCC049900ACAE48 /* SDLSubscribeWaypoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E861DCC049900ACAE48 /* SDLSubscribeWaypoints.m */; };
+ DA9F7E8B1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E8C1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m */; };
+ DA9F7E8F1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m */; };
+ DA9F7E931DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E941DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m */; };
+ DA9F7E991DCC052C00ACAE48 /* SDLLocationCoordinate.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E951DCC052C00ACAE48 /* SDLLocationCoordinate.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E9A1DCC052C00ACAE48 /* SDLLocationCoordinate.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E961DCC052C00ACAE48 /* SDLLocationCoordinate.m */; };
+ DA9F7E9B1DCC052C00ACAE48 /* SDLLocationDetails.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E971DCC052C00ACAE48 /* SDLLocationDetails.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E9C1DCC052C00ACAE48 /* SDLLocationDetails.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E981DCC052C00ACAE48 /* SDLLocationDetails.m */; };
+ DA9F7E9E1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E9D1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m */; };
+ DA9F7EA01DCC05D200ACAE48 /* SDLOnWaypointChangeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E9F1DCC05D200ACAE48 /* SDLOnWaypointChangeSpec.m */; };
+ DA9F7EA21DCC05E100ACAE48 /* SDLGetWaypointsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */; };
+ DA9F7EA41DCC05EE00ACAE48 /* SDLSubscribeWaypointsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EA31DCC05EE00ACAE48 /* SDLSubscribeWaypointsSpec.m */; };
+ DA9F7EA61DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EA51DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m */; };
+ DA9F7EA81DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */; };
+ DA9F7EAA1DCC061A00ACAE48 /* SDLSubscribeWaypointsResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EA91DCC061A00ACAE48 /* SDLSubscribeWaypointsResponseSpec.m */; };
+ DA9F7EAC1DCC062400ACAE48 /* SDLUnsubscribeWaypointsResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EAB1DCC062400ACAE48 /* SDLUnsubscribeWaypointsResponseSpec.m */; };
+ DA9F7EAF1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EAD1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m */; };
+ DA9F7EB01DCC063400ACAE48 /* SDLLocationDetailsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */; };
+ DA9F7E631DCBFAC800ACAE48 /* SDLDateTime.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E611DCBFAC800ACAE48 /* SDLDateTime.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E641DCBFAC800ACAE48 /* SDLDateTime.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E621DCBFAC800ACAE48 /* SDLDateTime.m */; };
+ DA9F7E671DCBFAD400ACAE48 /* SDLOasisAddress.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E651DCBFAD400ACAE48 /* SDLOasisAddress.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E681DCBFAD400ACAE48 /* SDLOasisAddress.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E661DCBFAD400ACAE48 /* SDLOasisAddress.m */; };
+ DA9F7E6B1DCBFB0700ACAE48 /* SDLDeliveryMode.h in Headers */ = {isa = PBXBuildFile; fileRef = DA9F7E691DCBFB0700ACAE48 /* SDLDeliveryMode.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ DA9F7E6C1DCBFB0700ACAE48 /* SDLDeliveryMode.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7E6A1DCBFB0700ACAE48 /* SDLDeliveryMode.m */; };
+ DA9F7EB21DCC084300ACAE48 /* SDLDeliveryModeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EB11DCC084300ACAE48 /* SDLDeliveryModeSpec.m */; };
+ DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */; };
+ DA9F7EB61DCC086A00ACAE48 /* SDLOasisAddressSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */; };
DAC572571D1067270004288B /* SDLTouchManager.h in Headers */ = {isa = PBXBuildFile; fileRef = DAC572551D1067270004288B /* SDLTouchManager.h */; settings = {ATTRIBUTES = (Public, ); }; };
DAC572581D1067270004288B /* SDLTouchManager.m in Sources */ = {isa = PBXBuildFile; fileRef = DAC572561D1067270004288B /* SDLTouchManager.m */; };
DAC5725B1D10B81E0004288B /* SDLTouch.m in Sources */ = {isa = PBXBuildFile; fileRef = DAC572591D10B81E0004288B /* SDLTouch.m */; };
@@ -1909,6 +1948,45 @@
DA7515AF1D95FAA000F29323 /* sdl_logo_white@2x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "sdl_logo_white@2x.png"; sourceTree = "<group>"; };
DA7515B01D95FAA000F29323 /* sdl_logo_white@3x.png */ = {isa = PBXFileReference; lastKnownFileType = image.png; path = "sdl_logo_white@3x.png"; sourceTree = "<group>"; };
DA96C0651D4D4F730022F520 /* SDLAppInfoSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAppInfoSpec.m; sourceTree = "<group>"; };
+ DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWaypoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetWaypoints.h; sourceTree = "<group>"; };
+ DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWaypoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWaypoints.m; sourceTree = "<group>"; };
+ DA9F7E711DCC004C00ACAE48 /* SDLGetWaypointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetWaypointsResponse.h; sourceTree = "<group>"; };
+ DA9F7E721DCC004C00ACAE48 /* SDLGetWaypointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWaypointsResponse.m; sourceTree = "<group>"; };
+ DA9F7E7D1DCC028B00ACAE48 /* SDLOnWaypointChange.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLOnWaypointChange.h; sourceTree = "<group>"; };
+ DA9F7E7E1DCC028B00ACAE48 /* SDLOnWaypointChange.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnWaypointChange.m; sourceTree = "<group>"; };
+ DA9F7E811DCC047200ACAE48 /* SDLWaypointType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLWaypointType.h; sourceTree = "<group>"; };
+ DA9F7E821DCC047200ACAE48 /* SDLWaypointType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLWaypointType.m; sourceTree = "<group>"; };
+ DA9F7E851DCC049900ACAE48 /* SDLSubscribeWaypoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSubscribeWaypoints.h; sourceTree = "<group>"; };
+ DA9F7E861DCC049900ACAE48 /* SDLSubscribeWaypoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWaypoints.m; sourceTree = "<group>"; };
+ DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSubscribeWaypointsResponse.h; sourceTree = "<group>"; };
+ DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWaypointsResponse.m; sourceTree = "<group>"; };
+ DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLUnsubscribeWaypointsResponse.h; sourceTree = "<group>"; };
+ DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWaypointsResponse.m; sourceTree = "<group>"; };
+ DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLUnsubscribeWaypoints.h; sourceTree = "<group>"; };
+ DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWaypoints.m; sourceTree = "<group>"; };
+ DA9F7E951DCC052C00ACAE48 /* SDLLocationCoordinate.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLocationCoordinate.h; sourceTree = "<group>"; };
+ DA9F7E961DCC052C00ACAE48 /* SDLLocationCoordinate.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLocationCoordinate.m; sourceTree = "<group>"; };
+ DA9F7E971DCC052C00ACAE48 /* SDLLocationDetails.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLocationDetails.h; sourceTree = "<group>"; };
+ DA9F7E981DCC052C00ACAE48 /* SDLLocationDetails.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLocationDetails.m; sourceTree = "<group>"; };
+ DA9F7E9D1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLWaypointTypeSpec.m; sourceTree = "<group>"; };
+ DA9F7E9F1DCC05D200ACAE48 /* SDLOnWaypointChangeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOnWaypointChangeSpec.m; sourceTree = "<group>"; };
+ DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWaypointsSpec.m; sourceTree = "<group>"; };
+ DA9F7EA31DCC05EE00ACAE48 /* SDLSubscribeWaypointsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWaypointsSpec.m; sourceTree = "<group>"; };
+ DA9F7EA51DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWaypointsSpec.m; sourceTree = "<group>"; };
+ DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetWaypointsResponseSpec.m; sourceTree = "<group>"; };
+ DA9F7EA91DCC061A00ACAE48 /* SDLSubscribeWaypointsResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSubscribeWaypointsResponseSpec.m; sourceTree = "<group>"; };
+ DA9F7EAB1DCC062400ACAE48 /* SDLUnsubscribeWaypointsResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLUnsubscribeWaypointsResponseSpec.m; sourceTree = "<group>"; };
+ DA9F7EAD1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLocationCoordinateSpec.m; sourceTree = "<group>"; };
+ DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLocationDetailsSpec.m; sourceTree = "<group>"; };
+ DA9F7E611DCBFAC800ACAE48 /* SDLDateTime.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDateTime.h; sourceTree = "<group>"; };
+ DA9F7E621DCBFAC800ACAE48 /* SDLDateTime.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDateTime.m; sourceTree = "<group>"; };
+ DA9F7E651DCBFAD400ACAE48 /* SDLOasisAddress.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLOasisAddress.h; sourceTree = "<group>"; };
+ DA9F7E661DCBFAD400ACAE48 /* SDLOasisAddress.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOasisAddress.m; sourceTree = "<group>"; };
+ DA9F7E691DCBFB0700ACAE48 /* SDLDeliveryMode.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLDeliveryMode.h; sourceTree = "<group>"; };
+ DA9F7E6A1DCBFB0700ACAE48 /* SDLDeliveryMode.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDeliveryMode.m; sourceTree = "<group>"; };
+ DA9F7EB11DCC084300ACAE48 /* SDLDeliveryModeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDeliveryModeSpec.m; sourceTree = "<group>"; };
+ DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLDateTimeSpec.m; sourceTree = "<group>"; };
+ DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLOasisAddressSpec.m; sourceTree = "<group>"; };
DAC572551D1067270004288B /* SDLTouchManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLTouchManager.h; sourceTree = "<group>"; };
DAC572561D1067270004288B /* SDLTouchManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTouchManager.m; sourceTree = "<group>"; };
DAC572591D10B81E0004288B /* SDLTouch.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLTouch.m; sourceTree = "<group>"; };
@@ -1998,6 +2076,7 @@
162E81EC1A9BDE8A00906325 /* SDLCharacterSetSpec.m */,
162E81ED1A9BDE8A00906325 /* SDLCompassDirectionSpec.m */,
162E81EE1A9BDE8A00906325 /* SDLComponentVolumeStatusSpec.m */,
+ DA9F7EB11DCC084300ACAE48 /* SDLDeliveryModeSpec.m */,
162E81EF1A9BDE8A00906325 /* SDLDeviceLevelStatusSpec.m */,
162E81F01A9BDE8A00906325 /* SDLDimensionSpec.m */,
162E81F11A9BDE8A00906325 /* SDLDisplayTypeSpec.m */,
@@ -2051,6 +2130,7 @@
162E82221A9BDE8A00906325 /* SDLVehicleDataTypeSpec.m */,
162E82231A9BDE8A00906325 /* SDLVrCapabilitiesSpec.m */,
162E82241A9BDE8A00906325 /* SDLWarningLightStatusSpec.m */,
+ DA9F7E9D1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m */,
162E82251A9BDE8A00906325 /* SDLWiperStatusSpec.m */,
);
path = EnumSpecs;
@@ -2085,6 +2165,7 @@
162E82381A9BDE8A00906325 /* SDLOnTBTClientStateSpec.m */,
162E82391A9BDE8A00906325 /* SDLOnTouchEventSpec.m */,
162E823A1A9BDE8A00906325 /* SDLOnVehicleDataSpec.m */,
+ DA9F7E9F1DCC05D200ACAE48 /* SDLOnWaypointChangeSpec.m */,
);
path = NotificationSpecs;
sourceTree = "<group>";
@@ -2116,6 +2197,7 @@
162E824A1A9BDE8A00906325 /* SDLEndAudioPassThruSpec.m */,
162E824B1A9BDE8A00906325 /* SDLGetDTCsSpec.m */,
162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */,
+ DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */,
162E824D1A9BDE8A00906325 /* SDLListFilesSpec.m */,
162E824E1A9BDE8A00906325 /* SDLPerformAudioPassThruSpec.m */,
162E824F1A9BDE8A00906325 /* SDLPerformInteractionSpec.m */,
@@ -2135,11 +2217,13 @@
162E825C1A9BDE8A00906325 /* SDLSpeakSpec.m */,
162E825D1A9BDE8A00906325 /* SDLSubscribeButtonSpec.m */,
162E825E1A9BDE8A00906325 /* SDLSubscribeVehicleDataSpec.m */,
+ DA9F7EA31DCC05EE00ACAE48 /* SDLSubscribeWaypointsSpec.m */,
162E825F1A9BDE8A00906325 /* SDLSyncPDataSpec.m */,
162E82601A9BDE8A00906325 /* SDLSystemRequestSpec.m */,
162E82611A9BDE8A00906325 /* SDLUnregisterAppInterfaceSpec.m */,
162E82621A9BDE8A00906325 /* SDLUnsubscribeButtonSpec.m */,
162E82631A9BDE8A00906325 /* SDLUnsubscribeVehicleDataSpec.m */,
+ DA9F7EA51DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m */,
162E82641A9BDE8A00906325 /* SDLUpdateTurnListSpec.m */,
);
path = RequestSpecs;
@@ -2165,6 +2249,7 @@
162E82731A9BDE8A00906325 /* SDLGenericResponseSpec.m */,
162E82741A9BDE8A00906325 /* SDLGetDTCsResponseSpec.m */,
162E82751A9BDE8A00906325 /* SDLGetVehicleDataResponseSpec.m */,
+ DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */,
162E82761A9BDE8A00906325 /* SDLListFilesResponseSpec.m */,
162E82771A9BDE8A00906325 /* SDLPerformAudioPassThruResponseSpec.m */,
162E82781A9BDE8A00906325 /* SDLPerformInteractionResponseSpec.m */,
@@ -2184,11 +2269,13 @@
162E82851A9BDE8A00906325 /* SDLSpeakResponseSpec.m */,
162E82861A9BDE8A00906325 /* SDLSubscribeButtonResponseSpec.m */,
162E82871A9BDE8A00906325 /* SDLSubscribeVehicleDataResponseSpec.m */,
+ DA9F7EA91DCC061A00ACAE48 /* SDLSubscribeWaypointsResponseSpec.m */,
162E82881A9BDE8A00906325 /* SDLSyncPDataResponseSpec.m */,
162E82891A9BDE8A00906325 /* SDLSystemRequestResponseSpec.m */,
162E828A1A9BDE8A00906325 /* SDLUnregisterAppInterfaceResponseSpec.m */,
162E828B1A9BDE8A00906325 /* SDLUnsubscribeButtonResponseSpec.m */,
162E828C1A9BDE8A00906325 /* SDLUnsubscribeVehicleDataResponseSpec.m */,
+ DA9F7EAB1DCC062400ACAE48 /* SDLUnsubscribeWaypointsResponseSpec.m */,
162E828D1A9BDE8A00906325 /* SDLUpdateTurnListResponseSpec.m */,
);
path = ResponseSpecs;
@@ -2205,6 +2292,7 @@
162E82931A9BDE8A00906325 /* SDLButtonCapabilitiesSpec.m */,
162E82941A9BDE8A00906325 /* SDLChoiceSpec.m */,
162E82951A9BDE8A00906325 /* SDLClusterModeStatusSpec.m */,
+ DA9F7EB31DCC086400ACAE48 /* SDLDateTimeSpec.m */,
162E82961A9BDE8A00906325 /* SDLDeviceInfoSpec.m */,
162E82971A9BDE8A00906325 /* SDLDeviceStatusSpec.m */,
162E82981A9BDE8A00906325 /* SDLDIDResult.m */,
@@ -2218,8 +2306,11 @@
162E829F1A9BDE8A00906325 /* SDLImageFieldSpec.m */,
162E82A01A9BDE8A00906325 /* SDLImageSpec.m */,
162E82A11A9BDE8A00906325 /* SDLKeyboardPropertiesSpec.m */,
+ DA9F7EAD1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m */,
+ DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */,
162E82A21A9BDE8A00906325 /* SDLMenuParamsSpec.m */,
162E82A31A9BDE8A00906325 /* SDLMyKeySpec.m */,
+ DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */,
162E82A41A9BDE8A00906325 /* SDLParameterPermissionsSpec.m */,
162E82A51A9BDE8A00906325 /* SDLPermissionItemSpec.m */,
162E82A61A9BDE8A00906325 /* SDLPresetBankCapabilitiesSpec.m */,
@@ -2579,6 +2670,8 @@
5D61FAC51A84238A00846EE7 /* SDLGetDTCs.m */,
5D61FAC81A84238A00846EE7 /* SDLGetVehicleData.h */,
5D61FAC91A84238A00846EE7 /* SDLGetVehicleData.m */,
+ DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWaypoints.h */,
+ DA9F7E6E1DCBFFDB00ACAE48 /* SDLGetWaypoints.m */,
5D61FAFF1A84238A00846EE7 /* SDLListFiles.h */,
5D61FB001A84238A00846EE7 /* SDLListFiles.m */,
5D61FB381A84238B00846EE7 /* SDLPerformAudioPassThru.h */,
@@ -2615,6 +2708,8 @@
5D61FBC11A84238B00846EE7 /* SDLSubscribeButton.m */,
5D61FBC41A84238B00846EE7 /* SDLSubscribeVehicleData.h */,
5D61FBC51A84238B00846EE7 /* SDLSubscribeVehicleData.m */,
+ DA9F7E851DCC049900ACAE48 /* SDLSubscribeWaypoints.h */,
+ DA9F7E861DCC049900ACAE48 /* SDLSubscribeWaypoints.m */,
5D61FBCA1A84238B00846EE7 /* SDLSyncPData.h */,
5D61FBCB1A84238B00846EE7 /* SDLSyncPData.m */,
5D61FBD21A84238B00846EE7 /* SDLSystemRequest.h */,
@@ -2625,6 +2720,8 @@
5D61FBFB1A84238C00846EE7 /* SDLUnsubscribeButton.m */,
5D61FBFE1A84238C00846EE7 /* SDLUnsubscribeVehicleData.h */,
5D61FBFF1A84238C00846EE7 /* SDLUnsubscribeVehicleData.m */,
+ DA9F7E911DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h */,
+ DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m */,
5D61FC041A84238C00846EE7 /* SDLUpdateTurnList.h */,
5D61FC051A84238C00846EE7 /* SDLUpdateTurnList.m */,
5DCF76F31ACDBAD300BB647B /* SDLSendLocation.h */,
@@ -2670,6 +2767,8 @@
5D61FAC71A84238A00846EE7 /* SDLGetDTCsResponse.m */,
5D61FACA1A84238A00846EE7 /* SDLGetVehicleDataResponse.h */,
5D61FACB1A84238A00846EE7 /* SDLGetVehicleDataResponse.m */,
+ DA9F7E711DCC004C00ACAE48 /* SDLGetWaypointsResponse.h */,
+ DA9F7E721DCC004C00ACAE48 /* SDLGetWaypointsResponse.m */,
5D61FB011A84238A00846EE7 /* SDLListFilesResponse.h */,
5D61FB021A84238A00846EE7 /* SDLListFilesResponse.m */,
5D61FB3A1A84238B00846EE7 /* SDLPerformAudioPassThruResponse.h */,
@@ -2706,6 +2805,8 @@
5D61FBC31A84238B00846EE7 /* SDLSubscribeButtonResponse.m */,
5D61FBC61A84238B00846EE7 /* SDLSubscribeVehicleDataResponse.h */,
5D61FBC71A84238B00846EE7 /* SDLSubscribeVehicleDataResponse.m */,
+ DA9F7E891DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h */,
+ DA9F7E8A1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m */,
5D61FBCC1A84238B00846EE7 /* SDLSyncPDataResponse.h */,
5D61FBCD1A84238B00846EE7 /* SDLSyncPDataResponse.m */,
5D61FBD41A84238B00846EE7 /* SDLSystemRequestResponse.h */,
@@ -2716,6 +2817,8 @@
5D61FBFD1A84238C00846EE7 /* SDLUnsubscribeButtonResponse.m */,
5D61FC001A84238C00846EE7 /* SDLUnsubscribeVehicleDataResponse.h */,
5D61FC011A84238C00846EE7 /* SDLUnsubscribeVehicleDataResponse.m */,
+ DA9F7E8D1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h */,
+ DA9F7E8E1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m */,
5D61FC061A84238C00846EE7 /* SDLUpdateTurnListResponse.h */,
5D61FC071A84238C00846EE7 /* SDLUpdateTurnListResponse.m */,
5DCF76F71ACDD7CD00BB647B /* SDLSendLocationResponse.h */,
@@ -2743,6 +2846,8 @@
5D61FA751A84238A00846EE7 /* SDLChoice.m */,
5D61FA761A84238A00846EE7 /* SDLClusterModeStatus.h */,
5D61FA771A84238A00846EE7 /* SDLClusterModeStatus.m */,
+ DA9F7E611DCBFAC800ACAE48 /* SDLDateTime.h */,
+ DA9F7E621DCBFAC800ACAE48 /* SDLDateTime.m */,
5D61FA951A84238A00846EE7 /* SDLDeviceInfo.h */,
5D61FA961A84238A00846EE7 /* SDLDeviceInfo.m */,
5D61FA991A84238A00846EE7 /* SDLDeviceStatus.h */,
@@ -2771,10 +2876,16 @@
5D61FAE71A84238A00846EE7 /* SDLImageResolution.m */,
5D61FAF71A84238A00846EE7 /* SDLKeyboardProperties.h */,
5D61FAF81A84238A00846EE7 /* SDLKeyboardProperties.m */,
+ DA9F7E951DCC052C00ACAE48 /* SDLLocationCoordinate.h */,
+ DA9F7E961DCC052C00ACAE48 /* SDLLocationCoordinate.m */,
+ DA9F7E971DCC052C00ACAE48 /* SDLLocationDetails.h */,
+ DA9F7E981DCC052C00ACAE48 /* SDLLocationDetails.m */,
5D61FB0B1A84238A00846EE7 /* SDLMenuParams.h */,
5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */,
5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */,
5D61FB0E1A84238A00846EE7 /* SDLMyKey.m */,
+ DA9F7E651DCBFAD400ACAE48 /* SDLOasisAddress.h */,
+ DA9F7E661DCBFAD400ACAE48 /* SDLOasisAddress.m */,
5D61FB361A84238B00846EE7 /* SDLParameterPermissions.h */,
5D61FB371A84238B00846EE7 /* SDLParameterPermissions.m */,
5D61FB401A84238B00846EE7 /* SDLPermissionItem.h */,
@@ -2846,6 +2957,8 @@
5D61FA791A84238A00846EE7 /* SDLCompassDirection.m */,
5D61FA7A1A84238A00846EE7 /* SDLComponentVolumeStatus.h */,
5D61FA7B1A84238A00846EE7 /* SDLComponentVolumeStatus.m */,
+ DA9F7E691DCBFB0700ACAE48 /* SDLDeliveryMode.h */,
+ DA9F7E6A1DCBFB0700ACAE48 /* SDLDeliveryMode.m */,
5D61FA971A84238A00846EE7 /* SDLDeviceLevelStatus.h */,
5D61FA981A84238A00846EE7 /* SDLDeviceLevelStatus.m */,
5D61FAA11A84238A00846EE7 /* SDLDimension.h */,
@@ -2953,6 +3066,8 @@
5D61FC211A84238C00846EE7 /* SDLVRCapabilities.m */,
5D61FC241A84238C00846EE7 /* SDLWarningLightStatus.h */,
5D61FC251A84238C00846EE7 /* SDLWarningLightStatus.m */,
+ DA9F7E811DCC047200ACAE48 /* SDLWaypointType.h */,
+ DA9F7E821DCC047200ACAE48 /* SDLWaypointType.m */,
5D61FC261A84238C00846EE7 /* SDLWiperStatus.h */,
5D61FC271A84238C00846EE7 /* SDLWiperStatus.m */,
);
@@ -3045,6 +3160,8 @@
5D61FB331A84238B00846EE7 /* SDLOnTouchEvent.m */,
5D61FB341A84238B00846EE7 /* SDLOnVehicleData.h */,
5D61FB351A84238B00846EE7 /* SDLOnVehicleData.m */,
+ DA9F7E7D1DCC028B00ACAE48 /* SDLOnWaypointChange.h */,
+ DA9F7E7E1DCC028B00ACAE48 /* SDLOnWaypointChange.m */,
);
name = Notification;
sourceTree = "<group>";
@@ -3805,7 +3922,9 @@
5D61FCF61A84238C00846EE7 /* SDLMediaClockFormat.h in Headers */,
5D61FD831A84238C00846EE7 /* SDLSetDisplayLayout.h in Headers */,
5D61FCC91A84238C00846EE7 /* SDLIgnitionStableStatus.h in Headers */,
+ DA9F7E6B1DCBFB0700ACAE48 /* SDLDeliveryMode.h in Headers */,
E9C32B941AB20BA200F283AF /* SDLStreamDelegate.h in Headers */,
+ DA9F7E871DCC049900ACAE48 /* SDLSubscribeWaypoints.h in Headers */,
5D61FDBB1A84238C00846EE7 /* SDLSystemAction.h in Headers */,
5D61FC9C1A84238C00846EE7 /* SDLEmergencyEventType.h in Headers */,
5D61FD131A84238C00846EE7 /* SDLOnLanguageChange.h in Headers */,
@@ -3850,6 +3969,7 @@
E9C32B9E1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.h in Headers */,
5D61FC4B1A84238C00846EE7 /* SDLBeltStatus.h in Headers */,
DAC5726B1D10D5FC0004288B /* dispatch_timer.h in Headers */,
+ DA9F7E991DCC052C00ACAE48 /* SDLLocationCoordinate.h in Headers */,
5D61FC351A84238C00846EE7 /* SDLAirbagStatus.h in Headers */,
5D61FC8A1A84238C00846EE7 /* SDLDiagnosticMessageResponse.h in Headers */,
5D61FC2D1A84238C00846EE7 /* SDLAddCommand.h in Headers */,
@@ -3859,6 +3979,7 @@
5D61FDA91A84238C00846EE7 /* SDLSpeechCapabilities.h in Headers */,
5D61FCE01A84238C00846EE7 /* SDLKeyboardEvent.h in Headers */,
5D3E48751D6F3B330000BFEF /* SDLAsynchronousOperation.h in Headers */,
+ DA9F7E631DCBFAC800ACAE48 /* SDLDateTime.h in Headers */,
5D61FCEA1A84238C00846EE7 /* SDLLayoutMode.h in Headers */,
5D61FD7F1A84238C00846EE7 /* SDLSetAppIcon.h in Headers */,
5D61FDD11A84238C00846EE7 /* SDLTouchCoord.h in Headers */,
@@ -3871,6 +3992,7 @@
5D61FC4F1A84238C00846EE7 /* SDLBodyInformation.h in Headers */,
5D61FDAB1A84238C00846EE7 /* SDLStartTime.h in Headers */,
5D61FD071A84238C00846EE7 /* SDLOnCommand.h in Headers */,
+ DA9F7E9B1DCC052C00ACAE48 /* SDLLocationDetails.h in Headers */,
5D61FD1D1A84238C00846EE7 /* SDLOnTBTClientState.h in Headers */,
5D61FD9D1A84238C00846EE7 /* SDLSliderResponse.h in Headers */,
5D61FDF31A84238C00846EE7 /* SDLUpdateTurnListResponse.h in Headers */,
@@ -3880,6 +4002,7 @@
5D61FC491A84238C00846EE7 /* SDLAudioType.h in Headers */,
5D61FC761A84238C00846EE7 /* SDLDeleteFile.h in Headers */,
5D61FD211A84238C00846EE7 /* SDLOnVehicleData.h in Headers */,
+ DA9F7E731DCC004C00ACAE48 /* SDLGetWaypointsResponse.h in Headers */,
5D61FD7D1A84238C00846EE7 /* SDLScrollableMessageResponse.h in Headers */,
5D61FD431A84238C00846EE7 /* SDLProtocol.h in Headers */,
5D8B17531AC9E11B006A6E1C /* SDLDialNumberResponse.h in Headers */,
@@ -3925,6 +4048,7 @@
5D61FCFA1A84238C00846EE7 /* SDLMyKey.h in Headers */,
5D61FC981A84238C00846EE7 /* SDLECallInfo.h in Headers */,
5D61FD7B1A84238C00846EE7 /* SDLScrollableMessage.h in Headers */,
+ DA9F7E931DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.h in Headers */,
5D61FD3D1A84238C00846EE7 /* SDLPrimaryAudioSource.h in Headers */,
DAC5725C1D10B81E0004288B /* SDLTouch.h in Headers */,
5D6F7A2E1BC5650B0070BF37 /* SDLLifecycleConfiguration.h in Headers */,
@@ -3945,7 +4069,9 @@
5D61FDE51A84238C00846EE7 /* SDLUnregisterAppInterfaceResponse.h in Headers */,
5D61FCF81A84238C00846EE7 /* SDLMenuParams.h in Headers */,
5D61FD651A84238C00846EE7 /* SDLResetGlobalPropertiesResponse.h in Headers */,
+ DA9F7E671DCBFAD400ACAE48 /* SDLOasisAddress.h in Headers */,
5D61FD611A84238C00846EE7 /* SDLRequestType.h in Headers */,
+ DA9F7E8B1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.h in Headers */,
5D61FCEC1A84238C00846EE7 /* SDLListFiles.h in Headers */,
5D2F58081D0717D5001085CE /* SDLManagerDelegate.h in Headers */,
5D61FC881A84238C00846EE7 /* SDLDiagnosticMessage.h in Headers */,
@@ -4002,12 +4128,14 @@
5D61FE011A84238C00846EE7 /* SDLVehicleDataNotificationStatus.h in Headers */,
5D61FDC91A84238C00846EE7 /* SDLTextField.h in Headers */,
5D6F7A351BC5B9B60070BF37 /* SDLLockScreenViewController.h in Headers */,
+ DA9F7E7F1DCC028B00ACAE48 /* SDLOnWaypointChange.h in Headers */,
5D61FCE41A84238C00846EE7 /* SDLKeyboardProperties.h in Headers */,
5D61FDED1A84238C00846EE7 /* SDLUnsubscribeVehicleDataResponse.h in Headers */,
5DCC19A41B822804004FFAD9 /* SDLURLRequestTask.h in Headers */,
5D61FCCF1A84238C00846EE7 /* SDLImageField.h in Headers */,
5D535DC51B72473800CF7760 /* SDLGlobals.h in Headers */,
5D79A03B1CE36F030035797B /* SDLUploadFileOperation.h in Headers */,
+ DA9F7E6F1DCBFFDB00ACAE48 /* SDLGetWaypoints.h in Headers */,
5D61FD231A84238C00846EE7 /* SDLParameterPermissions.h in Headers */,
5D61FCB91A84238C00846EE7 /* SDLGlobalProperty.h in Headers */,
5D61FE051A84238C00846EE7 /* SDLVehicleDataResultCode.h in Headers */,
@@ -4065,6 +4193,7 @@
5D8B174F1AC9D266006A6E1C /* SDLDialNumber.h in Headers */,
5D7F87EF1CE3C294002DD7C4 /* SDLFileManagerConstants.h in Headers */,
5D61FCAD1A84238C00846EE7 /* SDLFunctionID.h in Headers */,
+ DA9F7E831DCC047200ACAE48 /* SDLWaypointType.h in Headers */,
5D61FDF51A84238C00846EE7 /* SDLV1ProtocolHeader.h in Headers */,
DAC572671D10C5640004288B /* CGPoint_Util.h in Headers */,
5D61FDF91A84238C00846EE7 /* SDLV2ProtocolHeader.h in Headers */,
@@ -4076,6 +4205,7 @@
5D61FDFB1A84238C00846EE7 /* SDLV2ProtocolMessage.h in Headers */,
5D7F87EB1CE3C1A1002DD7C4 /* SDLDeleteFileOperation.h in Headers */,
5D61FCFC1A84238C00846EE7 /* SDLNames.h in Headers */,
+ DA9F7E8F1DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.h in Headers */,
5D61FCFD1A84238C00846EE7 /* SDLObjectWithPriority.h in Headers */,
DAC5726C1D11B4840004288B /* SDLTouchManagerDelegate.h in Headers */,
5D61FD3F1A84238C00846EE7 /* SDLPrioritizedObjectCollection.h in Headers */,
@@ -4280,6 +4410,7 @@
files = (
332A914F1CED9CC60043824C /* SDLAppInfo.m in Sources */,
5DCC19A51B822804004FFAD9 /* SDLURLRequestTask.m in Sources */,
+ DA9F7E841DCC047200ACAE48 /* SDLWaypointType.m in Sources */,
5D61FC561A84238C00846EE7 /* SDLButtonName.m in Sources */,
5D61FCC21A84238C00846EE7 /* SDLHMILevel.m in Sources */,
5D61FDEC1A84238C00846EE7 /* SDLUnsubscribeVehicleData.m in Sources */,
@@ -4311,6 +4442,7 @@
5D61FDE01A84238C00846EE7 /* SDLTTSChunkFactory.m in Sources */,
5D61FD0A1A84238C00846EE7 /* SDLOnDriverDistraction.m in Sources */,
5D61FCED1A84238C00846EE7 /* SDLListFiles.m in Sources */,
+ DA9F7E801DCC028B00ACAE48 /* SDLOnWaypointChange.m in Sources */,
5D61FC6E1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.m in Sources */,
5D61FD061A84238C00846EE7 /* SDLOnButtonPress.m in Sources */,
5D61FD5E1A84238C00846EE7 /* SDLRegisterAppInterface.m in Sources */,
@@ -4342,6 +4474,7 @@
5D61FCD01A84238C00846EE7 /* SDLImageField.m in Sources */,
5D61FC3C1A84238C00846EE7 /* SDLAlertManeuverResponse.m in Sources */,
5D61FC6A1A84238C00846EE7 /* SDLConsoleController.m in Sources */,
+ DA9F7E741DCC004C00ACAE48 /* SDLGetWaypointsResponse.m in Sources */,
5D61FD4D1A84238C00846EE7 /* SDLProtocolMessageDisassembler.m in Sources */,
5D61FC701A84238C00846EE7 /* SDLDebugTool.m in Sources */,
5D61FD4B1A84238C00846EE7 /* SDLProtocolMessageAssembler.m in Sources */,
@@ -4382,6 +4515,7 @@
5D61FCF71A84238C00846EE7 /* SDLMediaClockFormat.m in Sources */,
5D61FD8A1A84238C00846EE7 /* SDLSetGlobalPropertiesResponse.m in Sources */,
5D61FC4C1A84238C00846EE7 /* SDLBeltStatus.m in Sources */,
+ DA9F7E8C1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m in Sources */,
5D61FDA41A84238C00846EE7 /* SDLSoftButtonType.m in Sources */,
5D61FC521A84238C00846EE7 /* SDLButtonCapabilities.m in Sources */,
5D61FC791A84238C00846EE7 /* SDLDeleteFileResponse.m in Sources */,
@@ -4438,12 +4572,14 @@
5D61FCC61A84238C00846EE7 /* SDLHMIZoneCapabilities.m in Sources */,
5D61FD161A84238C00846EE7 /* SDLOnLockScreenStatus.m in Sources */,
5D61FDAE1A84238C00846EE7 /* SDLSubscribeButton.m in Sources */,
+ DA9F7E6C1DCBFB0700ACAE48 /* SDLDeliveryMode.m in Sources */,
5D61FC581A84238C00846EE7 /* SDLButtonPressMode.m in Sources */,
5D61FDB01A84238C00846EE7 /* SDLSubscribeButtonResponse.m in Sources */,
5DCF76F61ACDBAD300BB647B /* SDLSendLocation.m in Sources */,
5D76E3251D39767000647CFA /* SDLLockScreenPresenter.m in Sources */,
5D61FC771A84238C00846EE7 /* SDLDeleteFile.m in Sources */,
5D61FC811A84238C00846EE7 /* SDLDeleteSubMenuResponse.m in Sources */,
+ DA9F7E681DCBFAD400ACAE48 /* SDLOasisAddress.m in Sources */,
5D61FC7B1A84238C00846EE7 /* SDLDeleteInteractionChoiceSet.m in Sources */,
5D61FDC01A84238C00846EE7 /* SDLSystemRequest.m in Sources */,
5D61FD021A84238C00846EE7 /* SDLOnAudioPassThru.m in Sources */,
@@ -4455,9 +4591,11 @@
5D61FDAA1A84238C00846EE7 /* SDLSpeechCapabilities.m in Sources */,
5D61FDB41A84238C00846EE7 /* SDLSubscribeVehicleDataResponse.m in Sources */,
5D61FD121A84238C00846EE7 /* SDLOnKeyboardInput.m in Sources */,
+ DA9F7E9A1DCC052C00ACAE48 /* SDLLocationCoordinate.m in Sources */,
5D61FCCA1A84238C00846EE7 /* SDLIgnitionStableStatus.m in Sources */,
5D61FCFB1A84238C00846EE7 /* SDLMyKey.m in Sources */,
5D61FCAA1A84238C00846EE7 /* SDLFileType.m in Sources */,
+ DA9F7E901DCC04C000ACAE48 /* SDLUnsubscribeWaypointsResponse.m in Sources */,
5DE372A21ACB2ED300849FAA /* SDLHMICapabilities.m in Sources */,
5D61FDD41A84238C00846EE7 /* SDLTouchEvent.m in Sources */,
5D61FD881A84238C00846EE7 /* SDLSetGlobalProperties.m in Sources */,
@@ -4471,9 +4609,11 @@
5D61FCB81A84238C00846EE7 /* SDLGetVehicleDataResponse.m in Sources */,
5D61FC661A84238C00846EE7 /* SDLCompassDirection.m in Sources */,
5D61FD841A84238C00846EE7 /* SDLSetDisplayLayout.m in Sources */,
+ DA9F7E701DCBFFDB00ACAE48 /* SDLGetWaypoints.m in Sources */,
5D61FE001A84238C00846EE7 /* SDLVehicleDataEventStatus.m in Sources */,
5D61FDC41A84238C00846EE7 /* SDLTBTState.m in Sources */,
5D61FDA61A84238C00846EE7 /* SDLSpeak.m in Sources */,
+ DA9F7E881DCC049900ACAE48 /* SDLSubscribeWaypoints.m in Sources */,
5D61FDDE1A84238C00846EE7 /* SDLTTSChunk.m in Sources */,
5D61FD9E1A84238C00846EE7 /* SDLSliderResponse.m in Sources */,
5D61FC5C1A84238C00846EE7 /* SDLChangeRegistration.m in Sources */,
@@ -4490,6 +4630,7 @@
5D61FC851A84238C00846EE7 /* SDLDeviceLevelStatus.m in Sources */,
5D1665AB1CF5F7D000CC4CA1 /* (null) in Sources */,
5D61FD1E1A84238C00846EE7 /* SDLOnTBTClientState.m in Sources */,
+ DA9F7E641DCBFAC800ACAE48 /* SDLDateTime.m in Sources */,
5D61FD581A84238C00846EE7 /* SDLPutFileResponse.m in Sources */,
5D61FCB21A84238C00846EE7 /* SDLGetDTCs.m in Sources */,
5D61FD441A84238C00846EE7 /* SDLProtocol.m in Sources */,
@@ -4522,6 +4663,7 @@
5DA3F3551BC448060026F2D0 /* NSMapTable+Subscripting.m in Sources */,
5D61FCD61A84238C00846EE7 /* SDLImageType.m in Sources */,
5D4D67AD1D2ED37A00468B4A /* SDLNotificationDispatcher.m in Sources */,
+ DA9F7E9C1DCC052C00ACAE48 /* SDLLocationDetails.m in Sources */,
5D61FD7A1A84238C00846EE7 /* SDLScreenParams.m in Sources */,
5D61FC831A84238C00846EE7 /* SDLDeviceInfo.m in Sources */,
5D7F87EC1CE3C1A1002DD7C4 /* SDLDeleteFileOperation.m in Sources */,
@@ -4561,6 +4703,7 @@
5D61FC931A84238C00846EE7 /* SDLDisplayType.m in Sources */,
5D61FCE31A84238C00846EE7 /* SDLKeyboardLayout.m in Sources */,
5D61FE0C1A84238C00846EE7 /* SDLVehicleType.m in Sources */,
+ DA9F7E941DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m in Sources */,
5D61FDCC1A84238C00846EE7 /* SDLTextFieldName.m in Sources */,
5D61FC751A84238C00846EE7 /* SDLDeleteCommandResponse.m in Sources */,
5DA3F3711BC4489A0026F2D0 /* SDLManager.m in Sources */,
@@ -4611,6 +4754,7 @@
162E83871A9BDE8B00906325 /* SDLPermissionItemSpec.m in Sources */,
162E82E31A9BDE8B00906325 /* SDLIgnitionStatusSpec.m in Sources */,
162E83511A9BDE8B00906325 /* SDLDeleteInteractionChoiceSetResponseSpec.m in Sources */,
+ DA9F7EB41DCC086400ACAE48 /* SDLDateTimeSpec.m in Sources */,
162E830E1A9BDE8B00906325 /* SDLRPCRequestFactorySpec.m in Sources */,
162E82E41A9BDE8B00906325 /* SDLImageFieldNameSpec.m in Sources */,
162E83991A9BDE8B00906325 /* SDLEnumSpec.m in Sources */,
@@ -4678,14 +4822,17 @@
162E82F71A9BDE8B00906325 /* SDLResultSpec.m in Sources */,
1680B1141A9CD7AD00DBD79E /* SDLV1ProtocolHeaderSpec.m in Sources */,
1680B1161A9CD7AD00DBD79E /* SDLProtocolMessageSpec.m in Sources */,
+ DA9F7EB21DCC084300ACAE48 /* SDLDeliveryModeSpec.m in Sources */,
162E83771A9BDE8B00906325 /* SDLClusterModeStatusSpec.m in Sources */,
162E83981A9BDE8B00906325 /* SDLVrHelpItemSpec.m in Sources */,
162E83831A9BDE8B00906325 /* SDLKeyboardPropertiesSpec.m in Sources */,
+ DA9F7EA01DCC05D200ACAE48 /* SDLOnWaypointChangeSpec.m in Sources */,
162E82D11A9BDE8A00906325 /* SDLButtonNameSpec.m in Sources */,
162E839E1A9BDE8B00906325 /* SDLRPCStructSpec.m in Sources */,
DA4353DF1D271FD10099B8C4 /* CGPointUtilSpec.m in Sources */,
162E83291A9BDE8B00906325 /* SDLDeleteFileSpec.m in Sources */,
1680B11D1A9CD7AD00DBD79E /* SDLProtocolMessageDisassemblerSpec.m in Sources */,
+ DA9F7E9E1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m in Sources */,
162E838E1A9BDE8B00906325 /* SDLSyncMsgVersionSpec.m in Sources */,
5D76E31C1D3805FF00647CFA /* SDLLockScreenManagerSpec.m in Sources */,
162E82DA1A9BDE8B00906325 /* SDLDriverDistractionStateSpec.m in Sources */,
@@ -4696,9 +4843,11 @@
162E83111A9BDE8B00906325 /* SDLOnButtonEventSpec.m in Sources */,
162E82FA1A9BDE8B00906325 /* SDLSoftButtonTypeSpec.m in Sources */,
162E83751A9BDE8B00906325 /* SDLButtonCapabilitiesSpec.m in Sources */,
+ DA9F7EAF1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m in Sources */,
162E83151A9BDE8B00906325 /* SDLOnEncodedSyncPDataSpec.m in Sources */,
162E83261A9BDE8B00906325 /* SDLChangeRegistrationSpec.m in Sources */,
162E82D21A9BDE8A00906325 /* SDLButtonPressModeSpec.m in Sources */,
+ DA9F7EA21DCC05E100ACAE48 /* SDLGetWaypointsSpec.m in Sources */,
162E82D71A9BDE8A00906325 /* SDLDeviceLevelStatusSpec.m in Sources */,
162E83841A9BDE8B00906325 /* SDLMenuParamsSpec.m in Sources */,
5DB1BCE11D243DDE002FFC37 /* SDLConfigurationSpec.m in Sources */,
@@ -4720,6 +4869,7 @@
5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */,
162E83381A9BDE8B00906325 /* SDLScrollableMessageSpec.m in Sources */,
162E82E81A9BDE8B00906325 /* SDLKeyboardLayoutSpec.m in Sources */,
+ DA9F7EA41DCC05EE00ACAE48 /* SDLSubscribeWaypointsSpec.m in Sources */,
DA4353EB1D2721680099B8C4 /* SDLTouchSpec.m in Sources */,
5DB1BCE71D245647002FFC37 /* TestStateMachineTarget.m in Sources */,
162E83541A9BDE8B00906325 /* SDLEncodedSyncPDataResponseSpec.m in Sources */,
@@ -4732,6 +4882,7 @@
162E83241A9BDE8B00906325 /* SDLAlertManeuverSpec.m in Sources */,
162E83451A9BDE8B00906325 /* SDLUnregisterAppInterfaceSpec.m in Sources */,
162E82EF1A9BDE8B00906325 /* SDLPermissionStatusSpec.m in Sources */,
+ DA9F7EA61DCC05F500ACAE48 /* SDLUnsubscribeWaypointsSpec.m in Sources */,
162E82F01A9BDE8B00906325 /* SDLPowerModeQualificationStatusSpec.m in Sources */,
162E82CD1A9BDE8A00906325 /* SDLAudioStreamingStateSpec.m in Sources */,
162E831A1A9BDE8B00906325 /* SDLOnLockScreenStatusSpec.m in Sources */,
@@ -4758,6 +4909,7 @@
162E83031A9BDE8B00906325 /* SDLTriggerSource.m in Sources */,
162E82D61A9BDE8A00906325 /* SDLComponentVolumeStatusSpec.m in Sources */,
162E835C1A9BDE8B00906325 /* SDLPutFileResponseSpec.m in Sources */,
+ DA9F7EAA1DCC061A00ACAE48 /* SDLSubscribeWaypointsResponseSpec.m in Sources */,
162E835F1A9BDE8B00906325 /* SDLResetGlobalPropertiesResponseSpec.m in Sources */,
162E835E1A9BDE8B00906325 /* SDLRegisterAppInterfaceResponseSpec.m in Sources */,
162E835A1A9BDE8B00906325 /* SDLPerformAudioPassThruResponseSpec.m in Sources */,
@@ -4769,6 +4921,7 @@
162E830C1A9BDE8B00906325 /* SDLWarningLightStatusSpec.m in Sources */,
162E82E71A9BDE8B00906325 /* SDLKeyboardEventSpec.m in Sources */,
162E834E1A9BDE8B00906325 /* SDLCreateInteractionChoiceSetResponseSpec.m in Sources */,
+ DA9F7EB61DCC086A00ACAE48 /* SDLOasisAddressSpec.m in Sources */,
162E83301A9BDE8B00906325 /* SDLGetVehicleDataSpec.m in Sources */,
162E833F1A9BDE8B00906325 /* SDLSliderSpec.m in Sources */,
162E838C1A9BDE8B00906325 /* SDLSoftButtonSpec.m in Sources */,
@@ -4778,12 +4931,14 @@
162E83471A9BDE8B00906325 /* SDLUnsubscribeVehicleDataSpec.m in Sources */,
162E839A1A9BDE8B00906325 /* SDLRPCMessageSpec.m in Sources */,
162E83311A9BDE8B00906325 /* SDLListFilesSpec.m in Sources */,
+ DA9F7EB01DCC063400ACAE48 /* SDLLocationDetailsSpec.m in Sources */,
5DC978261B7A38640012C2F1 /* SDLGlobalsSpec.m in Sources */,
162E82FF1A9BDE8B00906325 /* SDLTextAlignmentSpec.m in Sources */,
162E831F1A9BDE8B00906325 /* SDLOnTouchEventSpec.m in Sources */,
162E83921A9BDE8B00906325 /* SDLTouchEventCapabilitiesSpec.m in Sources */,
162E837F1A9BDE8B00906325 /* SDLHeadLampStatusSpec.m in Sources */,
162E834D1A9BDE8B00906325 /* SDLChangeRegistrationResponseSpec.m in Sources */,
+ DA9F7EAC1DCC062400ACAE48 /* SDLUnsubscribeWaypointsResponseSpec.m in Sources */,
162E836B1A9BDE8B00906325 /* SDLSyncPDataResponseSpec.m in Sources */,
162E839B1A9BDE8B00906325 /* SDLRPCNotificationSpec.m in Sources */,
162E83581A9BDE8B00906325 /* SDLGetVehicleDataResponseSpec.m in Sources */,
@@ -4833,6 +4988,7 @@
162E83731A9BDE8B00906325 /* SDLBeltStatusSpec.m in Sources */,
162E83551A9BDE8B00906325 /* SDLEndAudioPassThruResponseSpec.m in Sources */,
162E83251A9BDE8B00906325 /* SDLAlertSpec.m in Sources */,
+ DA9F7EA81DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m in Sources */,
162E830A1A9BDE8B00906325 /* SDLVehicleDataTypeSpec.m in Sources */,
5DB1BCD31D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m in Sources */,
162E82F41A9BDE8B00906325 /* SDLPrimaryAudioSource.m in Sources */,
diff --git a/SmartDeviceLink/SDLDateTime.h b/SmartDeviceLink/SDLDateTime.h
new file mode 100644
index 000000000..7dffbd5d2
--- /dev/null
+++ b/SmartDeviceLink/SDLDateTime.h
@@ -0,0 +1,79 @@
+// SDLDateTime.h
+//
+
+#import "SDLRPCStruct.h"
+
+@interface SDLDateTime : SDLRPCStruct
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute;
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond;
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year;
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year timezoneMinuteOffset:(UInt8)timezoneMinuteOffset timezoneHourOffset:(int)timezoneHourOffset;
+
+/**
+ * @abstract Milliseconds part of time
+ *
+ * Optional, Integer 0 - 999
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *millisecond;
+
+/**
+ * @abstract Seconds part of time
+ *
+ * Optional, Integer 0 - 59
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *second;
+
+/**
+ * @abstract Minutes part of time
+ *
+ * Optional, Integer 0 - 59
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *minute;
+
+/**
+ * @abstract Hour part of time
+ *
+ * Optional, Integer 0 - 23
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *hour;
+
+/**
+ * @abstract Day of the month
+ *
+ * Optional, Integer 1 - 31
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *day;
+
+/**
+ * @abstract Month of the year
+ *
+ * Optional, Integer 1 - 12
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *month;
+
+/**
+ * @abstract The year in YYYY format
+ *
+ * Optional, Max Value 4095
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *year;
+
+/**
+ * @abstract Time zone offset in Min with regard to UTC
+ *
+ * Optional, Integer 0 - 59
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *timezoneMinuteOffset;
+
+/**
+ * @abstract Time zone offset in Hours with regard to UTC
+ *
+ * Optional, Integer -12 - 14
+ */
+@property (copy, nonatomic) NSNumber<SDLInt> *timezoneHourOffset;
+
+@end
diff --git a/SmartDeviceLink/SDLDateTime.m b/SmartDeviceLink/SDLDateTime.m
new file mode 100644
index 000000000..babed159c
--- /dev/null
+++ b/SmartDeviceLink/SDLDateTime.m
@@ -0,0 +1,168 @@
+// SDLDateTime.m
+//
+
+#import "SDLDateTime.h"
+#import "SDLNames.h"
+
+@implementation SDLDateTime
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.hour = @(hour);
+ self.minute = @(minute);
+
+ return self;
+}
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond {
+ self = [self initWithHour:hour minute:minute];
+ if (!self) {
+ return nil;
+ }
+
+ self.second = @(second);
+ self.millisecond = @(millisecond);
+
+ return self;
+
+}
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year {
+ self = [self initWithHour:hour minute:minute second:second millisecond:millisecond];
+ if (!self) {
+ return nil;
+ }
+
+ self.day = @(day);
+ self.month = @(month);
+ self.year = @(year);
+
+ return self;
+}
+
+
+- (instancetype)initWithHour:(UInt8)hour minute:(UInt8)minute second:(UInt8)second millisecond:(UInt16)millisecond day:(UInt8)day month:(UInt8)month year:(UInt16)year timezoneMinuteOffset:(UInt8)timezoneMinuteOffset timezoneHourOffset:(int)timezoneHourOffset {
+ self = [self initWithHour:hour minute:minute second:second millisecond:millisecond day:day month:month year:year];
+ if (!self) {
+ return nil;
+ }
+
+ self.timezoneMinuteOffset = @(timezoneMinuteOffset);
+ self.timezoneHourOffset = @(timezoneHourOffset);
+
+ return self;
+}
+
+- (void)setMillisecond:(NSNumber<SDLInt> *)millisecond {
+ if (millisecond != nil) {
+ store[NAMES_millisecond] = millisecond;
+ } else {
+ [store removeObjectForKey:NAMES_millisecond];
+ }
+}
+
+- (NSNumber<SDLInt> *)millisecond {
+ return store[NAMES_millisecond];
+}
+
+- (void)setSecond:(NSNumber<SDLInt> *)second {
+ if (second != nil) {
+ store[NAMES_second] = second;
+ } else {
+ [store removeObjectForKey:NAMES_second];
+ }
+}
+
+- (NSNumber<SDLInt> *)second {
+ return store[NAMES_second];
+}
+
+- (void)setMinute:(NSNumber<SDLInt> *)minute {
+ if (minute != nil) {
+ store[NAMES_minute] = minute;
+ } else {
+ [store removeObjectForKey:NAMES_minute];
+ }
+}
+
+- (NSNumber<SDLInt> *)minute {
+ return store[NAMES_minute];
+}
+
+- (void)setHour:(NSNumber<SDLInt> *)hour {
+ if (hour != nil) {
+ store[NAMES_hour] = hour;
+ } else {
+ [store removeObjectForKey:NAMES_hour];
+ }
+}
+
+- (NSNumber<SDLInt> *)hour {
+ return store[NAMES_hour];
+}
+
+- (void)setDay:(NSNumber<SDLInt> *)day {
+ if (day != nil) {
+ store[NAMES_day] = day;
+ } else {
+ [store removeObjectForKey:NAMES_day];
+ }
+}
+
+- (NSNumber<SDLInt> *)day {
+ return store[NAMES_day];
+}
+
+- (void)setMonth:(NSNumber<SDLInt> *)month {
+ if (month != nil) {
+ store[NAMES_month] = month;
+ } else {
+ [store removeObjectForKey:NAMES_month];
+ }
+}
+
+- (NSNumber<SDLInt> *)month {
+ return store[NAMES_month];
+}
+
+- (void)setYear:(NSNumber<SDLInt> *)year {
+ if (year != nil) {
+ store[NAMES_year] = year;
+ } else {
+ [store removeObjectForKey:NAMES_year];
+ }
+}
+
+- (NSNumber<SDLInt> *)year {
+ return store[NAMES_year];
+}
+
+- (void)setTimezoneMinuteOffset:(NSNumber<SDLInt> *)timezoneMinuteOffset {
+ if (timezoneMinuteOffset != nil) {
+ store[NAMES_timezoneMinuteOffset] = timezoneMinuteOffset;
+ } else {
+ [store removeObjectForKey:NAMES_timezoneMinuteOffset];
+ }
+}
+
+- (NSNumber<SDLInt> *)timezoneMinuteOffset {
+ return store[NAMES_timezoneMinuteOffset];
+}
+
+- (void)setTimezoneHourOffset:(NSNumber<SDLInt> *)timezoneHourOffset {
+ if (timezoneHourOffset != nil) {
+ store[NAMES_timezoneHourOffset] = timezoneHourOffset;
+ } else {
+ [store removeObjectForKey:NAMES_timezoneHourOffset];
+ }
+}
+
+- (NSNumber<SDLInt> *)timezoneHourOffset {
+ return store[NAMES_timezoneHourOffset];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLDeliveryMode.h b/SmartDeviceLink/SDLDeliveryMode.h
new file mode 100644
index 000000000..16a6cfe84
--- /dev/null
+++ b/SmartDeviceLink/SDLDeliveryMode.h
@@ -0,0 +1,48 @@
+// SDLDeliveryMode.h
+//
+
+#import "SDLEnum.h"
+
+/**
+ *Specifies the mode in which the sendLocation request is sent.
+ */
+@interface SDLDeliveryMode : SDLEnum
+
+/**
+ * @abstract Convert String to SDLDeliveryMode
+ *
+ * @param value The value of the string to get an object for
+ *
+ * @return SDLDeliveryMode
+ */
++ (SDLDeliveryMode *)valueOf:(NSString *)value;
+
+/**
+ * @abstract Store the enumeration of all possible SDLDeliveryMode
+ *
+ * @return an array that store all possible SDLDeliveryMode
+ */
++ (NSArray *)values;
+
+/**
+ * @abstract User is prompted on HMI
+ *
+ * @return a SDLDeliveryMode with value of *PROMPT*
+ */
++ (SDLDeliveryMode *)PROMPT;
+
+/**
+ * @abstract Set the location as destination without prompting the user
+ *
+ * @return a SDLDeliveryMode with value of *DESTINATION*
+ */
++ (SDLDeliveryMode *)DESTINATION;
+
+/**
+ * @abstract Adds the current location to navigation queue
+ *
+ * @return a SDLDeliveryMode with value of *QUEUE*
+ */
++ (SDLDeliveryMode *)QUEUE;
+
+@end
diff --git a/SmartDeviceLink/SDLDeliveryMode.m b/SmartDeviceLink/SDLDeliveryMode.m
new file mode 100644
index 000000000..f008987a5
--- /dev/null
+++ b/SmartDeviceLink/SDLDeliveryMode.m
@@ -0,0 +1,55 @@
+// SDLDeliveryMode.h
+//
+
+#import "SDLDeliveryMode.h"
+
+SDLDeliveryMode *SDLDeliveryMode_PROMPT = nil;
+SDLDeliveryMode *SDLDeliveryMode_DESTINATION = nil;
+SDLDeliveryMode *SDLDeliveryMode_QUEUE = nil;
+
+NSArray *SDLDeliveryMode_values = nil;
+
+@implementation SDLDeliveryMode
+
++ (SDLDeliveryMode *)valueOf:(NSString *)value {
+ for (SDLDeliveryMode *item in SDLDeliveryMode.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++ (NSArray *)values {
+ if (SDLDeliveryMode_values == nil) {
+ SDLDeliveryMode_values = @[
+ SDLDeliveryMode.PROMPT,
+ SDLDeliveryMode.DESTINATION,
+ SDLDeliveryMode.QUEUE,
+ ];
+ }
+ return SDLDeliveryMode_values;
+}
+
++ (SDLDeliveryMode *)PROMPT {
+ if (SDLDeliveryMode_PROMPT == nil) {
+ SDLDeliveryMode_PROMPT = [[SDLDeliveryMode alloc] initWithValue:@"PROMPT"];
+ }
+ return SDLDeliveryMode_PROMPT;
+}
+
++ (SDLDeliveryMode *)DESTINATION {
+ if (SDLDeliveryMode_DESTINATION == nil) {
+ SDLDeliveryMode_DESTINATION = [[SDLDeliveryMode alloc] initWithValue:@"DESTINATION"];
+ }
+ return SDLDeliveryMode_DESTINATION;
+}
+
++ (SDLDeliveryMode *)QUEUE {
+ if (SDLDeliveryMode_QUEUE == nil) {
+ SDLDeliveryMode_QUEUE = [[SDLDeliveryMode alloc] initWithValue:@"QUEUE"];
+ }
+ return SDLDeliveryMode_QUEUE;
+}
+
+@end
diff --git a/SmartDeviceLink/SDLDisplayType.h b/SmartDeviceLink/SDLDisplayType.h
index 3bb2f2b9a..a25590ecb 100644
--- a/SmartDeviceLink/SDLDisplayType.h
+++ b/SmartDeviceLink/SDLDisplayType.h
@@ -58,4 +58,6 @@
+ (SDLDisplayType *)GEN3_8_INCH;
++ (SDLDisplayType *)GENERIC;
+
@end
diff --git a/SmartDeviceLink/SDLDisplayType.m b/SmartDeviceLink/SDLDisplayType.m
index 8059aa54b..0c44413c0 100644
--- a/SmartDeviceLink/SDLDisplayType.m
+++ b/SmartDeviceLink/SDLDisplayType.m
@@ -14,6 +14,7 @@ SDLDisplayType *SDLDisplayType_MFD3 = nil;
SDLDisplayType *SDLDisplayType_MFD4 = nil;
SDLDisplayType *SDLDisplayType_MFD5 = nil;
SDLDisplayType *SDLDisplayType_GEN3_8_INCH = nil;
+SDLDisplayType *SDLDisplayType_GENERIC = nil;
NSArray *SDLDisplayType_values = nil;
@@ -41,6 +42,7 @@ NSArray *SDLDisplayType_values = nil;
SDLDisplayType.MFD4,
SDLDisplayType.MFD5,
SDLDisplayType.GEN3_8_INCH,
+ SDLDisplayType.GENERIC
];
}
return SDLDisplayType_values;
@@ -116,4 +118,11 @@ NSArray *SDLDisplayType_values = nil;
return SDLDisplayType_GEN3_8_INCH;
}
++ (SDLDisplayType *)GENERIC {
+ if (SDLDisplayType_GENERIC == nil) {
+ SDLDisplayType_GENERIC = [[SDLDisplayType alloc] initWithValue:@"SDL_GENERIC"];
+ }
+ return SDLDisplayType_GENERIC;
+}
+
@end
diff --git a/SmartDeviceLink/SDLFunctionID.m b/SmartDeviceLink/SDLFunctionID.m
index 802ee3df3..7390af3fc 100644
--- a/SmartDeviceLink/SDLFunctionID.m
+++ b/SmartDeviceLink/SDLFunctionID.m
@@ -11,7 +11,7 @@
- (instancetype)init {
if (self = [super init]) {
functionIDs = [NSDictionary dictionaryWithObjectsAndKeys:
- NAMES_reserved, @"0", NAMES_RegisterAppInterface, @"1", NAMES_UnregisterAppInterface, @"2", NAMES_SetGlobalProperties, @"3", NAMES_ResetGlobalProperties, @"4", NAMES_AddCommand, @"5", NAMES_DeleteCommand, @"6", NAMES_AddSubMenu, @"7", NAMES_DeleteSubMenu, @"8", NAMES_CreateInteractionChoiceSet, @"9", NAMES_PerformInteraction, @"10", NAMES_DeleteInteractionChoiceSet, @"11", NAMES_Alert, @"12", NAMES_Show, @"13", NAMES_Speak, @"14", NAMES_SetMediaClockTimer, @"15", NAMES_PerformAudioPassThru, @"16", NAMES_EndAudioPassThru, @"17", NAMES_SubscribeButton, @"18", NAMES_UnsubscribeButton, @"19", NAMES_SubscribeVehicleData, @"20", NAMES_UnsubscribeVehicleData, @"21", NAMES_GetVehicleData, @"22", NAMES_ReadDID, @"23", NAMES_GetDTCs, @"24", NAMES_ScrollableMessage, @"25", NAMES_Slider, @"26", NAMES_ShowConstantTBT, @"27", NAMES_AlertManeuver, @"28", NAMES_UpdateTurnList, @"29", NAMES_ChangeRegistration, @"30", NAMES_GenericResponse, @"31", NAMES_PutFile, @"32", NAMES_DeleteFile, @"33", NAMES_ListFiles, @"34", NAMES_SetAppIcon, @"35", NAMES_SetDisplayLayout, @"36", NAMES_DiagnosticMessage, @"37", NAMES_SystemRequest, @"38", NAMES_SendLocation, @"39", NAMES_DialNumber, @"40", NAMES_OnHMIStatus, @"32768", NAMES_OnAppInterfaceUnregistered, @"32769", NAMES_OnButtonEvent, @"32770", NAMES_OnButtonPress, @"32771", NAMES_OnVehicleData, @"32772", NAMES_OnCommand, @"32773", NAMES_OnTBTClientState, @"32774", NAMES_OnDriverDistraction, @"32775", NAMES_OnPermissionsChange, @"32776", NAMES_OnAudioPassThru, @"32777", NAMES_OnLanguageChange, @"32778", NAMES_OnKeyboardInput, @"32779", NAMES_OnTouchEvent, @"32780", NAMES_OnSystemRequest, @"32781", NAMES_OnHashChange, @"32782",
+ NAMES_reserved, @"0", NAMES_RegisterAppInterface, @"1", NAMES_UnregisterAppInterface, @"2", NAMES_SetGlobalProperties, @"3", NAMES_ResetGlobalProperties, @"4", NAMES_AddCommand, @"5", NAMES_DeleteCommand, @"6", NAMES_AddSubMenu, @"7", NAMES_DeleteSubMenu, @"8", NAMES_CreateInteractionChoiceSet, @"9", NAMES_PerformInteraction, @"10", NAMES_DeleteInteractionChoiceSet, @"11", NAMES_Alert, @"12", NAMES_Show, @"13", NAMES_Speak, @"14", NAMES_SetMediaClockTimer, @"15", NAMES_PerformAudioPassThru, @"16", NAMES_EndAudioPassThru, @"17", NAMES_SubscribeButton, @"18", NAMES_UnsubscribeButton, @"19", NAMES_SubscribeVehicleData, @"20", NAMES_UnsubscribeVehicleData, @"21", NAMES_GetVehicleData, @"22", NAMES_ReadDID, @"23", NAMES_GetDTCs, @"24", NAMES_ScrollableMessage, @"25", NAMES_Slider, @"26", NAMES_ShowConstantTBT, @"27", NAMES_AlertManeuver, @"28", NAMES_UpdateTurnList, @"29", NAMES_ChangeRegistration, @"30", NAMES_GenericResponse, @"31", NAMES_PutFile, @"32", NAMES_DeleteFile, @"33", NAMES_ListFiles, @"34", NAMES_SetAppIcon, @"35", NAMES_SetDisplayLayout, @"36", NAMES_DiagnosticMessage, @"37", NAMES_SystemRequest, @"38", NAMES_SendLocation, @"39", NAMES_DialNumber, @"40", NAMES_GetWaypoints, @"45", NAMES_SubscribeWaypoints, @"46", NAMES_UnsubscribeWaypoints, @"47", NAMES_OnHMIStatus, @"32768", NAMES_OnAppInterfaceUnregistered, @"32769", NAMES_OnButtonEvent, @"32770", NAMES_OnButtonPress, @"32771", NAMES_OnVehicleData, @"32772", NAMES_OnCommand, @"32773", NAMES_OnTBTClientState, @"32774", NAMES_OnDriverDistraction, @"32775", NAMES_OnPermissionsChange, @"32776", NAMES_OnAudioPassThru, @"32777", NAMES_OnLanguageChange, @"32778", NAMES_OnKeyboardInput, @"32779", NAMES_OnTouchEvent, @"32780", NAMES_OnSystemRequest, @"32781", NAMES_OnHashChange, @"32782", NAMES_OnWaypointChange, @"32784",
NAMES_EncodedSyncPData,
@"65536",
diff --git a/SmartDeviceLink/SDLGetWaypoints.h b/SmartDeviceLink/SDLGetWaypoints.h
new file mode 100644
index 000000000..e14ace9e5
--- /dev/null
+++ b/SmartDeviceLink/SDLGetWaypoints.h
@@ -0,0 +1,20 @@
+// SDLGetWaypoints.m
+//
+
+#import "SDLRPCRequest.h"
+
+@class SDLWaypointType;
+
+@interface SDLGetWaypoints : SDLRPCRequest
+
+- (instancetype)initWithType:(SDLWaypointType *)type;
+
+/**
+ * To request for either the destination
+ * only or for all waypoints including destination
+ *
+ * Required
+ */
+@property (strong, nonatomic) SDLWaypointType *waypointType;
+
+@end
diff --git a/SmartDeviceLink/SDLGetWaypoints.m b/SmartDeviceLink/SDLGetWaypoints.m
new file mode 100644
index 000000000..319f91e7f
--- /dev/null
+++ b/SmartDeviceLink/SDLGetWaypoints.m
@@ -0,0 +1,46 @@
+// SDLGetWaypoints.m
+//
+
+#import "SDLGetWaypoints.h"
+
+#import "SDLNames.h"
+#import "SDLWaypointType.h"
+
+@implementation SDLGetWaypoints
+
+- (instancetype)init {
+ if (self = [super initWithName:NAMES_GetWaypoints]) {
+ }
+ return self;
+}
+
+
+- (instancetype)initWithType:(SDLWaypointType *)type {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.waypointType = type;
+
+ return self;
+}
+
+- (void)setWaypointType:(SDLWaypointType *)waypointType {
+ if (waypointType != nil) {
+ parameters[NAMES_waypointType] = waypointType;
+ } else {
+ [parameters removeObjectForKey:NAMES_waypointType];
+ }
+}
+
+- (SDLWaypointType *)waypointType {
+ NSObject *obj = parameters[NAMES_waypointType];
+ if (obj == nil || [obj isKindOfClass:SDLWaypointType.class]) {
+ return (SDLWaypointType *)obj;
+ } else {
+ return [SDLWaypointType valueOf:(NSString *)obj];
+ }
+}
+
+@end
diff --git a/SmartDeviceLink/SDLGetWaypointsResponse.h b/SmartDeviceLink/SDLGetWaypointsResponse.h
new file mode 100644
index 000000000..94d449886
--- /dev/null
+++ b/SmartDeviceLink/SDLGetWaypointsResponse.h
@@ -0,0 +1,19 @@
+// SDLGetWaypointsResponse.h
+//
+
+#import "SDLRPCResponse.h"
+
+@class SDLLocationDetails;
+
+@interface SDLGetWaypointsResponse : SDLRPCResponse
+
+/**
+ * @abstract Array of waypoints
+ *
+ * @see SDLLocationDetails
+ *
+ * Optional, Array size 1 - 10
+ */
+@property (strong) NSArray<SDLLocationDetails *> *waypoints;
+
+@end
diff --git a/SmartDeviceLink/SDLGetWaypointsResponse.m b/SmartDeviceLink/SDLGetWaypointsResponse.m
new file mode 100644
index 000000000..9baa3b414
--- /dev/null
+++ b/SmartDeviceLink/SDLGetWaypointsResponse.m
@@ -0,0 +1,27 @@
+// SDLGetWaypointsResponse.m
+//
+
+#import "SDLGetWaypointsResponse.h"
+#import "SDLNames.h"
+
+@implementation SDLGetWaypointsResponse
+
+- (instancetype)init {
+ if (self = [super initWithName:NAMES_GetWaypoints]) {
+ }
+ return self;
+}
+
+- (void)setWaypoints:(NSArray<SDLLocationDetails *> *)waypoints {
+ if (waypoints != nil) {
+ parameters[NAMES_waypoints] = waypoints;
+ } else {
+ [parameters removeObjectForKey:NAMES_waypoints];
+ }
+}
+
+- (NSArray<SDLLocationDetails *> *)waypoints {
+ return parameters[NAMES_waypoints];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLLocationCoordinate.h b/SmartDeviceLink/SDLLocationCoordinate.h
new file mode 100644
index 000000000..dd2850f97
--- /dev/null
+++ b/SmartDeviceLink/SDLLocationCoordinate.h
@@ -0,0 +1,22 @@
+// SDLLocationCoordinate.h
+//
+
+#import "SDLRPCStruct.h"
+
+@interface SDLLocationCoordinate : SDLRPCStruct
+
+/**
+ * @abstract Latitude of the location
+ *
+ * Required, Double -90 - 90
+ */
+@property (copy, nonatomic) NSNumber<SDLFloat> *latitudeDegrees;
+
+/**
+ * @abstract Longitude of the location
+ *
+ * Required, Double -180 - 180
+ */
+@property (copy, nonatomic) NSNumber<SDLFloat> *longitudeDegrees;
+
+@end
diff --git a/SmartDeviceLink/SDLLocationCoordinate.m b/SmartDeviceLink/SDLLocationCoordinate.m
new file mode 100644
index 000000000..86a726078
--- /dev/null
+++ b/SmartDeviceLink/SDLLocationCoordinate.m
@@ -0,0 +1,33 @@
+// SDLLocationCoordinate.m
+//
+
+#import "SDLLocationCoordinate.h"
+#import "SDLNames.h"
+
+@implementation SDLLocationCoordinate
+
+- (void)setLongitudeDegrees:(NSNumber<SDLFloat> *)longitudeDegrees {
+ if (longitudeDegrees != nil) {
+ store[NAMES_longitudeDegrees] = longitudeDegrees;
+ } else {
+ [store removeObjectForKey:NAMES_longitudeDegrees];
+ }
+}
+
+- (NSNumber<SDLFloat> *)longitudeDegrees {
+ return store[NAMES_longitudeDegrees];
+}
+
+- (void)setLatitudeDegrees:(NSNumber<SDLFloat> *)latitudeDegrees {
+ if (latitudeDegrees != nil) {
+ store[NAMES_latitudeDegrees] = latitudeDegrees;
+ } else {
+ [store removeObjectForKey:NAMES_latitudeDegrees];
+ }
+}
+
+- (NSNumber<SDLFloat> *)latitudeDegrees {
+ return store[NAMES_latitudeDegrees];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLLocationDetails.h b/SmartDeviceLink/SDLLocationDetails.h
new file mode 100644
index 000000000..349a58265
--- /dev/null
+++ b/SmartDeviceLink/SDLLocationDetails.h
@@ -0,0 +1,68 @@
+// SDLLocationDetails.h
+//
+
+#import "SDLRPCStruct.h"
+
+@class SDLLocationCoordinate;
+@class SDLImage;
+@class SDLOasisAddress;
+
+@interface SDLLocationDetails : SDLRPCStruct
+
+/**
+ * @abstract Latitude/Longitude of the location
+ *
+ * @see SDLLocationCoordinate
+ *
+ * Optional
+ */
+@property (strong, nonatomic) SDLLocationCoordinate *coordinate;
+
+/**
+ * @abstract Name of location.
+ *
+ * Optional, Max length 500 chars
+ */
+@property (copy, nonatomic) NSString *locationName;
+
+/**
+ * @abstract Location address for display purposes only.
+ *
+ * Optional, Array of Strings, Array length 0 - 4, Max String length 500
+ */
+@property (copy, nonatomic) NSArray<NSString *> *addressLines;
+
+/**
+ * @abstract Description intended location / establishment.
+ *
+ * Optional, Max length 500 chars
+ */
+@property (copy, nonatomic) NSString *locationDescription;
+
+/**
+ * @abstract Phone number of location / establishment.
+ *
+ * Optional, Max length 500 chars
+ */
+@property (copy, nonatomic) NSString *phoneNumber;
+
+/**
+ * @abstract Image / icon of intended location.
+ *
+ * @see SDLImage
+ *
+ * Optional
+ */
+@property (strong, nonatomic) SDLImage *locationImage;
+
+/**
+ * @abstract Address to be used by navigation engines for search.
+ *
+ * @see SDLOASISAddress
+ *
+ * Optional
+ */
+@property (strong) SDLOasisAddress *searchAddress;
+
+
+@end
diff --git a/SmartDeviceLink/SDLLocationDetails.m b/SmartDeviceLink/SDLLocationDetails.m
new file mode 100644
index 000000000..b0c99bf55
--- /dev/null
+++ b/SmartDeviceLink/SDLLocationDetails.m
@@ -0,0 +1,97 @@
+// SDLLocationDetails.m
+//
+
+#import "SDLLocationDetails.h"
+
+#import "SDLLocationCoordinate.h"
+#import "SDLImage.h"
+#import "SDLNames.h"
+#import "SDLOasisAddress.h"
+
+@implementation SDLLocationDetails
+
+- (void)setCoordinate:(SDLLocationCoordinate *)coordinate {
+ if (coordinate != nil) {
+ store[NAMES_locationCoordinate] = coordinate;
+ } else {
+ [store removeObjectForKey:NAMES_locationCoordinate];
+ }
+}
+
+- (SDLLocationCoordinate *)coordinate {
+ return store[NAMES_locationCoordinate];
+}
+
+- (void)setLocationName:(NSString *)locationName {
+ if (locationName != nil) {
+ store[NAMES_locationName] = locationName;
+ } else {
+ [store removeObjectForKey:NAMES_locationName];
+ }
+}
+
+- (NSString *)locationName {
+ return store[NAMES_locationName];
+}
+
+- (void)setAddressLines:(NSArray<NSString *> *)addressLines {
+ if (addressLines != nil) {
+ store[NAMES_addressLines] = addressLines;
+ } else {
+ [store removeObjectForKey:NAMES_addressLines];
+ }
+}
+
+- (NSArray<NSString *> *)addressLines {
+ return store[NAMES_addressLines];
+}
+
+- (void)setLocationDescription:(NSString *)locationDescription {
+ if (locationDescription != nil) {
+ store[NAMES_locationDescription] = locationDescription;
+ } else {
+ [store removeObjectForKey:NAMES_locationDescription];
+ }
+}
+
+- (NSString *)locationDescription {
+ return store[NAMES_locationDescription];
+}
+
+- (void)setPhoneNumber:(NSString *)phoneNumber {
+ if (phoneNumber != nil) {
+ store[NAMES_phoneNumber] = phoneNumber;
+ } else {
+ [store removeObjectForKey:NAMES_phoneNumber];
+ }
+}
+
+- (NSString *)phoneNumber {
+ return store[NAMES_phoneNumber];
+}
+
+- (void)setLocationImage:(SDLImage *)locationImage {
+ if (locationImage != nil) {
+ store[NAMES_locationImage] = locationImage;
+ } else {
+ [store removeObjectForKey:NAMES_locationImage];
+ }
+}
+
+- (SDLImage *)locationImage {
+ return store[NAMES_locationImage];
+}
+
+- (void)setSearchAddress:(SDLOasisAddress *)searchAddress {
+ if (searchAddress != nil) {
+ store[NAMES_address] = searchAddress;
+ } else {
+ [store removeObjectForKey:NAMES_address];
+ }
+}
+
+- (SDLOasisAddress *)searchAddress {
+ return store[NAMES_address];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h
index d4adb7dc6..ffc8f19ba 100644
--- a/SmartDeviceLink/SDLNames.h
+++ b/SmartDeviceLink/SDLNames.h
@@ -5,8 +5,10 @@
#define NAMES_accPedalPosition @"accPedalPosition"
#define NAMES_actual @"actual"
#define NAMES_AddCommand @"AddCommand"
+#define NAMES_address @"address"
#define NAMES_addressLines @"addressLines"
#define NAMES_AddSubMenu @"AddSubMenu"
+#define NAMES_administrativeArea @"administrativeArea"
#define NAMES_airbagStatus @"airbagStatus"
#define NAMES_Alert @"Alert"
#define NAMES_AlertManeuver @"AlertManeuver"
@@ -57,15 +59,19 @@
#define NAMES_compassDirection @"compassDirection"
#define NAMES_correlationID @"correlationID"
#define NAMES_CreateInteractionChoiceSet @"CreateInteractionChoiceSet"
+#define NAMES_countryCode @"countryCode"
+#define NAMES_countryName @"countryName"
#define NAMES_customButtonID @"customButtonID"
#define NAMES_customPresets @"customPresets"
#define NAMES_data @"data"
#define NAMES_dataResult @"dataResult"
#define NAMES_dataType @"dataType"
+#define NAMES_day @"day"
#define NAMES_DeleteCommand @"DeleteCommand"
#define NAMES_DeleteFile @"DeleteFile"
#define NAMES_DeleteInteractionChoiceSet @"DeleteInteractionChoiceSet"
#define NAMES_DeleteSubMenu @"DeleteSubMenu"
+#define NAMES_deliveryMode @"deliveryMode"
#define NAMES_deviceInfo @"deviceInfo"
#define NAMES_deviceStatus @"deviceStatus"
#define NAMES_DiagnosticMessage @"DiagnosticMessage"
@@ -117,6 +123,7 @@
#define NAMES_GenericResponse @"GenericResponse"
#define NAMES_GetDTCs @"GetDTCs"
#define NAMES_GetVehicleData @"GetVehicleData"
+#define NAMES_GetWaypoints @"GetWayPoints"
#define NAMES_gps @"gps"
#define NAMES_graphic @"graphic"
#define NAMES_graphicSupported @"graphicSupported"
@@ -133,6 +140,7 @@
#define NAMES_hmiPermissions @"hmiPermissions"
#define NAMES_hmiCapabilities @"hmiCapabilities"
#define NAMES_hmiZoneCapabilities @"hmiZoneCapabilities"
+#define NAMES_hour @"hour"
#define NAMES_hours @"hours"
#define NAMES_id @"id"
#define NAMES_ignitionStableStatus @"ignitionStableStatus"
@@ -169,6 +177,8 @@
#define NAMES_length @"length"
#define NAMES_limitedCharacterList @"limitedCharacterList"
#define NAMES_ListFiles @"ListFiles"
+#define NAMES_locality @"locality"
+#define NAMES_locationCoordinate @"coordinate"
#define NAMES_locationDescription @"locationDescription"
#define NAMES_locationImage @"locationImage"
#define NAMES_locationName @"locationName"
@@ -202,11 +212,14 @@
#define NAMES_middleRow1BuckleBelted @"middleRow1BuckleBelted"
#define NAMES_middleRow2BuckleBelted @"middleRow2BuckleBelted"
#define NAMES_middleRow3BuckleBelted @"middleRow3BuckleBelted"
+#define NAMES_millisecond @"millisecond"
#define NAMES_minorVersion @"minorVersion"
+#define NAMES_minute @"minute"
#define NAMES_minutes @"minutes"
#define NAMES_model @"model"
#define NAMES_modelYear @"modelYear"
#define NAMES_monoAudioOutputMuted @"monoAudioOutputMuted"
+#define NAMES_month @"month"
#define NAMES_multipleEvents @"multipleEvents"
#define NAMES_multiTouchAvailable @"multiTouchAvailable"
#define NAMES_muteAudio @"muteAudio"
@@ -242,6 +255,7 @@
#define NAMES_OnTBTClientState @"OnTBTClientState"
#define NAMES_OnTouchEvent @"OnTouchEvent"
#define NAMES_OnVehicleData @"OnVehicleData"
+#define NAMES_OnWaypointChange @"OnWayPointChange"
#define NAMES_operation_name @"name"
#define NAMES_os @"os"
#define NAMES_osVersion @"osVersion"
@@ -267,6 +281,7 @@
#define NAMES_phoneRoaming @"phoneRoaming"
#define NAMES_playTone @"playTone"
#define NAMES_position @"position"
+#define NAMES_postalCode @"postalCode"
#define NAMES_powerModeActive @"powerModeActive"
#define NAMES_powerModeQualificationStatus @"powerModeQualificationStatus"
#define NAMES_powerModeStatus @"powerModeStatus"
@@ -313,6 +328,7 @@
#define NAMES_secondaryGraphic @"secondaryGraphic"
#define NAMES_secondaryImage @"secondaryImage"
#define NAMES_secondaryText @"secondaryText"
+#define NAMES_second @"second"
#define NAMES_seconds @"seconds"
#define NAMES_SendLocation @"SendLocation"
#define NAMES_SetAppIcon @"SetAppIcon"
@@ -342,9 +358,13 @@
#define NAMES_statusBar @"statusBar"
#define NAMES_steeringWheelAngle @"steeringWheelAngle"
#define NAMES_stereoAudioOutputMuted @"stereoAudioOutputMuted"
+#define NAMES_subAdministrativeArea @"subAdministrativeArea"
+#define NAMES_subLocality @"subLocality"
#define NAMES_Subscribe @"Subscribe"
#define NAMES_SubscribeButton @"SubscribeButton"
#define NAMES_SubscribeVehicleData @"SubscribeVehicleData"
+#define NAMES_SubscribeWaypoints @"SubscribeWayPoints"
+#define NAMES_subThoroughfare @"subThoroughfare"
#define NAMES_success @"success"
#define NAMES_supportedDiagModes @"supportedDiagModes"
#define NAMES_syncFileName @"syncFileName"
@@ -362,10 +382,14 @@
#define NAMES_text @"text"
#define NAMES_textFields @"textFields"
#define NAMES_textMsgAvailable @"textMsgAvailable"
+#define NAMES_thoroughfare @"thoroughfare"
#define NAMES_timeout @"timeout"
#define NAMES_Timeout @"Timeout"
#define NAMES_timeoutPrompt @"timeoutPrompt"
+#define NAMES_timeStamp @"timeStamp"
#define NAMES_timeToDestination @"timeToDestination"
+#define NAMES_timezoneHourOffset @"tz_hour"
+#define NAMES_timezoneMinuteOffset @"tz_minute"
#define NAMES_tirePressure @"tirePressure"
#define NAMES_totalDistance @"totalDistance"
#define NAMES_touchEventAvailable @"touchEventAvailable"
@@ -382,6 +406,7 @@
#define NAMES_Unsubscribe @"Unsubscribe"
#define NAMES_UnsubscribeButton @"UnsubscribeButton"
#define NAMES_UnsubscribeVehicleData @"UnsubscribeVehicleData"
+#define NAMES_UnsubscribeWaypoints @"UnsubscribeWayPoints"
#define NAMES_updateMode @"updateMode"
#define NAMES_UpdateTurnList @"UpdateTurnList"
#define NAMES_upDownAvailable @"upDownAvailable"
@@ -404,7 +429,10 @@
#define NAMES_vrHelp @"vrHelp"
#define NAMES_vrHelpTitle @"vrHelpTitle"
#define NAMES_vrSynonyms @"vrSynonyms"
+#define NAMES_waypoints @"wayPoints"
+#define NAMES_waypointType @"wayPointType"
#define NAMES_width @"width"
#define NAMES_wiperStatus @"wiperStatus"
#define NAMES_x @"x"
#define NAMES_y @"y"
+#define NAMES_year @"year"
diff --git a/SmartDeviceLink/SDLOasisAddress.h b/SmartDeviceLink/SDLOasisAddress.h
new file mode 100644
index 000000000..acc219ceb
--- /dev/null
+++ b/SmartDeviceLink/SDLOasisAddress.h
@@ -0,0 +1,75 @@
+// SDLOasisAddress.h
+//
+
+#import "SDLRPCStruct.h"
+
+@interface SDLOasisAddress : SDLRPCStruct
+
+- (instancetype)initWithSubThoroughfare:(NSString*)subThoroughfare thoroughfare:(NSString*)thoroughfare locality:(NSString*)locality administrativeArea:(NSString*)administrativeArea postalCode:(NSString*)postalCode countryCode:(NSString*)countryCode;
+
+- (instancetype)initWithSubThoroughfare:(NSString*)subThoroughfare thoroughfare:(NSString*)thoroughfare locality:(NSString*)locality administrativeArea:(NSString*)administrativeArea postalCode:(NSString*)postalCode countryCode:(NSString*)countryCode countryName:(NSString*)countryName subAdministrativeArea:(NSString*)subAdministrativeArea subLocality:(NSString*)subLocality;
+
+/**
+ * @abstract Name of the country (localized)
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *countryName;
+
+/**
+ * @abstract countryCode of the country(ISO 3166-2)
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *countryCode;
+
+/**
+ * @abstract postalCode of location (PLZ, ZIP, PIN, CAP etc.)
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *postalCode;
+
+/**
+ * @abstract Portion of country (e.g. state)
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *administrativeArea;
+
+/**
+ * @abstract Portion of administrativeArea (e.g. county)
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *subAdministrativeArea;
+
+/**
+ * @abstract Hypernym for city/village
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *locality;
+
+/**
+ * @abstract Hypernym for district
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *subLocality;
+
+/**
+ * @abstract Hypernym for street, road etc.
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *thoroughfare;
+
+/**
+ * @abstract Portion of thoroughfare (e.g. house number)
+ *
+ * Optional, max length = 200
+ */
+@property (copy, nonatomic) NSString *subThoroughfare;
+
+@end
diff --git a/SmartDeviceLink/SDLOasisAddress.m b/SmartDeviceLink/SDLOasisAddress.m
new file mode 100644
index 000000000..f674fef86
--- /dev/null
+++ b/SmartDeviceLink/SDLOasisAddress.m
@@ -0,0 +1,141 @@
+// SDLOasisAddress.m
+//
+
+#import "SDLOasisAddress.h"
+#import "SDLNames.h"
+
+@implementation SDLOasisAddress
+
+- (instancetype)initWithSubThoroughfare:(NSString*)subThoroughfare thoroughfare:(NSString*)thoroughfare locality:(NSString*)locality administrativeArea:(NSString*)administrativeArea postalCode:(NSString*)postalCode countryCode:(NSString*)countryCode {
+ return [self initWithSubThoroughfare:subThoroughfare thoroughfare:thoroughfare locality:locality administrativeArea:administrativeArea postalCode:postalCode countryCode:countryCode countryName:nil subAdministrativeArea:nil subLocality:nil];
+}
+
+- (instancetype)initWithSubThoroughfare:(NSString*)subThoroughfare thoroughfare:(NSString*)thoroughfare locality:(NSString*)locality administrativeArea:(NSString*)administrativeArea postalCode:(NSString*)postalCode countryCode:(NSString*)countryCode countryName:(NSString*)countryName subAdministrativeArea:(NSString*)subAdministrativeArea subLocality:(NSString*)subLocality {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.subThoroughfare = subThoroughfare;
+ self.thoroughfare = thoroughfare;
+ self.locality = locality;
+ self.administrativeArea = administrativeArea;
+ self.postalCode = postalCode;
+ self.countryCode = countryCode;
+ self.countryName = countryName;
+ self.subAdministrativeArea = subAdministrativeArea;
+ self.subLocality = subLocality;
+
+ return self;
+}
+
+
+- (void)setCountryName:(NSString *)countryName {
+ if (countryName != nil) {
+ store[NAMES_countryName] = countryName;
+ } else {
+ [store removeObjectForKey:NAMES_countryName];
+ }
+}
+
+- (NSString *)countryName {
+ return store[NAMES_countryName];
+}
+
+- (void)setCountryCode:(NSString *)countryCode {
+ if (countryCode != nil) {
+ store[NAMES_countryCode] = countryCode;
+ } else {
+ [store removeObjectForKey:NAMES_countryCode];
+ }
+}
+
+- (NSString *)countryCode {
+ return store[NAMES_countryCode];
+}
+
+- (void)setPostalCode:(NSString *)postalCode {
+ if (postalCode != nil) {
+ store[NAMES_postalCode] = postalCode;
+ } else {
+ [store removeObjectForKey:NAMES_postalCode];
+ }
+}
+
+- (NSString *)postalCode {
+ return store[NAMES_postalCode];
+}
+
+- (void)setAdministrativeArea:(NSString *)administrativeArea {
+ if (administrativeArea != nil) {
+ store[NAMES_administrativeArea] = administrativeArea;
+ } else {
+ [store removeObjectForKey:NAMES_administrativeArea];
+ }
+}
+
+- (NSString *)administrativeArea {
+ return store[NAMES_administrativeArea];
+}
+
+- (void)setSubAdministrativeArea:(NSString *)subAdministrativeArea {
+ if (subAdministrativeArea != nil) {
+ store[NAMES_subAdministrativeArea] = subAdministrativeArea;
+ } else {
+ [store removeObjectForKey:NAMES_subAdministrativeArea];
+ }
+}
+
+- (NSString *)subAdministrativeArea {
+ return store[NAMES_subAdministrativeArea];
+}
+
+- (void)setLocality:(NSString *)locality {
+ if (locality != nil) {
+ store[NAMES_locality] = locality;
+ } else {
+ [store removeObjectForKey:NAMES_locality];
+ }
+}
+
+- (NSString *)locality {
+ return store[NAMES_locality];
+}
+
+- (void)setSubLocality:(NSString *)subLocality {
+ if (subLocality != nil) {
+ store[NAMES_subLocality] = subLocality;
+ } else {
+ [store removeObjectForKey:NAMES_subLocality];
+ }
+}
+
+- (NSString *)subLocality {
+ return store[NAMES_subLocality];
+}
+
+- (void)setThoroughfare:(NSString *)thoroughfare {
+ if (thoroughfare != nil) {
+ store[NAMES_thoroughfare] = thoroughfare;
+ } else {
+ [store removeObjectForKey:NAMES_thoroughfare];
+ }
+}
+
+- (NSString *)thoroughfare {
+ return store[NAMES_thoroughfare];
+}
+
+- (void)setSubThoroughfare:(NSString *)subThoroughfare {
+ if (subThoroughfare != nil) {
+ store[NAMES_subThoroughfare] = subThoroughfare;
+ } else {
+ [store removeObjectForKey:NAMES_subThoroughfare];
+ }
+}
+
+- (NSString *)subThoroughfare {
+ return store[NAMES_subThoroughfare];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLOnWaypointChange.h b/SmartDeviceLink/SDLOnWaypointChange.h
new file mode 100644
index 000000000..fb7daabd3
--- /dev/null
+++ b/SmartDeviceLink/SDLOnWaypointChange.h
@@ -0,0 +1,17 @@
+// SDLOnWaypointChange.h
+//
+
+#import "SDLRPCNotification.h"
+
+@class SDLLocationDetails;
+
+@interface SDLOnWaypointChange : SDLRPCNotification
+
+/**
+ * @abstract Location address for display purposes only.
+ *
+ * Required, Array of Strings, Array size 1 - 10
+ */
+@property (copy, nonatomic) NSArray<SDLLocationDetails *> *waypoints;
+
+@end
diff --git a/SmartDeviceLink/SDLOnWaypointChange.m b/SmartDeviceLink/SDLOnWaypointChange.m
new file mode 100644
index 000000000..7fb77369a
--- /dev/null
+++ b/SmartDeviceLink/SDLOnWaypointChange.m
@@ -0,0 +1,28 @@
+// SDLOnWaypointChange.m
+//
+
+#import "SDLOnWaypointChange.h"
+
+#import "SDLNames.h"
+
+@implementation SDLOnWaypointChange
+
+- (instancetype)init {
+ if (self = [super initWithName:NAMES_OnWaypointChange]) {
+ }
+ return self;
+}
+
+- (void)setWaypoints:(NSArray<SDLLocationDetails *> *)waypoints {
+ if (waypoints != nil) {
+ parameters[NAMES_waypoints] = waypoints;
+ } else {
+ [parameters removeObjectForKey:NAMES_waypoints];
+ }
+}
+
+- (NSArray<SDLLocationDetails *> *)waypoints {
+ return parameters[NAMES_waypoints];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLProtocolHeader.m b/SmartDeviceLink/SDLProtocolHeader.m
index f0293f420..65e025c61 100644
--- a/SmartDeviceLink/SDLProtocolHeader.m
+++ b/SmartDeviceLink/SDLProtocolHeader.m
@@ -65,4 +65,4 @@
}
}
-@end \ No newline at end of file
+@end
diff --git a/SmartDeviceLink/SDLSendLocation.h b/SmartDeviceLink/SDLSendLocation.h
index 0b7a77a19..0cdb492fd 100644
--- a/SmartDeviceLink/SDLSendLocation.h
+++ b/SmartDeviceLink/SDLSendLocation.h
@@ -2,33 +2,34 @@
// SDLSendLocation.h
// SmartDeviceLink
+#import "SDLRPCRequest.h"
+
#import <CoreGraphics/CGBase.h>
-#import <Foundation/Foundation.h>
+#import "SDLDateTime.h"
+#import "SDLDeliveryMode.h"
#import "SDLImage.h"
-#import "SDLRPCRequest.h"
-
+#import "SDLOasisAddress.h"
@interface SDLSendLocation : SDLRPCRequest
-- (instancetype)init;
-- (instancetype)initWithDictionary:(NSMutableDictionary *)dict;
+- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray<NSString *> *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image;
-- (instancetype)initWithLongitude:(CGFloat)longitude latitude:(CGFloat)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray<NSString *> *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image;
+- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription displayAddressLines:(NSArray<NSString *> *)displayAddressLines phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image deliveryMode:(SDLDeliveryMode *)deliveryMode timeStamp:(SDLDateTime *)timeStamp address:(SDLOasisAddress*)address;
/**
* The longitudinal coordinate of the location.
*
* Float, Required, -180.0 - 180.0
*/
-@property (copy, nonatomic) NSNumber *longitudeDegrees;
+@property (copy, nonatomic) NSNumber<SDLFloat> *longitudeDegrees;
/**
* The latitudinal coordinate of the location.
*
* Float, Required, -90.0 - 90.0
*/
-@property (copy, nonatomic) NSNumber *latitudeDegrees;
+@property (copy, nonatomic) NSNumber<SDLFloat> *latitudeDegrees;
/**
* Name / title of intended location
@@ -45,11 +46,11 @@
@property (copy, nonatomic) NSString *locationDescription;
/**
- * Array of lines for the location address
+ * Location address for display purposes only
*
* Contains String, Optional, Max Array Length = 4, Max String Length = 500
*/
-@property (copy, nonatomic) NSArray *addressLines;
+@property (copy, nonatomic) NSArray<NSString *> *addressLines;
/**
* Phone number of intended location / establishment
@@ -65,4 +66,25 @@
*/
@property (strong, nonatomic) SDLImage *locationImage;
+/**
+ * Mode in which the sendLocation request is sent
+ *
+ * Optional
+ */
+@property (strong, nonatomic) SDLDeliveryMode *deliveryMode;
+
+/**
+ * Arrival time of Location. If multiple SendLocations are sent, this will be used for sorting as well.
+ *
+ * Optional
+ */
+@property (strong, nonatomic) SDLDateTime *timeStamp;
+
+/**
+ * Address to be used for setting destination
+ *
+ * Optional
+ */
+@property (strong, nonatomic) SDLOasisAddress *address;
+
@end
diff --git a/SmartDeviceLink/SDLSendLocation.m b/SmartDeviceLink/SDLSendLocation.m
index 83a420ccc..6cd5787bb 100644
--- a/SmartDeviceLink/SDLSendLocation.m
+++ b/SmartDeviceLink/SDLSendLocation.m
@@ -18,33 +18,31 @@
return self;
}
-- (instancetype)initWithDictionary:(NSMutableDictionary *)dict {
- self = [super initWithDictionary:dict];
- if (!self) {
- return nil;
- }
-
- return self;
+- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray<NSString *> *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image {
+ return [self initWithLongitude:longitude latitude:latitude locationName:locationName locationDescription:locationDescription displayAddressLines:address phoneNumber:phoneNumber image:image deliveryMode:nil timeStamp:nil address:nil];
}
-- (instancetype)initWithLongitude:(CGFloat)longitude latitude:(CGFloat)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription address:(NSArray *)address phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image {
+- (instancetype)initWithLongitude:(double)longitude latitude:(double)latitude locationName:(NSString *)locationName locationDescription:(NSString *)locationDescription displayAddressLines:(NSArray<NSString *> *)displayAddressLines phoneNumber:(NSString *)phoneNumber image:(SDLImage *)image deliveryMode:(SDLDeliveryMode *)deliveryMode timeStamp:(SDLDateTime *)timeStamp address:(SDLOasisAddress*)address {
self = [self init];
if (!self) {
return nil;
}
-
+
self.longitudeDegrees = @(longitude);
self.latitudeDegrees = @(latitude);
self.locationName = locationName;
self.locationDescription = locationDescription;
- self.addressLines = address;
+ self.addressLines = displayAddressLines;
self.phoneNumber = phoneNumber;
self.locationImage = image;
-
+ self.deliveryMode = deliveryMode;
+ self.timeStamp = timeStamp;
+ self.address = address;
+
return self;
}
-- (void)setLongitudeDegrees:(NSNumber *)longitudeDegrees {
+- (void)setLongitudeDegrees:(NSNumber<SDLFloat> *)longitudeDegrees {
if (longitudeDegrees != nil) {
parameters[NAMES_longitudeDegrees] = longitudeDegrees;
} else {
@@ -52,11 +50,11 @@
}
}
-- (NSNumber *)longitudeDegrees {
+- (NSNumber<SDLFloat> *)longitudeDegrees {
return parameters[NAMES_longitudeDegrees];
}
-- (void)setLatitudeDegrees:(NSNumber *)latitudeDegrees {
+- (void)setLatitudeDegrees:(NSNumber<SDLFloat> *)latitudeDegrees {
if (latitudeDegrees != nil) {
parameters[NAMES_latitudeDegrees] = latitudeDegrees;
} else {
@@ -64,7 +62,7 @@
}
}
-- (NSNumber *)latitudeDegrees {
+- (NSNumber<SDLFloat> *)latitudeDegrees {
return parameters[NAMES_latitudeDegrees];
}
@@ -133,4 +131,55 @@
}
}
+- (void)setDeliveryMode:(SDLDeliveryMode *)deliveryMode {
+ if (deliveryMode != nil) {
+ parameters[NAMES_deliveryMode] = deliveryMode;
+ } else {
+ [parameters removeObjectForKey:NAMES_deliveryMode];
+ }
+}
+
+- (SDLDeliveryMode *)deliveryMode {
+ NSObject *obj = [parameters objectForKey:NAMES_deliveryMode];
+ if (obj == nil || [obj isKindOfClass:SDLDeliveryMode.class]) {
+ return (SDLDeliveryMode *)obj;
+ } else {
+ return [SDLDeliveryMode valueOf:(NSString *)obj];
+ }
+}
+
+- (void)setTimeStamp:(SDLDateTime *)timeStamp {
+ if (timeStamp != nil) {
+ parameters[NAMES_timeStamp] = timeStamp;
+ } else {
+ [parameters removeObjectForKey:NAMES_timeStamp];
+ }
+}
+
+- (SDLDateTime *)timeStamp {
+ id obj = parameters[NAMES_timeStamp];
+ if (obj == nil || [obj isKindOfClass:[SDLDateTime class]]) {
+ return (SDLDateTime *)obj;
+ } else {
+ return [[SDLDateTime alloc] initWithDictionary:obj];
+ }
+}
+
+- (void)setAddress:(SDLOasisAddress *)address {
+ if (address != nil) {
+ parameters[NAMES_address] = address;
+ } else {
+ [parameters removeObjectForKey:NAMES_address];
+ }
+}
+
+- (SDLOasisAddress *)address {
+ id obj = [parameters objectForKey:NAMES_address];
+ if (obj == nil || [obj isKindOfClass:[SDLOasisAddress class]]) {
+ return (SDLOasisAddress *)obj;
+ } else {
+ return [[SDLOasisAddress alloc] initWithDictionary:obj];
+ }
+}
+
@end
diff --git a/SmartDeviceLink/SDLSubscribeWaypoints.h b/SmartDeviceLink/SDLSubscribeWaypoints.h
new file mode 100644
index 000000000..b5127d00e
--- /dev/null
+++ b/SmartDeviceLink/SDLSubscribeWaypoints.h
@@ -0,0 +1,16 @@
+// SDLSubscribeWaypoints.h
+//
+
+#import "SDLRPCRequest.h"
+
+/**
+* A SDLSubscribeWaypoints can be sent to subscribe
+* for any changes in waypoints/destinations
+*
+* @see SDLUnsubscribeWaypoints
+*
+*/
+
+@interface SDLSubscribeWaypoints : SDLRPCRequest
+
+@end
diff --git a/SmartDeviceLink/SDLSubscribeWaypoints.m b/SmartDeviceLink/SDLSubscribeWaypoints.m
new file mode 100644
index 000000000..8c22da383
--- /dev/null
+++ b/SmartDeviceLink/SDLSubscribeWaypoints.m
@@ -0,0 +1,15 @@
+// SDLSubscribeWaypoints.m
+//
+
+#import "SDLSubscribeWaypoints.h"
+#import "SDLNames.h"
+
+@implementation SDLSubscribeWaypoints
+
+- (instancetype)init {
+ if (self = [super initWithName:NAMES_SubscribeWaypoints]) {
+ }
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink/SDLSubscribeWaypointsResponse.h b/SmartDeviceLink/SDLSubscribeWaypointsResponse.h
new file mode 100644
index 000000000..9d4cfd967
--- /dev/null
+++ b/SmartDeviceLink/SDLSubscribeWaypointsResponse.h
@@ -0,0 +1,8 @@
+// SDLSubscribeWaypointsResponse.h
+//
+
+#import "SDLRPCResponse.h"
+
+@interface SDLSubscribeWaypointsResponse : SDLRPCResponse
+
+@end
diff --git a/SmartDeviceLink/SDLSubscribeWaypointsResponse.m b/SmartDeviceLink/SDLSubscribeWaypointsResponse.m
new file mode 100644
index 000000000..e3e827952
--- /dev/null
+++ b/SmartDeviceLink/SDLSubscribeWaypointsResponse.m
@@ -0,0 +1,15 @@
+// SDLSubscribeWaypointsResponse.m
+//
+
+#import "SDLSubscribeWaypointsResponse.h"
+#import "SDLNames.h"
+
+@implementation SDLSubscribeWaypointsResponse
+
+- (instancetype)init {
+ if (self = [super initWithName:NAMES_SubscribeVehicleData]) {
+ }
+ return self;
+}
+
+@end
diff --git a/SmartDeviceLink/SDLUnsubscribeWaypoints.h b/SmartDeviceLink/SDLUnsubscribeWaypoints.h
new file mode 100644
index 000000000..ff7b15296
--- /dev/null
+++ b/SmartDeviceLink/SDLUnsubscribeWaypoints.h
@@ -0,0 +1,8 @@
+// SDLUnsubscribeWaypoints.h
+//
+
+#import "SDLRPCRequest.h"
+
+@interface SDLUnsubscribeWaypoints : SDLRPCRequest
+
+@end
diff --git a/SmartDeviceLink/SDLUnsubscribeWaypoints.m b/SmartDeviceLink/SDLUnsubscribeWaypoints.m
new file mode 100644
index 000000000..9d68ed50e
--- /dev/null
+++ b/SmartDeviceLink/SDLUnsubscribeWaypoints.m
@@ -0,0 +1,8 @@
+// SDLUnsubscribeWaypoints.m
+//
+
+#import "SDLUnsubscribeWaypoints.h"
+
+@implementation SDLUnsubscribeWaypoints
+
+@end
diff --git a/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h b/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h
new file mode 100644
index 000000000..e64cc2d73
--- /dev/null
+++ b/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.h
@@ -0,0 +1,8 @@
+// SDLUnsubscribeWaypointsResponse.m
+//
+
+#import "SDLRPCResponse.h"
+
+@interface SDLUnsubscribeWaypointsResponse : SDLRPCResponse
+
+@end
diff --git a/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.m b/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.m
new file mode 100644
index 000000000..98d8c0b28
--- /dev/null
+++ b/SmartDeviceLink/SDLUnsubscribeWaypointsResponse.m
@@ -0,0 +1,8 @@
+// SDLUnsubscribeWaypointsResponse.m
+//
+
+#import "SDLUnsubscribeWaypointsResponse.h"
+
+@implementation SDLUnsubscribeWaypointsResponse
+
+@end
diff --git a/SmartDeviceLink/SDLUploadFileOperation.m b/SmartDeviceLink/SDLUploadFileOperation.m
index a88b9a0c2..aa9474972 100644
--- a/SmartDeviceLink/SDLUploadFileOperation.m
+++ b/SmartDeviceLink/SDLUploadFileOperation.m
@@ -98,10 +98,6 @@ NS_ASSUME_NONNULL_BEGIN
stop = YES;
streamError = error;
- if (completion != nil) {
- completion(NO, 0, error);
- }
-
dispatch_group_leave(putFileGroup);
BLOCK_RETURN;
}
diff --git a/SmartDeviceLink/SDLWaypointType.h b/SmartDeviceLink/SDLWaypointType.h
new file mode 100644
index 000000000..85e0616e0
--- /dev/null
+++ b/SmartDeviceLink/SDLWaypointType.h
@@ -0,0 +1,36 @@
+// SDLWaypointType.h
+//
+
+#import "SDLEnum.h"
+
+@interface SDLWaypointType : SDLEnum
+
+/**
+ * @abstract Convert String to SDLWayPointType
+ *
+ * @param value The value of the string to get an object for
+ *
+ * @return SDLWayPointType
+ */
++ (SDLWaypointType *)valueOf:(NSString *)value;
+
+/**
+ * @abstract Store the enumeration of all possible SDLWayPointType
+ *
+ * @return an array that store all possible SDLWayPointType
+ */
++ (NSArray *)values;
+
+/**
+ *
+ * @return a SDLWayPointType with value of *PROMPT*
+ */
++ (SDLWaypointType *)ALL;
+
+/**
+ *
+ * @return a SDLWayPointType with value of *DESTINATION*
+ */
++ (SDLWaypointType *)DESTINATION;
+
+@end
diff --git a/SmartDeviceLink/SDLWaypointType.m b/SmartDeviceLink/SDLWaypointType.m
new file mode 100644
index 000000000..314a47f56
--- /dev/null
+++ b/SmartDeviceLink/SDLWaypointType.m
@@ -0,0 +1,46 @@
+// SDLWaypointType.m
+//
+
+#import "SDLWaypointType.h"
+
+SDLWaypointType *SDLWaypointType_ALL = nil;
+SDLWaypointType *SDLWaypointType_DESTINATION = nil;
+
+NSArray *SDLWaypointType_values = nil;
+
+@implementation SDLWaypointType
+
++ (SDLWaypointType *)valueOf:(NSString *)value {
+ for (SDLWaypointType *item in SDLWaypointType.values) {
+ if ([item.value isEqualToString:value]) {
+ return item;
+ }
+ }
+ return nil;
+}
+
++ (NSArray *)values {
+ if (SDLWaypointType_values == nil) {
+ SDLWaypointType_values = @[
+ SDLWaypointType.ALL,
+ SDLWaypointType.DESTINATION,
+ ];
+ }
+ return SDLWaypointType_values;
+}
+
++ (SDLWaypointType *)ALL {
+ if (SDLWaypointType_ALL == nil) {
+ SDLWaypointType_ALL = [[SDLWaypointType alloc] initWithValue:@"ALL"];
+ }
+ return SDLWaypointType_ALL;
+}
+
++ (SDLWaypointType *)DESTINATION {
+ if (SDLWaypointType_DESTINATION == nil) {
+ SDLWaypointType_DESTINATION = [[SDLWaypointType alloc] initWithValue:@"DESTINATION"];
+ }
+ return SDLWaypointType_DESTINATION;
+}
+
+@end
diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h
index 176bee596..d3bab7209 100644
--- a/SmartDeviceLink/SmartDeviceLink.h
+++ b/SmartDeviceLink/SmartDeviceLink.h
@@ -75,6 +75,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLEndAudioPassThru.h"
#import "SDLGetDTCs.h"
#import "SDLGetVehicleData.h"
+#import "SDLGetWaypoints.h"
#import "SDLListFiles.h"
#import "SDLPerformAudioPassThru.h"
#import "SDLPerformInteraction.h"
@@ -94,10 +95,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSpeak.h"
#import "SDLSubscribeButton.h"
#import "SDLSubscribeVehicleData.h"
+#import "SDLSubscribeWaypoints.h"
#import "SDLSyncPData.h"
#import "SDLUnregisterAppInterface.h"
#import "SDLUnsubscribeButton.h"
#import "SDLUnsubscribeVehicleData.h"
+#import "SDLUnsubscribeWaypoints.h"
#import "SDLUpdateTurnList.h"
// Responses
@@ -118,6 +121,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLGenericResponse.h"
#import "SDLGetDTCsResponse.h"
#import "SDLGetVehicleDataResponse.h"
+#import "SDLGetWaypointsResponse.h"
#import "SDLListFilesResponse.h"
#import "SDLPerformAudioPassThruResponse.h"
#import "SDLPerformInteractionResponse.h"
@@ -137,10 +141,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSpeakResponse.h"
#import "SDLSubscribeButtonResponse.h"
#import "SDLSubscribeVehicleDataResponse.h"
+#import "SDLSubscribeWaypointsResponse.h"
#import "SDLSyncPDataResponse.h"
#import "SDLUnregisterAppInterfaceResponse.h"
#import "SDLUnsubscribeButtonResponse.h"
#import "SDLUnsubscribeVehicleDataResponse.h"
+#import "SDLUnsubscribeWaypointsResponse.h"
#import "SDLUpdateTurnListResponse.h"
// Notifications
@@ -162,6 +168,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLOnTBTClientState.h"
#import "SDLOnTouchEvent.h"
#import "SDLOnVehicleData.h"
+#import "SDLOnWaypointChange.h"
// Structs
#import "SDLAirbagStatus.h"
@@ -172,6 +179,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLButtonCapabilities.h"
#import "SDLChoice.h"
#import "SDLClusterModeStatus.h"
+#import "SDLDateTime.h"
#import "SDLDIDResult.h"
#import "SDLDeviceInfo.h"
#import "SDLDeviceStatus.h"
@@ -186,6 +194,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLImageField.h"
#import "SDLImageResolution.h"
#import "SDLKeyboardProperties.h"
+#import "SDLLocationCoordinate.h"
+#import "SDLLocationDetails.h"
#import "SDLMenuParams.h"
#import "SDLMyKey.h"
#import "SDLParameterPermissions.h"
@@ -222,6 +232,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLCharacterSet.h"
#import "SDLCompassDirection.h"
#import "SDLComponentVolumeStatus.h"
+#import "SDLDeliveryMode.h"
#import "SDLDeviceLevelStatus.h"
#import "SDLDimension.h"
#import "SDLDisplayType.h"
@@ -276,6 +287,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLVehicleDataStatus.h"
#import "SDLVehicleDataType.h"
#import "SDLWarningLightStatus.h"
+#import "SDLWaypointType.h"
#import "SDLWiperStatus.h"
// Developer API
diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m
index eff1ae3b2..6dc041d2b 100644
--- a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m
+++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m
@@ -57,6 +57,9 @@ describe(@"GetFunctionName Tests", ^ {
expect([functionID getFunctionName:38]).to(equal(NAMES_SystemRequest));
expect([functionID getFunctionName:39]).to(equal(NAMES_SendLocation));
expect([functionID getFunctionName:40]).to(equal(NAMES_DialNumber));
+ expect([functionID getFunctionName:45]).to(equal(NAMES_GetWaypoints));
+ expect([functionID getFunctionName:46]).to(equal(NAMES_SubscribeWaypoints));
+ expect([functionID getFunctionName:47]).to(equal(NAMES_UnsubscribeWaypoints));
expect([functionID getFunctionName:32768]).to(equal(NAMES_OnHMIStatus));
expect([functionID getFunctionName:32769]).to(equal(NAMES_OnAppInterfaceUnregistered));
expect([functionID getFunctionName:32770]).to(equal(NAMES_OnButtonEvent));
@@ -72,6 +75,7 @@ describe(@"GetFunctionName Tests", ^ {
expect([functionID getFunctionName:32780]).to(equal(NAMES_OnTouchEvent));
expect([functionID getFunctionName:32781]).to(equal(NAMES_OnSystemRequest));
expect([functionID getFunctionName:32782]).to(equal(NAMES_OnHashChange));
+ expect([functionID getFunctionName:32784]).to(equal(NAMES_OnWaypointChange));
//Not listed in Spec
expect([functionID getFunctionName:65536]).to(equal(NAMES_EncodedSyncPData));
@@ -124,6 +128,10 @@ describe(@"GetFunctionID Tests", ^ {
expect([functionID getFunctionID:NAMES_SystemRequest]).to(equal(@38));
expect([functionID getFunctionID:NAMES_SendLocation]).to(equal(@39));
expect([functionID getFunctionID:NAMES_DialNumber]).to(equal(@40));
+ expect([functionID getFunctionID:NAMES_GetWaypoints]).to(equal(@45));
+ expect([functionID getFunctionID:NAMES_SubscribeWaypoints]).to(equal(@46));
+ expect([functionID getFunctionID:NAMES_UnsubscribeWaypoints]).to(equal(@47));
+
expect([functionID getFunctionID:NAMES_OnHMIStatus]).to(equal(@32768));
expect([functionID getFunctionID:NAMES_OnAppInterfaceUnregistered]).to(equal(@32769));
expect([functionID getFunctionID:NAMES_OnButtonEvent]).to(equal(@32770));
@@ -139,6 +147,7 @@ describe(@"GetFunctionID Tests", ^ {
expect([functionID getFunctionID:NAMES_OnTouchEvent]).to(equal(@32780));
expect([functionID getFunctionID:NAMES_OnSystemRequest]).to(equal(@32781));
expect([functionID getFunctionID:NAMES_OnHashChange]).to(equal(@32782));
+ expect([functionID getFunctionID:NAMES_OnWaypointChange]).to(equal(@32784));
//Not listed in Spec
expect([functionID getFunctionID:NAMES_EncodedSyncPData]).to(equal(@65536));
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m
index c5259da1d..cd1530951 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLAmbientLightStatusSpec.m
@@ -68,4 +68,4 @@ describe(@"Value List Tests", ^ {
});
});
-QuickSpecEnd \ No newline at end of file
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m
new file mode 100644
index 000000000..c569c5ff5
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDeliveryModeSpec.m
@@ -0,0 +1,55 @@
+// SDLDeliverModeSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLDeliveryMode.h"
+
+QuickSpecBegin(SDLDeliveryModeSpec)
+
+describe(@"Individual Enum Value Tests", ^ {
+ it(@"Should match internal values", ^ {
+ expect([SDLDeliveryMode PROMPT].value).to(equal(@"PROMPT"));
+ expect([SDLDeliveryMode DESTINATION].value).to(equal(@"DESTINATION"));
+ expect([SDLDeliveryMode QUEUE].value).to(equal(@"QUEUE"));
+ });
+});
+describe(@"ValueOf Tests", ^ {
+ it(@"Should return correct values when valid", ^ {
+ expect([SDLDeliveryMode valueOf:@"PROMPT"]).to(equal([SDLDeliveryMode PROMPT]));
+ expect([SDLDeliveryMode valueOf:@"DESTINATION"]).to(equal([SDLDeliveryMode DESTINATION]));
+ expect([SDLDeliveryMode valueOf:@"QUEUE"]).to(equal([SDLDeliveryMode QUEUE]));
+ });
+
+ it(@"Should return nil when invalid", ^ {
+ expect([SDLDeliveryMode valueOf:nil]).to(beNil());
+ expect([SDLDeliveryMode valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil());
+ });
+});
+describe(@"Value List Tests", ^ {
+ NSArray* storedValues = [SDLDeliveryMode values];
+ __block NSArray* definedValues;
+ beforeSuite(^ {
+ definedValues = [@[[SDLDeliveryMode PROMPT],
+ [SDLDeliveryMode DESTINATION],
+ [SDLDeliveryMode QUEUE],
+ ] copy];
+ });
+
+ it(@"Should contain all defined enum values", ^ {
+ for (int i = 0; i < definedValues.count; i++) {
+ expect(storedValues).to(contain(definedValues[i]));
+ }
+ });
+
+ it(@"Should contain only defined enum values", ^ {
+ for (int i = 0; i < storedValues.count; i++) {
+ expect(definedValues).to(contain(storedValues[i]));
+ }
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m
index 964736fbc..eaa44c2d3 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLDisplayTypeSpec.m
@@ -23,8 +23,8 @@ describe(@"Individual Enum Value Tests", ^ {
expect([SDLDisplayType MFD3].value).to(equal(@"MFD3"));
expect([SDLDisplayType MFD4].value).to(equal(@"MFD4"));
expect([SDLDisplayType MFD5].value).to(equal(@"MFD5"));
- //NOT DEFINED IN SPEC
expect([SDLDisplayType GEN3_8_INCH].value).to(equal(@"GEN3_8-INCH"));
+ expect([SDLDisplayType GENERIC].value).to(equal(@"SDL_GENERIC"));
});
});
describe(@"ValueOf Tests", ^ {
@@ -38,8 +38,8 @@ describe(@"ValueOf Tests", ^ {
expect([SDLDisplayType valueOf:@"MFD3"]).to(equal([SDLDisplayType MFD3]));
expect([SDLDisplayType valueOf:@"MFD4"]).to(equal([SDLDisplayType MFD4]));
expect([SDLDisplayType valueOf:@"MFD5"]).to(equal([SDLDisplayType MFD5]));
- //NOT DEFINED IN SPEC
expect([SDLDisplayType valueOf:@"GEN3_8-INCH"]).to(equal([SDLDisplayType GEN3_8_INCH]));
+ expect([SDLDisplayType valueOf:@"SDL_GENERIC"]).to(equal([SDLDisplayType GENERIC]));
});
it(@"Should return nil when invalid", ^ {
@@ -60,8 +60,8 @@ describe(@"Value List Tests", ^ {
[SDLDisplayType MFD3],
[SDLDisplayType MFD4],
[SDLDisplayType MFD5],
- //NOT DEFINED IN SPEC
- [SDLDisplayType GEN3_8_INCH]] copy];
+ [SDLDisplayType GEN3_8_INCH],
+ [SDLDisplayType GENERIC]] copy];
});
it(@"Should contain all defined enum values", ^ {
@@ -77,4 +77,4 @@ describe(@"Value List Tests", ^ {
});
});
-QuickSpecEnd \ No newline at end of file
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m
new file mode 100644
index 000000000..d237ab0c0
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWaypointTypeSpec.m
@@ -0,0 +1,51 @@
+// SDLWaypointTypeSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLWaypointType.h"
+
+QuickSpecBegin(SDLWaypointTypeSpec)
+
+describe(@"Individual Enum Value Tests", ^ {
+ it(@"Should match internal values", ^ {
+ expect([SDLWaypointType ALL].value).to(equal(@"ALL"));
+ expect([SDLWaypointType DESTINATION].value).to(equal(@"DESTINATION"));
+ });
+});
+describe(@"ValueOf Tests", ^ {
+ it(@"Should return correct values when valid", ^ {
+ expect([SDLWaypointType valueOf:@"ALL"]).to(equal([SDLWaypointType ALL]));
+ expect([SDLWaypointType valueOf:@"DESTINATION"]).to(equal([SDLWaypointType DESTINATION]));
+ });
+
+ it(@"Should return nil when invalid", ^ {
+ expect([SDLWaypointType valueOf:nil]).to(beNil());
+ expect([SDLWaypointType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil());
+ });
+});
+describe(@"Value List Tests", ^ {
+ NSArray* storedValues = [SDLWaypointType values];
+ __block NSArray* definedValues;
+ beforeSuite(^ {
+ definedValues = [@[[SDLWaypointType ALL],
+ [SDLWaypointType DESTINATION]] copy];
+ });
+
+ it(@"Should contain all defined enum values", ^ {
+ for (int i = 0; i < definedValues.count; i++) {
+ expect(storedValues).to(contain(definedValues[i]));
+ }
+ });
+
+ it(@"Should contain only defined enum values", ^ {
+ for (int i = 0; i < storedValues.count; i++) {
+ expect(definedValues).to(contain(storedValues[i]));
+ }
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m
new file mode 100644
index 000000000..b08d8bb5d
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnWaypointChangeSpec.m
@@ -0,0 +1,102 @@
+// SDLOnWaypointChangeSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLOnWaypointChange.h"
+
+#import "SDLImage.h"
+#import "SDLLocationCoordinate.h"
+#import "SDLLocationDetails.h"
+#import "SDLNames.h"
+#import "SDLOasisAddress.h"
+
+QuickSpecBegin(SDLOnWaypointChangeSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block SDLOnWaypointChange* testNotification = nil;
+ __block NSArray<SDLLocationDetails *>* someWaypoints = nil;
+
+ describe(@"when initialized with init", ^{
+ beforeEach(^{
+ testNotification = [[SDLOnWaypointChange alloc] init];
+ });
+
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ SDLLocationDetails* someLocation = [[SDLLocationDetails alloc] init];
+ someLocation.coordinate = [[SDLLocationCoordinate alloc] init];
+ someLocation.locationName = @"Livio";
+ someLocation.locationDescription = @"A great place to work";
+ someLocation.addressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
+ someLocation.phoneNumber = @"248-591-0333";
+ someLocation.locationImage = [[SDLImage alloc] init];
+ someLocation.searchAddress = [[SDLOasisAddress alloc] init];
+
+ someWaypoints = @[someLocation];
+
+ testNotification.waypoints = someWaypoints;
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get waypoints correctly", ^{
+ expect(testNotification.waypoints).to(equal(someWaypoints));
+ expect(testNotification.waypoints).to(beIdenticalTo(someWaypoints));
+ });
+ });
+ });
+
+ describe(@"when initialized with a dictionary", ^{
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ SDLLocationDetails* someLocation = [[SDLLocationDetails alloc] init];
+ someLocation.coordinate = [[SDLLocationCoordinate alloc] init];
+ someLocation.locationName = @"Livio";
+ someLocation.locationDescription = @"A great place to work";
+ someLocation.addressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
+ someLocation.phoneNumber = @"248-591-0333";
+ someLocation.locationImage = [[SDLImage alloc] init];
+ someLocation.searchAddress = [[SDLOasisAddress alloc] init];
+
+ someWaypoints = @[someLocation];
+
+ NSDictionary *initDict = @{NAMES_notification : @{
+ NAMES_parameters: @{
+ NAMES_waypoints: someWaypoints
+ }
+ },
+ NAMES_operation_name:NAMES_OnWaypointChange
+ };
+
+ testNotification = [[SDLOnWaypointChange alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get waypoints correctly", ^{
+ expect(testNotification.waypoints).to(equal(someWaypoints));
+ expect(testNotification.waypoints).to(beIdenticalTo(someWaypoints));
+ });
+ });
+
+ context(@"when parameters are not set", ^{
+ beforeEach(^{
+ NSDictionary *initDict = @{
+ NAMES_request: @{
+ NAMES_parameters: @{}
+ }
+ };
+
+ testNotification = [[SDLOnWaypointChange alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ it(@"should return nil for waypoints", ^{
+ expect(testNotification.waypoints).to(beNil());
+ });
+ });
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m
new file mode 100644
index 000000000..579d63935
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetWaypointsSpec.m
@@ -0,0 +1,42 @@
+// SDLGetWaypointsSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLGetWaypoints.h"
+
+#import "SDLNames.h"
+#import "SDLWaypointType.h"
+
+QuickSpecBegin(SDLGetWaypointsSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ it(@"Should set and get correctly", ^ {
+ SDLGetWaypoints* testRequest = [[SDLGetWaypoints alloc] init];
+
+ testRequest.waypointType = [SDLWaypointType ALL];
+
+ expect(testRequest.waypointType).to(equal([SDLWaypointType ALL]));
+ });
+
+ it(@"Should get correctly when initialized", ^ {
+ NSMutableDictionary* dict = [@{NAMES_request:
+ @{NAMES_parameters:
+ @{NAMES_waypointType:[SDLWaypointType ALL]},
+ NAMES_operation_name:NAMES_GetWaypoints}} mutableCopy];
+ SDLGetWaypoints* testRequest = [[SDLGetWaypoints alloc] initWithDictionary:dict];
+
+ expect(testRequest.waypointType).to(equal([SDLWaypointType ALL]));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLGetWaypoints* testRequest = [[SDLGetWaypoints alloc] init];
+
+ expect(testRequest.waypointType).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m
index ccd4bafdb..65b068843 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSendLocationSpec.m
@@ -20,6 +20,9 @@ describe(@"Send Location RPC", ^{
__block NSArray *someAddressLines = nil;
__block NSString *somePhoneNumber = nil;
__block SDLImage *someImage = nil;
+ __block SDLDeliveryMode *someDeliveryMode = nil;
+ __block SDLDateTime* someTime = nil;
+ __block SDLOasisAddress* someAddress = nil;
describe(@"when initialized with init", ^{
beforeEach(^{
@@ -35,6 +38,9 @@ describe(@"Send Location RPC", ^{
someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
somePhoneNumber = @"248-591-0333";
someImage = [[SDLImage alloc] init];
+ someDeliveryMode = [SDLDeliveryMode PROMPT];
+ someTime = [[SDLDateTime alloc] init];
+ someAddress = [[SDLOasisAddress alloc] init];
testRequest.longitudeDegrees = someLongitude;
testRequest.latitudeDegrees = someLatitude;
@@ -43,6 +49,9 @@ describe(@"Send Location RPC", ^{
testRequest.addressLines = someAddressLines;
testRequest.phoneNumber = somePhoneNumber;
testRequest.locationImage = someImage;
+ testRequest.deliveryMode = someDeliveryMode;
+ testRequest.timeStamp = someTime;
+ testRequest.address = someAddress;
});
// Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
@@ -80,6 +89,21 @@ describe(@"Send Location RPC", ^{
expect(testRequest.locationImage).to(equal(someImage));
expect(testRequest.locationImage).to(beIdenticalTo(someImage));
});
+
+ it(@"should get delivery mode correctly", ^{
+ expect(testRequest.deliveryMode).to(equal(someDeliveryMode));
+ expect(testRequest.deliveryMode).to(beIdenticalTo(someDeliveryMode));
+ });
+
+ it(@"should get timestamp correctly", ^{
+ expect(testRequest.timeStamp).to(equal(someTime));
+ expect(testRequest.timeStamp).to(beIdenticalTo(someTime));
+ });
+
+ it(@"should get address correctly", ^{
+ expect(testRequest.address).to(equal(someAddress));
+ expect(testRequest.address).to(beIdenticalTo(someAddress));
+ });
});
context(@"when parameters are not set", ^{
@@ -110,6 +134,18 @@ describe(@"Send Location RPC", ^{
it(@"should return nil for image", ^{
expect(testRequest.locationImage).to(beNil());
});
+
+ it(@"should return nil for delivery mode", ^{
+ expect(testRequest.deliveryMode).to(beNil());
+ });
+
+ it(@"should return nil for timeStamp", ^{
+ expect(testRequest.timeStamp).to(beNil());
+ });
+
+ it(@"should return nil for address", ^{
+ expect(testRequest.address).to(beNil());
+ });
});
});
@@ -123,6 +159,9 @@ describe(@"Send Location RPC", ^{
someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
somePhoneNumber = @"248-591-0333";
someImage = [[SDLImage alloc] init];
+ someDeliveryMode = [SDLDeliveryMode PROMPT];
+ someTime = [[SDLDateTime alloc] init];
+ someAddress = [[SDLOasisAddress alloc] init];
NSDictionary *initDict = @{
NAMES_request: @{
NAMES_parameters: @{
@@ -132,7 +171,10 @@ describe(@"Send Location RPC", ^{
NAMES_locationDescription: someLocationDescription,
NAMES_addressLines: someAddressLines,
NAMES_phoneNumber: somePhoneNumber,
- NAMES_locationImage: someImage
+ NAMES_locationImage: someImage,
+ NAMES_deliveryMode: someDeliveryMode,
+ NAMES_timeStamp: someTime,
+ NAMES_address: someAddress
}
}
};
@@ -175,6 +217,21 @@ describe(@"Send Location RPC", ^{
expect(testRequest.locationImage).to(equal(someImage));
expect(testRequest.locationImage).to(beIdenticalTo(someImage));
});
+
+ it(@"should get delivery mode correctly", ^{
+ expect(testRequest.deliveryMode).to(equal(someDeliveryMode));
+ expect(testRequest.deliveryMode).to(beIdenticalTo(someDeliveryMode));
+ });
+
+ it(@"should get timestamp correctly", ^{
+ expect(testRequest.timeStamp).to(equal(someTime));
+ expect(testRequest.timeStamp).to(beIdenticalTo(someTime));
+ });
+
+ it(@"should get address correctly", ^{
+ expect(testRequest.address).to(equal(someAddress));
+ expect(testRequest.address).to(beIdenticalTo(someAddress));
+ });
});
context(@"when parameters are not set", ^{
@@ -215,6 +272,18 @@ describe(@"Send Location RPC", ^{
it(@"should return nil for image", ^{
expect(testRequest.locationImage).to(beNil());
});
+
+ it(@"should return nil for delivery mode", ^{
+ expect(testRequest.deliveryMode).to(beNil());
+ });
+
+ it(@"should return nil for timeStamp", ^{
+ expect(testRequest.timeStamp).to(beNil());
+ });
+
+ it(@"should return nil for address", ^{
+ expect(testRequest.address).to(beNil());
+ });
});
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeWaypointsSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeWaypointsSpec.m
new file mode 100644
index 000000000..10e66d158
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeWaypointsSpec.m
@@ -0,0 +1,13 @@
+// SDLSubscribeWaypointsSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLSubscribeWaypoints.h"
+
+QuickSpecBegin(SDLSubscribeWaypointsSpec)
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeWaypointsSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeWaypointsSpec.m
new file mode 100644
index 000000000..426b78c0a
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeWaypointsSpec.m
@@ -0,0 +1,13 @@
+// SDLUnsubscribeWaypointsSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLUnsubscribeWaypoints.h"
+
+QuickSpecBegin(SDLUnsubscribeWaypointsSpec)
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m
new file mode 100644
index 000000000..4754fe4e8
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetWaypointsResponseSpec.m
@@ -0,0 +1,101 @@
+// SDLGetWaypointsResponseSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLGetWaypointsResponse.h"
+
+#import "SDLImage.h"
+#import "SDLLocationCoordinate.h"
+#import "SDLLocationDetails.h"
+#import "SDLNames.h"
+#import "SDLOasisAddress.h"
+
+QuickSpecBegin(SDLGetWaypointsResponseSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block SDLGetWaypointsResponse* testResponse = nil;
+ __block NSArray<SDLLocationDetails *>* someWaypoints = nil;
+
+ describe(@"when initialized with init", ^{
+ beforeEach(^{
+ testResponse = [[SDLGetWaypointsResponse alloc] init];
+ });
+
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ SDLLocationDetails* someLocation = [[SDLLocationDetails alloc] init];
+ someLocation.coordinate = [[SDLLocationCoordinate alloc] init];
+ someLocation.locationName = @"Livio";
+ someLocation.locationDescription = @"A great place to work";
+ someLocation.addressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
+ someLocation.phoneNumber = @"248-591-0333";
+ someLocation.locationImage = [[SDLImage alloc] init];
+ someLocation.searchAddress = [[SDLOasisAddress alloc] init];
+
+ someWaypoints = @[someLocation];
+
+ testResponse.waypoints = someWaypoints;
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get waypoints correctly", ^{
+ expect(testResponse.waypoints).to(equal(someWaypoints));
+ expect(testResponse.waypoints).to(beIdenticalTo(someWaypoints));
+ });
+ });
+ });
+
+ describe(@"when initialized with a dictionary", ^{
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ SDLLocationDetails* someLocation = [[SDLLocationDetails alloc] init];
+ someLocation.coordinate = [[SDLLocationCoordinate alloc] init];
+ someLocation.locationName = @"Livio";
+ someLocation.locationDescription = @"A great place to work";
+ someLocation.addressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
+ someLocation.phoneNumber = @"248-591-0333";
+ someLocation.locationImage = [[SDLImage alloc] init];
+ someLocation.searchAddress = [[SDLOasisAddress alloc] init];
+
+ someWaypoints = @[someLocation];
+
+ NSDictionary *initDict = @{NAMES_response : @{
+ NAMES_parameters: @{
+ NAMES_waypoints: someWaypoints
+ }
+ }
+ };
+
+ testResponse = [[SDLGetWaypointsResponse alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get waypoints correctly", ^{
+ expect(testResponse.waypoints).to(equal(someWaypoints));
+ expect(testResponse.waypoints).to(beIdenticalTo(someWaypoints));
+ });
+ });
+
+ context(@"when parameters are not set", ^{
+ beforeEach(^{
+ NSDictionary *initDict = @{
+ NAMES_request: @{
+ NAMES_parameters: @{}
+ }
+ };
+
+ testResponse = [[SDLGetWaypointsResponse alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ it(@"should return nil for waypoints", ^{
+ expect(testResponse.waypoints).to(beNil());
+ });
+ });
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeWaypointsResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeWaypointsResponseSpec.m
new file mode 100644
index 000000000..694bacc9e
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeWaypointsResponseSpec.m
@@ -0,0 +1,13 @@
+// SDLSubscribeWaypointsResponseSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLSubscribeWaypointsResponse.h"
+
+QuickSpecBegin(SDLSubscribeWaypointsResponseSpec)
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeWaypointsResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeWaypointsResponseSpec.m
new file mode 100644
index 000000000..f307d5817
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeWaypointsResponseSpec.m
@@ -0,0 +1,13 @@
+// SDLUnsubscribeWaypointsResponseSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLUnsubscribeWaypointsResponse.h"
+
+QuickSpecBegin(SDLUnsubscribeWaypointsResponseSpec)
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m
new file mode 100644
index 000000000..3aee83e11
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDateTimeSpec.m
@@ -0,0 +1,82 @@
+//
+// SDLDateTimeSpec.m
+// SmartDeviceLink-iOS
+//
+// Created by Muller, Alexander (A.) on 11/1/16.
+// Copyright © 2016 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLDateTime.h"
+#import "SDLNames.h"
+
+QuickSpecBegin(SDLDateTimeSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ it(@"Should set and get correctly", ^ {
+ SDLDateTime* testStruct = [[SDLDateTime alloc] init];
+
+ testStruct.millisecond = @100;
+ testStruct.second = @4;
+ testStruct.minute = @12;
+ testStruct.hour = @20;
+ testStruct.day = @30;
+ testStruct.month = @1;
+ testStruct.year = @4000;
+ testStruct.timezoneMinuteOffset = @0;
+ testStruct.timezoneHourOffset = @1000;
+
+ expect(testStruct.millisecond).to(equal(@100));
+ expect(testStruct.second).to(equal(@4));
+ expect(testStruct.minute).to(equal(@12));
+ expect(testStruct.hour).to(equal(@20));
+ expect(testStruct.day).to(equal(@30));
+ expect(testStruct.month).to(equal(@1));
+ expect(testStruct.year).to(equal(@4000));
+ expect(testStruct.timezoneMinuteOffset).to(equal(@0));
+ expect(testStruct.timezoneHourOffset).to(equal(@1000));
+ });
+
+ it(@"Should get correctly when initialized with dictionary", ^{
+ NSMutableDictionary* dict = [@{NAMES_millisecond:@100,
+ NAMES_second:@4,
+ NAMES_minute:@12,
+ NAMES_hour:@20,
+ NAMES_day:@30,
+ NAMES_month:@1,
+ NAMES_year:@4000,
+ NAMES_timezoneMinuteOffset:@0,
+ NAMES_timezoneHourOffset:@1000} mutableCopy];
+ SDLDateTime* testStruct = [[SDLDateTime alloc] initWithDictionary:dict];
+
+ expect(testStruct.millisecond).to(equal(@100));
+ expect(testStruct.second).to(equal(@4));
+ expect(testStruct.minute).to(equal(@12));
+ expect(testStruct.hour).to(equal(@20));
+ expect(testStruct.day).to(equal(@30));
+ expect(testStruct.month).to(equal(@1));
+ expect(testStruct.year).to(equal(@4000));
+ expect(testStruct.timezoneMinuteOffset).to(equal(@0));
+ expect(testStruct.timezoneHourOffset).to(equal(@1000));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLDateTime* testStruct = [[SDLDateTime alloc] init];
+
+ expect(testStruct.millisecond).to(beNil());
+ expect(testStruct.second).to(beNil());
+ expect(testStruct.minute).to(beNil());
+ expect(testStruct.hour).to(beNil());
+ expect(testStruct.day).to(beNil());
+ expect(testStruct.month).to(beNil());
+ expect(testStruct.year).to(beNil());
+ expect(testStruct.timezoneMinuteOffset).to(beNil());
+ expect(testStruct.timezoneHourOffset).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m
new file mode 100644
index 000000000..85c9a2b5e
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationCoordinateSpec.m
@@ -0,0 +1,95 @@
+// SDLLocationCoordinateSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLLocationCoordinate.h"
+#import "SDLNames.h"
+
+
+QuickSpecBegin(SDLLocationCoordinateSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block SDLLocationCoordinate* testStruct = nil;
+ __block NSNumber *someLatitude = nil;
+ __block NSNumber *someLongitude = nil;
+
+
+ describe(@"when initialized with init", ^{
+ beforeEach(^{
+ testStruct = [[SDLLocationCoordinate alloc] init];
+ });
+
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ someLatitude = @86.75;
+ someLongitude = @(-3.09);
+
+ testStruct.latitudeDegrees = someLatitude;
+ testStruct.longitudeDegrees = someLongitude;
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get latitude correctly", ^{
+ expect(testStruct.latitudeDegrees).to(equal(someLatitude));
+ expect(testStruct.latitudeDegrees).to(beIdenticalTo(someLatitude));
+ });
+
+ it(@"should get longitude correctly", ^{
+ expect(testStruct.longitudeDegrees).to(equal(someLongitude));
+ expect(testStruct.longitudeDegrees).to(beIdenticalTo(someLongitude));
+ });
+ });
+ });
+
+ describe(@"when initialized with a dictionary", ^{
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ someLongitude = @123.4567;
+ someLatitude = @65.4321;
+ NSDictionary *initDict = @{
+ NAMES_longitudeDegrees: someLongitude,
+ NAMES_latitudeDegrees: someLatitude,
+ };
+
+ testStruct = [[SDLLocationCoordinate alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get longitude correctly", ^{
+ expect(testStruct.longitudeDegrees).to(equal(someLongitude));
+ expect(testStruct.longitudeDegrees).to(beIdenticalTo(someLongitude));
+ });
+
+ it(@"should get latitude correctly", ^{
+ expect(testStruct.latitudeDegrees).to(equal(someLatitude));
+ expect(testStruct.latitudeDegrees).to(beIdenticalTo(someLatitude));
+ });
+ });
+
+ context(@"when parameters are not set", ^{
+ beforeEach(^{
+ NSDictionary *initDict = @{
+ NAMES_request: @{
+ NAMES_parameters: @{}
+ }
+ };
+
+ testStruct = [[SDLLocationCoordinate alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ it(@"should return nil for longitude", ^{
+ expect(testStruct.longitudeDegrees).to(beNil());
+ });
+
+ it(@"should return nil for latitude", ^{
+ expect(testStruct.latitudeDegrees).to(beNil());
+ });
+ });
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m
new file mode 100644
index 000000000..a0903293c
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLocationDetailsSpec.m
@@ -0,0 +1,192 @@
+// SDLLocationDetailsSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLLocationDetails.h"
+
+#import "SDLImage.h"
+#import "SDLLocationCoordinate.h"
+#import "SDLNames.h"
+#import "SDLOasisAddress.h"
+
+QuickSpecBegin(SDLLocationDetailsSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block SDLLocationDetails *testStruct = nil;
+ __block NSString *someLocation = nil;
+ __block NSString *someLocationDescription = nil;
+ __block NSArray *someAddressLines = nil;
+ __block NSString *somePhoneNumber = nil;
+ __block SDLImage* someImage = nil;
+ __block SDLLocationCoordinate* someCoordinate = nil;
+ __block SDLOasisAddress* someAddress = nil;
+
+ describe(@"when initialized with init", ^{
+ beforeEach(^{
+ testStruct = [[SDLLocationDetails alloc] init];
+ });
+
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ someCoordinate = [[SDLLocationCoordinate alloc] init];
+ someLocation = @"Livio";
+ someLocationDescription = @"A great place to work";
+ someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
+ somePhoneNumber = @"248-591-0333";
+ someImage = [[SDLImage alloc] init];
+ someAddress = [[SDLOasisAddress alloc] init];
+
+ testStruct.coordinate = someCoordinate;
+ testStruct.locationName = someLocation;
+ testStruct.locationDescription = someLocationDescription;
+ testStruct.addressLines = someAddressLines;
+ testStruct.phoneNumber = somePhoneNumber;
+ testStruct.locationImage = someImage;
+ testStruct.searchAddress = someAddress;
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get coordinate correctly", ^{
+ expect(testStruct.coordinate).to(equal(someCoordinate));
+ expect(testStruct.coordinate).to(beIdenticalTo(someCoordinate));
+ });
+
+ it(@"should get location correctly", ^{
+ expect(testStruct.locationName).to(equal(someLocation));
+ expect(testStruct.locationName).to(beIdenticalTo(someLocation));
+ });
+
+ it(@"should get location description correctly", ^{
+ expect(testStruct.locationDescription).to(equal(someLocationDescription));
+ expect(testStruct.locationDescription).to(beIdenticalTo(someLocationDescription));
+ });
+
+ it(@"should get address lines correctly", ^{
+ expect(testStruct.addressLines).to(equal(someAddressLines));
+ expect(testStruct.addressLines).to(beIdenticalTo(someAddressLines));
+ });
+
+ it(@"should get phone number correctly", ^{
+ expect(testStruct.phoneNumber).to(equal(somePhoneNumber));
+ expect(testStruct.phoneNumber).to(beIdenticalTo(somePhoneNumber));
+ });
+
+ it(@"should get image correctly", ^{
+ expect(testStruct.locationImage).to(equal(someImage));
+ expect(testStruct.locationImage).to(beIdenticalTo(someImage));
+ });
+
+ it(@"should get address correctly", ^{
+ expect(testStruct.searchAddress).to(equal(someAddress));
+ expect(testStruct.searchAddress).to(beIdenticalTo(someAddress));
+ });
+
+ });
+ });
+
+ describe(@"when initialized with a dictionary", ^{
+ context(@"when parameters are set correctly", ^{
+ beforeEach(^{
+ someCoordinate = [[SDLLocationCoordinate alloc] init];
+ someLocation = @"Livio";
+ someLocationDescription = @"A great place to work";
+ someAddressLines = @[@"3136 Hilton Rd", @"Ferndale, MI", @"48220"];
+ somePhoneNumber = @"248-591-0333";
+ someImage = [[SDLImage alloc] init];
+ NSDictionary *initDict = @{
+ NAMES_locationCoordinate: someCoordinate,
+ NAMES_locationName: someLocation,
+ NAMES_locationDescription: someLocationDescription,
+ NAMES_addressLines: someAddressLines,
+ NAMES_phoneNumber: somePhoneNumber,
+ NAMES_locationImage: someImage,
+ NAMES_address: someAddress
+ };
+
+ testStruct = [[SDLLocationDetails alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ // Since all the properties are immutable, a copy should be executed as a retain, which means they should be identical
+ it(@"should get coordinate correctly", ^{
+ expect(testStruct.coordinate).to(equal(someCoordinate));
+ expect(testStruct.coordinate).to(beIdenticalTo(someCoordinate));
+ });
+
+ it(@"should get location correctly", ^{
+ expect(testStruct.locationName).to(equal(someLocation));
+ expect(testStruct.locationName).to(beIdenticalTo(someLocation));
+ });
+
+ it(@"should get location description correctly", ^{
+ expect(testStruct.locationDescription).to(equal(someLocationDescription));
+ expect(testStruct.locationDescription).to(beIdenticalTo(someLocationDescription));
+ });
+
+ it(@"should get address lines correctly", ^{
+ expect(testStruct.addressLines).to(equal(someAddressLines));
+ expect(testStruct.addressLines).to(beIdenticalTo(someAddressLines));
+ });
+
+ it(@"should get phone number correctly", ^{
+ expect(testStruct.phoneNumber).to(equal(somePhoneNumber));
+ expect(testStruct.phoneNumber).to(beIdenticalTo(somePhoneNumber));
+ });
+
+ it(@"should get image correctly", ^{
+ expect(testStruct.locationImage).to(equal(someImage));
+ expect(testStruct.locationImage).to(beIdenticalTo(someImage));
+ });
+
+ it(@"should get address correctly", ^{
+ expect(testStruct.searchAddress).to(equal(someAddress));
+ expect(testStruct.searchAddress).to(beIdenticalTo(someAddress));
+ });
+ });
+
+ context(@"when parameters are not set", ^{
+ beforeEach(^{
+ NSDictionary *initDict = @{
+ NAMES_request: @{
+ NAMES_parameters: @{}
+ }
+ };
+
+ testStruct = [[SDLLocationDetails alloc] initWithDictionary:[NSMutableDictionary dictionaryWithDictionary:initDict]];
+ });
+
+ it(@"should return nil for coordinate", ^{
+ expect(testStruct.coordinate).to(beNil());
+ });
+
+ it(@"should return nil for location", ^{
+ expect(testStruct.locationName).to(beNil());
+ });
+
+ it(@"should return nil for location description", ^{
+ expect(testStruct.locationDescription).to(beNil());
+ });
+
+ it(@"should return nil for address lines", ^{
+ expect(testStruct.addressLines).to(beNil());
+ });
+
+ it(@"should return nil for phone number", ^{
+ expect(testStruct.phoneNumber).to(beNil());
+ });
+
+ it(@"should return nil for image", ^{
+ expect(testStruct.locationImage).to(beNil());
+ });
+
+ it(@"should return nil for address", ^{
+ expect(testStruct.searchAddress).to(beNil());
+ });
+ });
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m
new file mode 100644
index 000000000..a1de08e68
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLOasisAddressSpec.m
@@ -0,0 +1,78 @@
+// SDLOasisAddressSpec.m
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLOasisAddress.h"
+#import "SDLNames.h"
+
+QuickSpecBegin(SDLOasisAddressSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ it(@"Should set and get correctly", ^ {
+ SDLOasisAddress* testStruct = [[SDLOasisAddress alloc] init];
+
+ testStruct.countryName = @"United States";
+ testStruct.countryCode = @"US";
+ testStruct.postalCode = @"123456";
+ testStruct.administrativeArea = @"CA";
+ testStruct.subAdministrativeArea = @"Santa Clara";
+ testStruct.locality = @"Palo Alto";
+ testStruct.subLocality = @"18";
+ testStruct.thoroughfare = @"Candy Lane";
+ testStruct.subThoroughfare = @"123";
+
+ expect(testStruct.countryName).to(equal(@"United States"));
+ expect(testStruct.countryCode).to(equal(@"US"));
+ expect(testStruct.postalCode).to(equal(@"123456"));
+ expect(testStruct.administrativeArea).to(equal(@"CA"));
+ expect(testStruct.subAdministrativeArea).to(equal(@"Santa Clara"));
+ expect(testStruct.locality).to(equal(@"Palo Alto"));
+ expect(testStruct.subLocality).to(equal(@"18"));
+ expect(testStruct.thoroughfare).to(equal(@"Candy Lane"));
+ expect(testStruct.subThoroughfare).to(equal(@"123"));
+
+ });
+
+ it(@"Should get correctly when initialized", ^ {
+ NSMutableDictionary* dict = [@{NAMES_countryName:@"United States",
+ NAMES_countryCode:@"US",
+ NAMES_postalCode:@"123456",
+ NAMES_administrativeArea:@"CA",
+ NAMES_subAdministrativeArea:@"Santa Clara",
+ NAMES_locality:@"Palo Alto",
+ NAMES_subLocality:@"18",
+ NAMES_thoroughfare:@"Candy Lane",
+ NAMES_subThoroughfare:@"123"} mutableCopy];
+ SDLOasisAddress* testStruct = [[SDLOasisAddress alloc] initWithDictionary:dict];
+
+ expect(testStruct.countryName).to(equal(@"United States"));
+ expect(testStruct.countryCode).to(equal(@"US"));
+ expect(testStruct.postalCode).to(equal(@"123456"));
+ expect(testStruct.administrativeArea).to(equal(@"CA"));
+ expect(testStruct.subAdministrativeArea).to(equal(@"Santa Clara"));
+ expect(testStruct.locality).to(equal(@"Palo Alto"));
+ expect(testStruct.subLocality).to(equal(@"18"));
+ expect(testStruct.thoroughfare).to(equal(@"Candy Lane"));
+ expect(testStruct.subThoroughfare).to(equal(@"123"));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLOasisAddress* testStruct = [[SDLOasisAddress alloc] init];
+
+ expect(testStruct.countryName).to(beNil());
+ expect(testStruct.countryCode).to(beNil());
+ expect(testStruct.postalCode).to(beNil());
+ expect(testStruct.administrativeArea).to(beNil());
+ expect(testStruct.subAdministrativeArea).to(beNil());
+ expect(testStruct.locality).to(beNil());
+ expect(testStruct.subLocality).to(beNil());
+ expect(testStruct.thoroughfare).to(beNil());
+ expect(testStruct.subThoroughfare).to(beNil());
+ });
+});
+
+QuickSpecEnd