diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2016-11-04 14:45:04 -0400 |
---|---|---|
committer | Joel Fischer <joeljfischer@gmail.com> | 2016-11-04 14:45:04 -0400 |
commit | e5ef7e8c396c955271e811a7a7e6a1aa1ec0eda2 (patch) | |
tree | 5630bde8aa22593f9fa71516954d366b218519d0 | |
parent | 7807db690ab3f88bd9a2c77ea675c8e6d4281d4c (diff) | |
parent | 0ae15b3b1fda7c2c299fb9c1e40d4137f61af126 (diff) | |
download | sdl_ios-e5ef7e8c396c955271e811a7a7e6a1aa1ec0eda2.tar.gz |
Merge branch 'feature/sdl_0003_last_mile' into release/4.4.0
37 files changed, 1338 insertions, 2 deletions
diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec index 85bd792f0..ed0b7766c 100644 --- a/SmartDeviceLink-iOS.podspec +++ b/SmartDeviceLink-iOS.podspec @@ -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', @@ -222,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', @@ -255,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 af9b83a83..f6f895478 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -909,6 +909,36 @@ 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, ); }; }; @@ -1918,6 +1948,36 @@ 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>"; }; @@ -2070,6 +2130,7 @@ 162E82221A9BDE8A00906325 /* SDLVehicleDataTypeSpec.m */, 162E82231A9BDE8A00906325 /* SDLVrCapabilitiesSpec.m */, 162E82241A9BDE8A00906325 /* SDLWarningLightStatusSpec.m */, + DA9F7E9D1DCC05B900ACAE48 /* SDLWaypointTypeSpec.m */, 162E82251A9BDE8A00906325 /* SDLWiperStatusSpec.m */, ); path = EnumSpecs; @@ -2104,6 +2165,7 @@ 162E82381A9BDE8A00906325 /* SDLOnTBTClientStateSpec.m */, 162E82391A9BDE8A00906325 /* SDLOnTouchEventSpec.m */, 162E823A1A9BDE8A00906325 /* SDLOnVehicleDataSpec.m */, + DA9F7E9F1DCC05D200ACAE48 /* SDLOnWaypointChangeSpec.m */, ); path = NotificationSpecs; sourceTree = "<group>"; @@ -2135,6 +2197,7 @@ 162E824A1A9BDE8A00906325 /* SDLEndAudioPassThruSpec.m */, 162E824B1A9BDE8A00906325 /* SDLGetDTCsSpec.m */, 162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */, + DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */, 162E824D1A9BDE8A00906325 /* SDLListFilesSpec.m */, 162E824E1A9BDE8A00906325 /* SDLPerformAudioPassThruSpec.m */, 162E824F1A9BDE8A00906325 /* SDLPerformInteractionSpec.m */, @@ -2154,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; @@ -2184,6 +2249,7 @@ 162E82731A9BDE8A00906325 /* SDLGenericResponseSpec.m */, 162E82741A9BDE8A00906325 /* SDLGetDTCsResponseSpec.m */, 162E82751A9BDE8A00906325 /* SDLGetVehicleDataResponseSpec.m */, + DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */, 162E82761A9BDE8A00906325 /* SDLListFilesResponseSpec.m */, 162E82771A9BDE8A00906325 /* SDLPerformAudioPassThruResponseSpec.m */, 162E82781A9BDE8A00906325 /* SDLPerformInteractionResponseSpec.m */, @@ -2203,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; @@ -2238,6 +2306,8 @@ 162E829F1A9BDE8A00906325 /* SDLImageFieldSpec.m */, 162E82A01A9BDE8A00906325 /* SDLImageSpec.m */, 162E82A11A9BDE8A00906325 /* SDLKeyboardPropertiesSpec.m */, + DA9F7EAD1DCC063400ACAE48 /* SDLLocationCoordinateSpec.m */, + DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */, 162E82A21A9BDE8A00906325 /* SDLMenuParamsSpec.m */, 162E82A31A9BDE8A00906325 /* SDLMyKeySpec.m */, DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */, @@ -2600,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 */, @@ -2636,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 */, @@ -2646,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 */, @@ -2691,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 */, @@ -2727,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 */, @@ -2737,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 */, @@ -2794,6 +2876,10 @@ 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 */, @@ -2980,6 +3066,8 @@ 5D61FC211A84238C00846EE7 /* SDLVRCapabilities.m */, 5D61FC241A84238C00846EE7 /* SDLWarningLightStatus.h */, 5D61FC251A84238C00846EE7 /* SDLWarningLightStatus.m */, + DA9F7E811DCC047200ACAE48 /* SDLWaypointType.h */, + DA9F7E821DCC047200ACAE48 /* SDLWaypointType.m */, 5D61FC261A84238C00846EE7 /* SDLWiperStatus.h */, 5D61FC271A84238C00846EE7 /* SDLWiperStatus.m */, ); @@ -3072,6 +3160,8 @@ 5D61FB331A84238B00846EE7 /* SDLOnTouchEvent.m */, 5D61FB341A84238B00846EE7 /* SDLOnVehicleData.h */, 5D61FB351A84238B00846EE7 /* SDLOnVehicleData.m */, + DA9F7E7D1DCC028B00ACAE48 /* SDLOnWaypointChange.h */, + DA9F7E7E1DCC028B00ACAE48 /* SDLOnWaypointChange.m */, ); name = Notification; sourceTree = "<group>"; @@ -3834,6 +3924,7 @@ 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 */, @@ -3878,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 */, @@ -3900,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 */, @@ -3909,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 */, @@ -3954,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 */, @@ -3976,6 +4071,7 @@ 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 */, @@ -4032,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 */, @@ -4095,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 */, @@ -4106,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 */, @@ -4310,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 */, @@ -4341,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 */, @@ -4372,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 */, @@ -4412,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 */, @@ -4487,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 */, @@ -4503,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 */, @@ -4555,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 */, @@ -4594,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 */, @@ -4716,11 +4826,13 @@ 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 */, @@ -4731,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 */, @@ -4755,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 */, @@ -4767,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 */, @@ -4793,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 */, @@ -4814,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 */, @@ -4869,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/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 370615b48..ffc8f19ba 100644 --- a/SmartDeviceLink/SDLNames.h +++ b/SmartDeviceLink/SDLNames.h @@ -123,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" @@ -177,6 +178,7 @@ #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" @@ -253,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" @@ -360,6 +363,7 @@ #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" @@ -402,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" @@ -424,6 +429,8 @@ #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" 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/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/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 8e2a72262..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" @@ -187,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" @@ -278,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/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/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/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 |