diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2017-07-11 16:37:34 -0400 |
---|---|---|
committer | Joel Fischer <joeljfischer@gmail.com> | 2017-07-11 16:37:34 -0400 |
commit | 0dfbf8f25bef1e0e03696ace61f90455f393df2f (patch) | |
tree | c0149ca454f7f7b700dde4d603b0ab083fef48a7 | |
parent | 4d0f991f317ba06dd5c48389b7d030f979a625b2 (diff) | |
download | sdl_ios-0dfbf8f25bef1e0e03696ace61f90455f393df2f.tar.gz |
Create System Capability RPCs
* Fixes #611
* [SDL-0055] System Capabilities Query
27 files changed, 998 insertions, 6 deletions
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj index 64651d7d7..4ee0bf2a5 100644 --- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj +++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj @@ -235,11 +235,29 @@ 1680B11E1A9CD7AD00DBD79E /* SDLProtocolReceivedMessageRouterSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 1680B1121A9CD7AD00DBD79E /* SDLProtocolReceivedMessageRouterSpec.m */; }; 332A914F1CED9CC60043824C /* SDLAppInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 332A913D1CED87F80043824C /* SDLAppInfo.m */; }; 332A91501CED9CF10043824C /* SDLAppInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 332A913C1CED87F80043824C /* SDLAppInfo.h */; settings = {ATTRIBUTES = (Public, ); }; }; + 5D00AC671F140F0A004000D9 /* SDLSystemCapabilityType.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D00AC651F140F0A004000D9 /* SDLSystemCapabilityType.h */; }; + 5D00AC681F140F0A004000D9 /* SDLSystemCapabilityType.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D00AC661F140F0A004000D9 /* SDLSystemCapabilityType.m */; }; + 5D00AC6B1F141339004000D9 /* SDLSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D00AC691F141339004000D9 /* SDLSystemCapability.h */; }; + 5D00AC6C1F141339004000D9 /* SDLSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D00AC6A1F141339004000D9 /* SDLSystemCapability.m */; }; + 5D00AC6F1F1511B9004000D9 /* SDLGetSystemCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D00AC6D1F1511B9004000D9 /* SDLGetSystemCapability.h */; }; + 5D00AC701F1511B9004000D9 /* SDLGetSystemCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D00AC6E1F1511B9004000D9 /* SDLGetSystemCapability.m */; }; + 5D00AC731F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D00AC711F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h */; }; + 5D00AC741F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D00AC721F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m */; }; + 5D00AC771F15283E004000D9 /* SDLNavigationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D00AC751F15283E004000D9 /* SDLNavigationCapability.h */; }; + 5D00AC781F15283E004000D9 /* SDLNavigationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D00AC761F15283E004000D9 /* SDLNavigationCapability.m */; }; + 5D00AC7B1F15287E004000D9 /* SDLPhoneCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D00AC791F15287E004000D9 /* SDLPhoneCapability.h */; }; + 5D00AC7C1F15287E004000D9 /* SDLPhoneCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D00AC7A1F15287E004000D9 /* SDLPhoneCapability.m */; }; 5D0218F61A8E79C400D1BF62 /* ConnectionTCPTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0218F51A8E79C400D1BF62 /* ConnectionTCPTableViewController.m */; }; 5D0218F91A8E7A7300D1BF62 /* ConnectionTCPTableViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D0218F71A8E7A7300D1BF62 /* ConnectionTCPTableViewController.storyboard */; }; 5D0218FC1A8E7E1700D1BF62 /* ConnectionContainerViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0218FB1A8E7E1700D1BF62 /* ConnectionContainerViewController.m */; }; 5D0218FF1A8E9E0D00D1BF62 /* ConnectionIAPTableViewController.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0218FE1A8E9E0D00D1BF62 /* ConnectionIAPTableViewController.m */; }; 5D0219051A8E9F6D00D1BF62 /* ConnectionIAPTableViewController.storyboard in Resources */ = {isa = PBXBuildFile; fileRef = 5D0219031A8E9F6D00D1BF62 /* ConnectionIAPTableViewController.storyboard */; }; + 5D0A9F911F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F901F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m */; }; + 5D0A9F931F15560B00CC80DD /* SDLNavigationCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */; }; + 5D0A9F951F15585B00CC80DD /* SDLPhoneCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */; }; + 5D0A9F971F1559EC00CC80DD /* SDLSystemCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */; }; + 5D0A9F9A1F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */; }; + 5D0A9F9C1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m */; }; 5D1654561D3E754F00554D93 /* SDLLifecycleManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1654551D3E754F00554D93 /* SDLLifecycleManagerSpec.m */; }; 5D16545A1D3E7A1600554D93 /* SDLLifecycleManager.h in Headers */ = {isa = PBXBuildFile; fileRef = 5D1654581D3E7A1600554D93 /* SDLLifecycleManager.h */; }; 5D16545B1D3E7A1600554D93 /* SDLLifecycleManager.m in Sources */ = {isa = PBXBuildFile; fileRef = 5D1654591D3E7A1600554D93 /* SDLLifecycleManager.m */; }; @@ -1257,6 +1275,18 @@ 1680B1121A9CD7AD00DBD79E /* SDLProtocolReceivedMessageRouterSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLProtocolReceivedMessageRouterSpec.m; sourceTree = "<group>"; }; 332A913C1CED87F80043824C /* SDLAppInfo.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLAppInfo.h; sourceTree = "<group>"; }; 332A913D1CED87F80043824C /* SDLAppInfo.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAppInfo.m; sourceTree = "<group>"; }; + 5D00AC651F140F0A004000D9 /* SDLSystemCapabilityType.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSystemCapabilityType.h; sourceTree = "<group>"; }; + 5D00AC661F140F0A004000D9 /* SDLSystemCapabilityType.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityType.m; sourceTree = "<group>"; }; + 5D00AC691F141339004000D9 /* SDLSystemCapability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLSystemCapability.h; sourceTree = "<group>"; }; + 5D00AC6A1F141339004000D9 /* SDLSystemCapability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapability.m; sourceTree = "<group>"; }; + 5D00AC6D1F1511B9004000D9 /* SDLGetSystemCapability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetSystemCapability.h; sourceTree = "<group>"; }; + 5D00AC6E1F1511B9004000D9 /* SDLGetSystemCapability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapability.m; sourceTree = "<group>"; }; + 5D00AC711F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLGetSystemCapabilityResponse.h; sourceTree = "<group>"; }; + 5D00AC721F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapabilityResponse.m; sourceTree = "<group>"; }; + 5D00AC751F15283E004000D9 /* SDLNavigationCapability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLNavigationCapability.h; sourceTree = "<group>"; }; + 5D00AC761F15283E004000D9 /* SDLNavigationCapability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationCapability.m; sourceTree = "<group>"; }; + 5D00AC791F15287E004000D9 /* SDLPhoneCapability.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLPhoneCapability.h; sourceTree = "<group>"; }; + 5D00AC7A1F15287E004000D9 /* SDLPhoneCapability.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLPhoneCapability.m; sourceTree = "<group>"; }; 5D0218F41A8E79C400D1BF62 /* ConnectionTCPTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConnectionTCPTableViewController.h; path = SmartDeviceLink_Example/Classes/ConnectionTCPTableViewController.h; sourceTree = SOURCE_ROOT; }; 5D0218F51A8E79C400D1BF62 /* ConnectionTCPTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ConnectionTCPTableViewController.m; path = SmartDeviceLink_Example/Classes/ConnectionTCPTableViewController.m; sourceTree = SOURCE_ROOT; }; 5D0218F81A8E7A7300D1BF62 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = SmartDeviceLink_Example/Base.lproj/ConnectionTCPTableViewController.storyboard; sourceTree = SOURCE_ROOT; }; @@ -1265,6 +1295,12 @@ 5D0218FD1A8E9E0D00D1BF62 /* ConnectionIAPTableViewController.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; name = ConnectionIAPTableViewController.h; path = SmartDeviceLink_Example/Classes/ConnectionIAPTableViewController.h; sourceTree = SOURCE_ROOT; }; 5D0218FE1A8E9E0D00D1BF62 /* ConnectionIAPTableViewController.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = ConnectionIAPTableViewController.m; path = SmartDeviceLink_Example/Classes/ConnectionIAPTableViewController.m; sourceTree = SOURCE_ROOT; }; 5D0219041A8E9F6D00D1BF62 /* Base */ = {isa = PBXFileReference; lastKnownFileType = file.storyboard; name = Base; path = SmartDeviceLink_Example/Base.lproj/ConnectionIAPTableViewController.storyboard; sourceTree = SOURCE_ROOT; }; + 5D0A9F901F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilityTypeSpec.m; sourceTree = "<group>"; }; + 5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLNavigationCapabilitySpec.m; sourceTree = "<group>"; }; + 5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLPhoneCapabilitySpec.m; sourceTree = "<group>"; }; + 5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLSystemCapabilitySpec.m; sourceTree = "<group>"; }; + 5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapabilitiesSpec.m; sourceTree = "<group>"; }; + 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLGetSystemCapabilitiesResponseSpec.m; sourceTree = "<group>"; }; 5D1654551D3E754F00554D93 /* SDLLifecycleManagerSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; name = SDLLifecycleManagerSpec.m; path = DevAPISpecs/SDLLifecycleManagerSpec.m; sourceTree = "<group>"; }; 5D1654581D3E7A1600554D93 /* SDLLifecycleManager.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLLifecycleManager.h; sourceTree = "<group>"; }; 5D1654591D3E7A1600554D93 /* SDLLifecycleManager.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLLifecycleManager.m; sourceTree = "<group>"; }; @@ -2119,6 +2155,7 @@ 162E82121A9BDE8A00906325 /* SDLSoftButtonTypeSpec.m */, 162E82131A9BDE8A00906325 /* SDLSpeechCapabilitiesSpec.m */, 162E82141A9BDE8A00906325 /* SDLSystemAction.m */, + 5D0A9F901F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m */, 162E82151A9BDE8A00906325 /* SDLSystemContextSpec.m */, 162E82161A9BDE8A00906325 /* SDLTBTStateSpec.m */, 162E82171A9BDE8A00906325 /* SDLTextAlignmentSpec.m */, @@ -2201,6 +2238,7 @@ 162E82491A9BDE8A00906325 /* SDLEncodedSyncPDataSpec.m */, 162E824A1A9BDE8A00906325 /* SDLEndAudioPassThruSpec.m */, 162E824B1A9BDE8A00906325 /* SDLGetDTCsSpec.m */, + 5D0A9F991F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m */, 162E824C1A9BDE8A00906325 /* SDLGetVehicleDataSpec.m */, DA9F7EA11DCC05E100ACAE48 /* SDLGetWaypointsSpec.m */, 162E824D1A9BDE8A00906325 /* SDLListFilesSpec.m */, @@ -2253,6 +2291,7 @@ 162E82721A9BDE8A00906325 /* SDLEndAudioPassThruResponseSpec.m */, 162E82731A9BDE8A00906325 /* SDLGenericResponseSpec.m */, 162E82741A9BDE8A00906325 /* SDLGetDTCsResponseSpec.m */, + 5D0A9F9B1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m */, 162E82751A9BDE8A00906325 /* SDLGetVehicleDataResponseSpec.m */, DA9F7EA71DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m */, 162E82761A9BDE8A00906325 /* SDLListFilesResponseSpec.m */, @@ -2315,9 +2354,11 @@ DA9F7EAE1DCC063400ACAE48 /* SDLLocationDetailsSpec.m */, 162E82A21A9BDE8A00906325 /* SDLMenuParamsSpec.m */, 162E82A31A9BDE8A00906325 /* SDLMyKeySpec.m */, + 5D0A9F921F15560B00CC80DD /* SDLNavigationCapabilitySpec.m */, DA9F7EB51DCC086A00ACAE48 /* SDLOasisAddressSpec.m */, 162E82A41A9BDE8A00906325 /* SDLParameterPermissionsSpec.m */, 162E82A51A9BDE8A00906325 /* SDLPermissionItemSpec.m */, + 5D0A9F941F15585B00CC80DD /* SDLPhoneCapabilitySpec.m */, 162E82A61A9BDE8A00906325 /* SDLPresetBankCapabilitiesSpec.m */, 162E82A71A9BDE8A00906325 /* SDLScreenParamsSpec.m */, 162E82A81A9BDE8A00906325 /* SDLSingleTireStatusSpec.m */, @@ -2325,6 +2366,7 @@ 162E82AA1A9BDE8A00906325 /* SDLSoftButtonSpec.m */, 162E82AB1A9BDE8A00906325 /* SDLStartTimeSpec.m */, 162E82AC1A9BDE8A00906325 /* SDLSyncMsgVersionSpec.m */, + 5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */, 162E82AD1A9BDE8A00906325 /* SDLTextFieldSpec.m */, 162E82AE1A9BDE8A00906325 /* SDLTireStatusSpec.m */, 162E82AF1A9BDE8A00906325 /* SDLTouchCoordSpec.m */, @@ -2461,8 +2503,6 @@ children = ( 5D4D67AA1D2ED37A00468B4A /* SDLNotificationDispatcher.h */, 5D4D67AB1D2ED37A00468B4A /* SDLNotificationDispatcher.m */, - 5D3E48791D6F888E0000BFEF /* SDLRPCResponseNotification.h */, - 5D3E487A1D6F888E0000BFEF /* SDLRPCResponseNotification.m */, 5D3E487D1D6F88A30000BFEF /* SDLRPCNotificationNotification.h */, 5D3E487E1D6F88A30000BFEF /* SDLRPCNotificationNotification.m */, ); @@ -2472,6 +2512,8 @@ 5D3E48821D74813B0000BFEF /* Responses */ = { isa = PBXGroup; children = ( + 5D3E48791D6F888E0000BFEF /* SDLRPCResponseNotification.h */, + 5D3E487A1D6F888E0000BFEF /* SDLRPCResponseNotification.m */, 5D4D67AE1D2FE2F900468B4A /* SDLResponseDispatcher.h */, 5D4D67AF1D2FE2F900468B4A /* SDLResponseDispatcher.m */, ); @@ -2673,6 +2715,8 @@ 5D61FAB71A84238A00846EE7 /* SDLEndAudioPassThru.m */, 5D61FAC41A84238A00846EE7 /* SDLGetDTCs.h */, 5D61FAC51A84238A00846EE7 /* SDLGetDTCs.m */, + 5D00AC6D1F1511B9004000D9 /* SDLGetSystemCapability.h */, + 5D00AC6E1F1511B9004000D9 /* SDLGetSystemCapability.m */, 5D61FAC81A84238A00846EE7 /* SDLGetVehicleData.h */, 5D61FAC91A84238A00846EE7 /* SDLGetVehicleData.m */, DA9F7E6D1DCBFFDB00ACAE48 /* SDLGetWaypoints.h */, @@ -2693,6 +2737,8 @@ 5D61FB771A84238B00846EE7 /* SDLResetGlobalProperties.m */, 5D61FB8E1A84238B00846EE7 /* SDLScrollableMessage.h */, 5D61FB8F1A84238B00846EE7 /* SDLScrollableMessage.m */, + 5DCF76F31ACDBAD300BB647B /* SDLSendLocation.h */, + 5DCF76F41ACDBAD300BB647B /* SDLSendLocation.m */, 5D61FB921A84238B00846EE7 /* SDLSetAppIcon.h */, 5D61FB931A84238B00846EE7 /* SDLSetAppIcon.m */, 5D61FB961A84238B00846EE7 /* SDLSetDisplayLayout.h */, @@ -2729,8 +2775,6 @@ DA9F7E921DCC04E400ACAE48 /* SDLUnsubscribeWaypoints.m */, 5D61FC041A84238C00846EE7 /* SDLUpdateTurnList.h */, 5D61FC051A84238C00846EE7 /* SDLUpdateTurnList.m */, - 5DCF76F31ACDBAD300BB647B /* SDLSendLocation.h */, - 5DCF76F41ACDBAD300BB647B /* SDLSendLocation.m */, ); name = Requests; sourceTree = "<group>"; @@ -2770,6 +2814,8 @@ 5D61FAC31A84238A00846EE7 /* SDLGenericResponse.m */, 5D61FAC61A84238A00846EE7 /* SDLGetDTCsResponse.h */, 5D61FAC71A84238A00846EE7 /* SDLGetDTCsResponse.m */, + 5D00AC711F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h */, + 5D00AC721F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m */, 5D61FACA1A84238A00846EE7 /* SDLGetVehicleDataResponse.h */, 5D61FACB1A84238A00846EE7 /* SDLGetVehicleDataResponse.m */, DA9F7E711DCC004C00ACAE48 /* SDLGetWaypointsResponse.h */, @@ -2889,12 +2935,16 @@ 5D61FB0C1A84238A00846EE7 /* SDLMenuParams.m */, 5D61FB0D1A84238A00846EE7 /* SDLMyKey.h */, 5D61FB0E1A84238A00846EE7 /* SDLMyKey.m */, + 5D00AC751F15283E004000D9 /* SDLNavigationCapability.h */, + 5D00AC761F15283E004000D9 /* SDLNavigationCapability.m */, DA9F7E651DCBFAD400ACAE48 /* SDLOasisAddress.h */, DA9F7E661DCBFAD400ACAE48 /* SDLOasisAddress.m */, 5D61FB361A84238B00846EE7 /* SDLParameterPermissions.h */, 5D61FB371A84238B00846EE7 /* SDLParameterPermissions.m */, 5D61FB401A84238B00846EE7 /* SDLPermissionItem.h */, 5D61FB411A84238B00846EE7 /* SDLPermissionItem.m */, + 5D00AC791F15287E004000D9 /* SDLPhoneCapability.h */, + 5D00AC7A1F15287E004000D9 /* SDLPhoneCapability.m */, 5D61FB4E1A84238B00846EE7 /* SDLPresetBankCapabilities.h */, 5D61FB4F1A84238B00846EE7 /* SDLPresetBankCapabilities.m */, 5D61FB8C1A84238B00846EE7 /* SDLScreenParams.h */, @@ -2909,6 +2959,8 @@ 5D61FBBF1A84238B00846EE7 /* SDLStartTime.m */, 5D61FBC81A84238B00846EE7 /* SDLSyncMsgVersion.h */, 5D61FBC91A84238B00846EE7 /* SDLSyncMsgVersion.m */, + 5D00AC691F141339004000D9 /* SDLSystemCapability.h */, + 5D00AC6A1F141339004000D9 /* SDLSystemCapability.m */, 5D61FBDC1A84238C00846EE7 /* SDLTextField.h */, 5D61FBDD1A84238C00846EE7 /* SDLTextField.m */, 5D61FBE21A84238C00846EE7 /* SDLTireStatus.h */, @@ -3039,6 +3091,8 @@ 5D61FBBD1A84238B00846EE7 /* SDLSpeechCapabilities.m */, 5D61FBCE1A84238B00846EE7 /* SDLSystemAction.h */, 5D61FBCF1A84238B00846EE7 /* SDLSystemAction.m */, + 5D00AC651F140F0A004000D9 /* SDLSystemCapabilityType.h */, + 5D00AC661F140F0A004000D9 /* SDLSystemCapabilityType.m */, 5D61FBD01A84238B00846EE7 /* SDLSystemContext.h */, 5D61FBD11A84238B00846EE7 /* SDLSystemContext.m */, 5D61FBD61A84238B00846EE7 /* SDLTBTState.h */, @@ -3948,6 +4002,7 @@ 5D61FC6D1A84238C00846EE7 /* SDLCreateInteractionChoiceSetResponse.h in Headers */, 5D8204221BCEA89A00D0A41B /* SDLFileManager.h in Headers */, 5D4D67B41D30161600468B4A /* SDLLockScreenManager.h in Headers */, + 5D00AC7B1F15287E004000D9 /* SDLPhoneCapability.h in Headers */, 5D61FE111A84238C00846EE7 /* SDLWarningLightStatus.h in Headers */, 5D61FC7A1A84238C00846EE7 /* SDLDeleteInteractionChoiceSet.h in Headers */, 5D61FC3B1A84238C00846EE7 /* SDLAlertManeuverResponse.h in Headers */, @@ -4000,6 +4055,7 @@ 5D61FC4F1A84238C00846EE7 /* SDLBodyInformation.h in Headers */, 5D61FDAB1A84238C00846EE7 /* SDLStartTime.h in Headers */, 5D61FD071A84238C00846EE7 /* SDLOnCommand.h in Headers */, + 5D00AC671F140F0A004000D9 /* SDLSystemCapabilityType.h in Headers */, DA9F7E9B1DCC052C00ACAE48 /* SDLLocationDetails.h in Headers */, 5D61FD1D1A84238C00846EE7 /* SDLOnTBTClientState.h in Headers */, 5D61FD9D1A84238C00846EE7 /* SDLSliderResponse.h in Headers */, @@ -4028,6 +4084,7 @@ 5D61FD971A84238C00846EE7 /* SDLSingleTireStatus.h in Headers */, 5D61FCE21A84238C00846EE7 /* SDLKeyboardLayout.h in Headers */, 5D76E3241D39767000647CFA /* SDLLockScreenPresenter.h in Headers */, + 5D00AC6F1F1511B9004000D9 /* SDLGetSystemCapability.h in Headers */, 5D61FD891A84238C00846EE7 /* SDLSetGlobalPropertiesResponse.h in Headers */, 5D61FD8D1A84238C00846EE7 /* SDLSetMediaClockTimerResponse.h in Headers */, 5D61FD3B1A84238C00846EE7 /* SDLPresetBankCapabilities.h in Headers */, @@ -4044,6 +4101,7 @@ 5D61FC291A84238C00846EE7 /* SDLAbstractProtocol.h in Headers */, 5D61FDE11A84238C00846EE7 /* SDLTurn.h in Headers */, 5D61FC801A84238C00846EE7 /* SDLDeleteSubMenuResponse.h in Headers */, + 5D00AC731F151CFE004000D9 /* SDLGetSystemCapabilityResponse.h in Headers */, 5D61FDBD1A84238C00846EE7 /* SDLSystemContext.h in Headers */, 5D61FC511A84238C00846EE7 /* SDLButtonCapabilities.h in Headers */, 5D61FDE91A84238C00846EE7 /* SDLUnsubscribeButtonResponse.h in Headers */, @@ -4094,6 +4152,7 @@ 5D3E487F1D6F88A30000BFEF /* SDLRPCNotificationNotification.h in Headers */, 5D4D67B01D2FE2F900468B4A /* SDLResponseDispatcher.h in Headers */, 5D61FCF21A84238C00846EE7 /* SDLLockScreenStatus.h in Headers */, + 5D00AC771F15283E004000D9 /* SDLNavigationCapability.h in Headers */, 5D61FCD31A84238C00846EE7 /* SDLImageResolution.h in Headers */, 5D61FD541A84238C00846EE7 /* SDLProxyListener.h in Headers */, 5D61FD731A84238C00846EE7 /* SDLRPCRequestFactory.h in Headers */, @@ -4219,6 +4278,7 @@ DAC5726C1D11B4840004288B /* SDLTouchManagerDelegate.h in Headers */, 5D61FD3F1A84238C00846EE7 /* SDLPrioritizedObjectCollection.h in Headers */, 5D61FCBF1A84238C00846EE7 /* SDLHexUtility.h in Headers */, + 5D00AC6B1F141339004000D9 /* SDLSystemCapability.h in Headers */, 5D61FCA21A84238C00846EE7 /* SDLEncoder.h in Headers */, 5D61FCDE1A84238C00846EE7 /* SDLJsonEncoder.h in Headers */, 5D61FCDC1A84238C00846EE7 /* SDLJsonDecoder.h in Headers */, @@ -4528,6 +4588,7 @@ 5D61FC4C1A84238C00846EE7 /* SDLBeltStatus.m in Sources */, DA9F7E8C1DCC04B000ACAE48 /* SDLSubscribeWaypointsResponse.m in Sources */, 5D61FDA41A84238C00846EE7 /* SDLSoftButtonType.m in Sources */, + 5D00AC6C1F141339004000D9 /* SDLSystemCapability.m in Sources */, 5D61FC521A84238C00846EE7 /* SDLButtonCapabilities.m in Sources */, 5D61FC791A84238C00846EE7 /* SDLDeleteFileResponse.m in Sources */, 5D3E48801D6F88A30000BFEF /* SDLRPCNotificationNotification.m in Sources */, @@ -4551,6 +4612,7 @@ 5D61FCBE1A84238C00846EE7 /* SDLHeadLampStatus.m in Sources */, 5D61FD921A84238C00846EE7 /* SDLShowConstantTBT.m in Sources */, 5D61FC4E1A84238C00846EE7 /* SDLBitsPerSample.m in Sources */, + 5D00AC701F1511B9004000D9 /* SDLGetSystemCapability.m in Sources */, 5D61FDEA1A84238C00846EE7 /* SDLUnsubscribeButtonResponse.m in Sources */, 5D61FCA61A84238C00846EE7 /* SDLEndAudioPassThruResponse.m in Sources */, 5DCC19A11B8221F3004FFAD9 /* SDLURLSession.m in Sources */, @@ -4570,6 +4632,7 @@ 5D61FDBC1A84238C00846EE7 /* SDLSystemAction.m in Sources */, 5D61FC381A84238C00846EE7 /* SDLAlert.m in Sources */, 5D61FD2C1A84238C00846EE7 /* SDLPerformInteractionResponse.m in Sources */, + 5D00AC7C1F15287E004000D9 /* SDLPhoneCapability.m in Sources */, 5D61FDF21A84238C00846EE7 /* SDLUpdateTurnList.m in Sources */, 5D61FD101A84238C00846EE7 /* SDLOnHMIStatus.m in Sources */, 5D61FC301A84238C00846EE7 /* SDLAddCommandResponse.m in Sources */, @@ -4579,12 +4642,14 @@ 5D8204231BCEA89A00D0A41B /* SDLFileManager.m in Sources */, 5D61FC7D1A84238C00846EE7 /* SDLDeleteInteractionChoiceSetResponse.m in Sources */, DAC572661D10C5640004288B /* CGPoint_Util.m in Sources */, + 5D00AC681F140F0A004000D9 /* SDLSystemCapabilityType.m in Sources */, E9C32B9D1AB20C5900F283AF /* EAAccessory+SDLProtocols.m in Sources */, 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 */, + 5D00AC781F15283E004000D9 /* SDLNavigationCapability.m in Sources */, 5D61FDB01A84238C00846EE7 /* SDLSubscribeButtonResponse.m in Sources */, 5DCF76F61ACDBAD300BB647B /* SDLSendLocation.m in Sources */, 5D76E3251D39767000647CFA /* SDLLockScreenPresenter.m in Sources */, @@ -4621,6 +4686,7 @@ 5D61FC661A84238C00846EE7 /* SDLCompassDirection.m in Sources */, 5D61FD841A84238C00846EE7 /* SDLSetDisplayLayout.m in Sources */, DA9F7E701DCBFFDB00ACAE48 /* SDLGetWaypoints.m in Sources */, + 5D00AC741F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m in Sources */, 5D61FE001A84238C00846EE7 /* SDLVehicleDataEventStatus.m in Sources */, 5D61FDC41A84238C00846EE7 /* SDLTBTState.m in Sources */, 5D61FDA61A84238C00846EE7 /* SDLSpeak.m in Sources */, @@ -4759,6 +4825,7 @@ 162E82EA1A9BDE8B00906325 /* SDLLanguageSpec.m in Sources */, 5D76E3291D3D0A8800647CFA /* SDLFakeViewControllerPresenter.m in Sources */, 162E83331A9BDE8B00906325 /* SDLPerformInteractionSpec.m in Sources */, + 5D0A9F951F15585B00CC80DD /* SDLPhoneCapabilitySpec.m in Sources */, 1680B11A1A9CD7AD00DBD79E /* SDLAbstractProtocolSpec.m in Sources */, 1680B1151A9CD7AD00DBD79E /* SDLV2ProtocolHeaderSpec.m in Sources */, 162E83101A9BDE8B00906325 /* SDLOnAudioPassThruSpec.m in Sources */, @@ -4804,6 +4871,7 @@ 162E832B1A9BDE8B00906325 /* SDLDeleteSubMenuSpec.m in Sources */, 162E83411A9BDE8B00906325 /* SDLSubscribeButtonSpec.m in Sources */, 5D59DD471B14FDEE00BE744D /* SDLLockScreenStatusManagerSpec.m in Sources */, + 5D0A9F9A1F15636800CC80DD /* SDLGetSystemCapabilitiesSpec.m in Sources */, 162E82F31A9BDE8B00906325 /* SDLPrerecordedSpeechSpec.m in Sources */, 162E83691A9BDE8B00906325 /* SDLSubscribeButtonResponseSpec.m in Sources */, 5DAE06751BDEC6D600F9B498 /* SDLArtworkSpec.m in Sources */, @@ -4876,6 +4944,7 @@ 162E82DF1A9BDE8B00906325 /* SDLGlobalProperySpec.m in Sources */, 162E82F61A9BDE8B00906325 /* SDLRequestTypeSpec.m in Sources */, 162E82FB1A9BDE8B00906325 /* SDLSpeechCapabilitiesSpec.m in Sources */, + 5D0A9F9C1F1565EB00CC80DD /* SDLGetSystemCapabilitiesResponseSpec.m in Sources */, 162E830D1A9BDE8B00906325 /* SDLWiperStatusSpec.m in Sources */, 162E832C1A9BDE8B00906325 /* SDLDiagnosticMessageSpec.m in Sources */, 5DF2BB9D1B94E38A00CE5994 /* SDLURLSessionSpec.m in Sources */, @@ -4942,6 +5011,7 @@ 162E83611A9BDE8B00906325 /* SDLSetAppIconResponseSpec.m in Sources */, 162E83471A9BDE8B00906325 /* SDLUnsubscribeVehicleDataSpec.m in Sources */, 162E839A1A9BDE8B00906325 /* SDLRPCMessageSpec.m in Sources */, + 5D0A9F911F15550400CC80DD /* SDLSystemCapabilityTypeSpec.m in Sources */, 162E83311A9BDE8B00906325 /* SDLListFilesSpec.m in Sources */, DA9F7EB01DCC063400ACAE48 /* SDLLocationDetailsSpec.m in Sources */, 5DC978261B7A38640012C2F1 /* SDLGlobalsSpec.m in Sources */, @@ -4964,6 +5034,7 @@ 162E83781A9BDE8B00906325 /* SDLDeviceInfoSpec.m in Sources */, 162E83391A9BDE8B00906325 /* SDLSetAppIconSpec.m in Sources */, 162E83011A9BDE8B00906325 /* SDLTimerModeSpec.m in Sources */, + 5D0A9F931F15560B00CC80DD /* SDLNavigationCapabilitySpec.m in Sources */, 162E83891A9BDE8B00906325 /* SDLScreenParamsSpec.m in Sources */, 162E83441A9BDE8B00906325 /* SDLSystemRequestSpec.m in Sources */, 162E83001A9BDE8B00906325 /* SDLTextFieldNameSpec.m in Sources */, @@ -5003,6 +5074,7 @@ DA9F7EA81DCC060B00ACAE48 /* SDLGetWaypointsResponseSpec.m in Sources */, 162E830A1A9BDE8B00906325 /* SDLVehicleDataTypeSpec.m in Sources */, 5DB1BCD31D243A8E002FFC37 /* SDLDeleteFileOperationSpec.m in Sources */, + 5D0A9F971F1559EC00CC80DD /* SDLSystemCapabilitySpec.m in Sources */, 162E82F41A9BDE8B00906325 /* SDLPrimaryAudioSource.m in Sources */, 5DBAE0AB1D3588AC00CE00BF /* SDLNotificationDispatcherSpec.m in Sources */, 162E83461A9BDE8B00906325 /* SDLUnsubscribeButtonSpec.m in Sources */, diff --git a/SmartDeviceLink/SDLFunctionID.m b/SmartDeviceLink/SDLFunctionID.m index 087e822b5..63fe54310 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_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_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_GetSystemCapability, @"48", 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/SDLGetSystemCapability.h b/SmartDeviceLink/SDLGetSystemCapability.h new file mode 100644 index 000000000..43f98c468 --- /dev/null +++ b/SmartDeviceLink/SDLGetSystemCapability.h @@ -0,0 +1,29 @@ +// +// SDLGetSystemCapability.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> + +#import "SDLRPCRequest.h" + +@class SDLSystemCapabilityType; + +@interface SDLGetSystemCapability : SDLRPCRequest + +- (instancetype)init; +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +- (instancetype)initWithType:(SDLSystemCapabilityType *)type; + +/** + They type of capability you'd like to receive in the response. + + Mandatory + */ +@property (strong, nonatomic) SDLSystemCapabilityType *systemCapabilityType; + +@end diff --git a/SmartDeviceLink/SDLGetSystemCapability.m b/SmartDeviceLink/SDLGetSystemCapability.m new file mode 100644 index 000000000..f253c315a --- /dev/null +++ b/SmartDeviceLink/SDLGetSystemCapability.m @@ -0,0 +1,56 @@ +// +// SDLGetSystemCapability.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLGetSystemCapability.h" + +#import "SDLNames.h" +#import "SDLSystemCapabilityType.h" + +@implementation SDLGetSystemCapability + +- (instancetype)init { + if (self = [super initWithName:NAMES_GetSystemCapability]) { + } + return self; +} + +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { + if (self = [super initWithDictionary:dict]) { + } + return self; +} + +- (instancetype)initWithType:(SDLSystemCapabilityType *)type { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapabilityType = type; + + return self; +} + +- (void)setSystemCapabilityType:(SDLSystemCapabilityType *)type { + if (type != nil) { + [parameters setObject:type forKey:NAMES_systemCapabilityType]; + } else { + [parameters removeObjectForKey:NAMES_systemCapabilityType]; + } +} + +- (SDLSystemCapabilityType *)systemCapabilityType { + id obj = parameters[NAMES_systemCapabilityType]; + if (obj == nil || [obj isKindOfClass:SDLSystemCapabilityType.class]) { + return (SDLSystemCapabilityType *)obj; + } else { + return [SDLSystemCapabilityType valueOf:(NSString *)obj]; + } +} + +@end diff --git a/SmartDeviceLink/SDLGetSystemCapabilityResponse.h b/SmartDeviceLink/SDLGetSystemCapabilityResponse.h new file mode 100644 index 000000000..e22917480 --- /dev/null +++ b/SmartDeviceLink/SDLGetSystemCapabilityResponse.h @@ -0,0 +1,22 @@ +// +// SDLGetSystemCapabilityResponse.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> + +#import "SDLRPCResponse.h" + +@class SDLSystemCapability; + +@interface SDLGetSystemCapabilityResponse : SDLRPCResponse + +- (instancetype)init; +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +@property (strong, nonatomic) SDLSystemCapability *systemCapability; + +@end diff --git a/SmartDeviceLink/SDLGetSystemCapabilityResponse.m b/SmartDeviceLink/SDLGetSystemCapabilityResponse.m new file mode 100644 index 000000000..5470c4379 --- /dev/null +++ b/SmartDeviceLink/SDLGetSystemCapabilityResponse.m @@ -0,0 +1,46 @@ +// +// SDLGetSystemCapabilityResponse.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLGetSystemCapabilityResponse.h" + +#import "SDLNames.h" +#import "SDLSystemCapability.h" + + +@implementation SDLGetSystemCapabilityResponse + +- (instancetype)init { + if (self = [super initWithName:NAMES_GetSystemCapability]) { + } + return self; +} + +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { + if (self = [super initWithDictionary:dict]) { + } + return self; +} + +- (void)setSystemCapability:(SDLSystemCapability *)systemCapability { + if (systemCapability != nil) { + parameters[NAMES_systemCapability] = systemCapability; + } else { + [parameters removeObjectForKey:NAMES_systemCapability]; + } +} + +- (SDLSystemCapability *)systemCapability { + NSObject *obj = [parameters objectForKey:NAMES_systemCapability]; + if (obj == nil || [obj isKindOfClass:SDLSystemCapability.class]) { + return (SDLSystemCapability *)obj; + } else { + return [[SDLSystemCapability alloc] initWithDictionary:(NSMutableDictionary *)obj]; + } +} + +@end diff --git a/SmartDeviceLink/SDLHeadLampStatus.h b/SmartDeviceLink/SDLHeadLampStatus.h index cc1586122..4cdfd992c 100644 --- a/SmartDeviceLink/SDLHeadLampStatus.h +++ b/SmartDeviceLink/SDLHeadLampStatus.h @@ -30,4 +30,4 @@ */ @property (strong) NSNumber *highBeamsOn; @property (strong) SDLAmbientLightStatus *ambientLightSensorStatus; -@end
\ No newline at end of file +@end diff --git a/SmartDeviceLink/SDLNames.h b/SmartDeviceLink/SDLNames.h index aab999283..61bc53a06 100644 --- a/SmartDeviceLink/SDLNames.h +++ b/SmartDeviceLink/SDLNames.h @@ -75,6 +75,7 @@ #define NAMES_deviceInfo @"deviceInfo" #define NAMES_deviceStatus @"deviceStatus" #define NAMES_DiagnosticMessage @"DiagnosticMessage" +#define NAMES_dialNumberEnabled @"dialNumberEnabled" #define NAMES_didLocation @"didLocation" #define NAMES_didResult @"didResult" #define NAMES_dimension @"dimension" @@ -122,8 +123,10 @@ #define NAMES_fuelMaintenanceMode @"fuelMaintenanceMode" #define NAMES_GenericResponse @"GenericResponse" #define NAMES_GetDTCs @"GetDTCs" +#define NAMES_GetSystemCapability @"GetSystemCapability" #define NAMES_GetVehicleData @"GetVehicleData" #define NAMES_GetWaypoints @"GetWayPoints" +#define NAMES_getWayPointsEnabled @"getWayPointsEnabled" #define NAMES_gps @"gps" #define NAMES_graphic @"graphic" #define NAMES_graphicSupported @"graphicSupported" @@ -226,6 +229,7 @@ #define NAMES_myKey @"myKey" #define NAMES_name @"name" #define NAMES_navigation @"navigation" +#define NAMES_navigationCapability @"navigationCapability" #define NAMES_navigationText @"navigationText" #define NAMES_navigationText1 @"navigationText1" #define NAMES_navigationText2 @"navigationText2" @@ -277,6 +281,7 @@ #define NAMES_permissionItem @"permissionItem" #define NAMES_persistentFile @"persistentFile" #define NAMES_phoneCall @"phoneCall" +#define NAMES_phoneCapability @"phoneCapability" #define NAMES_phoneNumber @"phoneNumber" #define NAMES_phoneRoaming @"phoneRoaming" #define NAMES_playTone @"playTone" @@ -332,6 +337,7 @@ #define NAMES_second @"second" #define NAMES_seconds @"seconds" #define NAMES_SendLocation @"SendLocation" +#define NAMES_sendLocationEnabled @"sendLocationEnabled" #define NAMES_SetAppIcon @"SetAppIcon" #define NAMES_SetDisplayLayout @"SetDisplayLayout" #define NAMES_SetGlobalProperties @"SetGlobalProperties" @@ -372,6 +378,8 @@ #define NAMES_syncMsgVersion @"syncMsgVersion" #define NAMES_SyncPData @"SyncPData" #define NAMES_systemAction @"systemAction" +#define NAMES_systemCapability @"systemCapability" +#define NAMES_systemCapabilityType @"systemCapabilityType" #define NAMES_systemContext @"systemContext" #define NAMES_systemFile @"systemFile" #define NAMES_SystemRequest @"SystemRequest" diff --git a/SmartDeviceLink/SDLNavigationCapability.h b/SmartDeviceLink/SDLNavigationCapability.h new file mode 100644 index 000000000..46cc76193 --- /dev/null +++ b/SmartDeviceLink/SDLNavigationCapability.h @@ -0,0 +1,38 @@ +// +// SDLNavigationCapability.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLRPCStruct.h" + +@interface SDLNavigationCapability : SDLRPCStruct + +/** + * @abstract Constructs a newly allocated SDLNavigationCapability struct + */ +- (instancetype)init; + +/** + * @abstract Constructs a newly allocated SDLNavigationCapability struct indicated by the dictionary parameter + * @param dict The dictionary to use + */ +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +- (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled; + +/** + Whether or not the SendLocation RPC is enabled. + Boolean, optional + */ +@property (copy, nonatomic) NSNumber *sendLocationEnabled; + +/** + Whether or not Waypoint related RPCs are enabled. + Boolean, optional + */ +@property (copy, nonatomic) NSNumber *getWayPointsEnabled; + +@end diff --git a/SmartDeviceLink/SDLNavigationCapability.m b/SmartDeviceLink/SDLNavigationCapability.m new file mode 100644 index 000000000..da7e372fa --- /dev/null +++ b/SmartDeviceLink/SDLNavigationCapability.m @@ -0,0 +1,66 @@ +// +// SDLNavigationCapability.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLNavigationCapability.h" + +#import "SDLNames.h" + +@implementation SDLNavigationCapability + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + + return self; +} + +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { + if (self = [super initWithDictionary:dict]) { + } + return self; +} + +- (instancetype)initWithSendLocation:(BOOL)sendLocationEnabled waypoints:(BOOL)waypointsEnabled { + self = [self init]; + if (!self) { + return self; + } + + self.sendLocationEnabled = @(sendLocationEnabled); + self.getWayPointsEnabled = @(waypointsEnabled); + + return self; +} + +- (void)setSendLocationEnabled:(NSNumber *)sendLocationEnabled { + if (sendLocationEnabled != nil) { + store[NAMES_sendLocationEnabled] = sendLocationEnabled; + } else { + [store removeObjectForKey:NAMES_sendLocationEnabled]; + } +} + +- (NSNumber *)sendLocationEnabled { + return store[NAMES_sendLocationEnabled]; +} + +- (void)setGetWayPointsEnabled:(NSNumber *)getWayPointsEnabled { + if (getWayPointsEnabled != nil) { + store[NAMES_getWayPointsEnabled] = getWayPointsEnabled; + } else { + [store removeObjectForKey:NAMES_getWayPointsEnabled]; + } +} + +- (NSNumber *)getWayPointsEnabled { + return store[NAMES_getWayPointsEnabled]; +} + +@end diff --git a/SmartDeviceLink/SDLNotificationConstants.h b/SmartDeviceLink/SDLNotificationConstants.h index 63fad1b25..05b9b047d 100644 --- a/SmartDeviceLink/SDLNotificationConstants.h +++ b/SmartDeviceLink/SDLNotificationConstants.h @@ -78,6 +78,7 @@ extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse; extern SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse; extern SDLNotificationName const SDLDidReceiveGenericResponse; extern SDLNotificationName const SDLDidReceiveGetDTCsResponse; +extern SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse; extern SDLNotificationName const SDLDidReceiveGetVehicleDataResponse; extern SDLNotificationName const SDLDidReceiveGetWaypointsResponse; extern SDLNotificationName const SDLDidReceiveListFilesResponse; diff --git a/SmartDeviceLink/SDLNotificationConstants.m b/SmartDeviceLink/SDLNotificationConstants.m index 8e02d6647..43fd0a473 100644 --- a/SmartDeviceLink/SDLNotificationConstants.m +++ b/SmartDeviceLink/SDLNotificationConstants.m @@ -36,6 +36,7 @@ SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.resp SDLNotificationName const SDLDidReceiveEndAudioPassThruResponse = @"com.sdl.response.endAudioPassThru"; SDLNotificationName const SDLDidReceiveGenericResponse = @"com.sdl.response.generic"; SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.getDTCs"; +SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse = @"com.sdl.response.getSystemCapabilities"; SDLNotificationName const SDLDidReceiveGetVehicleDataResponse = @"com.sdl.response.getVehicleData"; SDLNotificationName const SDLDidReceiveGetWaypointsResponse = @"com.sdl.response.getWaypoints"; SDLNotificationName const SDLDidReceiveListFilesResponse = @"com.sdl.response.listFiles"; diff --git a/SmartDeviceLink/SDLNotificationDispatcher.m b/SmartDeviceLink/SDLNotificationDispatcher.m index cae44a5fd..00ae1f962 100644 --- a/SmartDeviceLink/SDLNotificationDispatcher.m +++ b/SmartDeviceLink/SDLNotificationDispatcher.m @@ -142,6 +142,10 @@ NS_ASSUME_NONNULL_BEGIN [self postRPCResponseNotification:SDLDidReceiveGetDTCsResponse response:response]; } +- (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response { + [self postRPCResponseNotification:SDLDidReceiveGetSystemCapabilitiesResponse response:response]; +} + - (void)onGetVehicleDataResponse:(SDLGetVehicleDataResponse *)response { [self postRPCResponseNotification:SDLDidReceiveGetVehicleDataResponse response:response]; } diff --git a/SmartDeviceLink/SDLPhoneCapability.h b/SmartDeviceLink/SDLPhoneCapability.h new file mode 100644 index 000000000..a15a62190 --- /dev/null +++ b/SmartDeviceLink/SDLPhoneCapability.h @@ -0,0 +1,32 @@ +// +// SDLPhoneCapability.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLRPCStruct.h" + +@interface SDLPhoneCapability : SDLRPCStruct + +/** + * @abstract Constructs a newly allocated SDLPhoneCapability struct + */ +- (instancetype)init; + +/** + * @abstract Constructs a newly allocated SDLPhoneCapability struct indicated by the dictionary parameter + * @param dict The dictionary to use + */ +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +- (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled; + +/** + Whether or not the DialNumber RPC is enabled. + Boolean, optional + */ +@property (strong, nonatomic) NSNumber *dialNumberEnabled; + +@end diff --git a/SmartDeviceLink/SDLPhoneCapability.m b/SmartDeviceLink/SDLPhoneCapability.m new file mode 100644 index 000000000..0744dc9e2 --- /dev/null +++ b/SmartDeviceLink/SDLPhoneCapability.m @@ -0,0 +1,54 @@ +// +// SDLPhoneCapability.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/11/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLPhoneCapability.h" + +#import "SDLNames.h" + + +@implementation SDLPhoneCapability + +- (instancetype)init { + self = [super init]; + if (!self) { + return nil; + } + + return self; +} + +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { + if (self = [super initWithDictionary:dict]) { + } + return self; +} + +- (instancetype)initWithDialNumber:(BOOL)dialNumberEnabled { + self = [self init]; + if (!self) { + return self; + } + + self.dialNumberEnabled = @(dialNumberEnabled); + + return self; +} + +- (void)setDialNumberEnabled:(NSNumber *)dialNumberEnabled { + if (dialNumberEnabled != nil) { + store[NAMES_dialNumberEnabled] = dialNumberEnabled; + } else { + [store removeObjectForKey:NAMES_dialNumberEnabled]; + } +} + +- (NSNumber *)dialNumberEnabled { + return store[NAMES_dialNumberEnabled]; +} + +@end diff --git a/SmartDeviceLink/SDLProxyListener.h b/SmartDeviceLink/SDLProxyListener.h index 0de048633..359e2ed1f 100644 --- a/SmartDeviceLink/SDLProxyListener.h +++ b/SmartDeviceLink/SDLProxyListener.h @@ -19,6 +19,7 @@ @class SDLEndAudioPassThruResponse; @class SDLGenericResponse; @class SDLGetDTCsResponse; +@class SDLGetSystemCapabilityResponse; @class SDLGetVehicleDataResponse; @class SDLGetWaypointsResponse; @class SDLListFilesResponse; @@ -95,6 +96,7 @@ - (void)onError:(NSException *)e; - (void)onGenericResponse:(SDLGenericResponse *)response; - (void)onGetDTCsResponse:(SDLGetDTCsResponse *)response; +- (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response; - (void)onGetVehicleDataResponse:(SDLGetVehicleDataResponse *)response; - (void)onGetWayPointsResponse:(SDLGetWaypointsResponse *)response; - (void)onListFilesResponse:(SDLListFilesResponse *)response; diff --git a/SmartDeviceLink/SDLSystemCapability.h b/SmartDeviceLink/SDLSystemCapability.h new file mode 100644 index 000000000..0c5b8ed2d --- /dev/null +++ b/SmartDeviceLink/SDLSystemCapability.h @@ -0,0 +1,44 @@ +// +// SDLSystemCapability.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/10/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> + +#import "SDLRPCStruct.h" + +@class SDLPhoneCapability; +@class SDLNavigationCapability; +@class SDLSystemCapabilityType; + +/** + The systemCapabilityType indicates which type of data should be changed and identifies which data object exists in this struct. For example, if the SystemCapability Type is NAVIGATION then a "navigationCapability" should exist. + * First implemented in SDL Core v4.4 + */ +@interface SDLSystemCapability : SDLRPCStruct + +/** + * @abstract Constructs a newly allocated SDLSystemCapability object + */ +- (instancetype)init; + +/** + * @abstract Constructs a newly allocated SDLSystemCapability object indicated by the dictionary parameter + * @param dict The dictionary to use + */ +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict; + +- (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability; + +- (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability; + +@property (strong, nonatomic) SDLSystemCapabilityType *systemCapabilityType; + +@property (strong, nonatomic) SDLNavigationCapability *navigationCapability; + +@property (strong, nonatomic) SDLPhoneCapability *phoneCapability; + +@end diff --git a/SmartDeviceLink/SDLSystemCapability.m b/SmartDeviceLink/SDLSystemCapability.m new file mode 100644 index 000000000..45c614320 --- /dev/null +++ b/SmartDeviceLink/SDLSystemCapability.m @@ -0,0 +1,107 @@ +// +// SDLSystemCapability.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/10/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLSystemCapability.h" + +#import "SDLNames.h" +#import "SDLNavigationCapability.h" +#import "SDLPhoneCapability.h" +#import "SDLSystemCapabilityType.h" + +@implementation SDLSystemCapability + +- (instancetype)init { + if (self = [super init]) { + } + return self; +} + +- (instancetype)initWithDictionary:(NSMutableDictionary *)dict { + if (self = [super initWithDictionary:dict]) { + } + return self; +} + +- (instancetype)initWithPhoneCapability:(SDLPhoneCapability *)capability { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapabilityType = [SDLSystemCapabilityType PHONE_CALL]; + self.phoneCapability = capability; + + return self; +} + +- (instancetype)initWithNavigationCapability:(SDLNavigationCapability *)capability { + self = [self init]; + if (!self) { + return nil; + } + + self.systemCapabilityType = [SDLSystemCapabilityType NAVIGATION]; + self.navigationCapability = capability; + + return self; +} + +- (void)setSystemCapabilityType:(SDLSystemCapabilityType *)type { + if (type != nil) { + [store setObject:type forKey:NAMES_systemCapabilityType]; + } else { + [store removeObjectForKey:NAMES_systemCapabilityType]; + } +} + +- (SDLSystemCapabilityType *)systemCapabilityType { + id obj = store[NAMES_systemCapabilityType]; + if (obj == nil || [obj isKindOfClass:SDLSystemCapabilityType.class]) { + return (SDLSystemCapabilityType *)obj; + } else { + return [SDLSystemCapabilityType valueOf:(NSString *)obj]; + } +} + +// TODO: Nav / Phone Capability + +- (void)setNavigationCapability:(SDLNavigationCapability *)navigationCapability { + if (navigationCapability != nil) { + store[NAMES_navigationCapability] = navigationCapability; + } else { + [store removeObjectForKey:NAMES_navigationCapability]; + } +} + +- (SDLNavigationCapability *)navigationCapability { + NSObject *obj = store[NAMES_navigationCapability]; + if (obj == nil || [obj isKindOfClass:SDLNavigationCapability.class]) { + return (SDLNavigationCapability *)obj; + } else { + return [[SDLNavigationCapability alloc] initWithDictionary:(NSMutableDictionary *)obj]; + } +} + +- (void)setPhoneCapability:(SDLPhoneCapability *)phoneCapability { + if (phoneCapability != nil) { + store[NAMES_phoneCapability] = phoneCapability; + } else { + [store removeObjectForKey:NAMES_phoneCapability]; + } +} + +- (SDLPhoneCapability *)phoneCapability { + NSObject *obj = store[NAMES_phoneCapability]; + if (obj == nil || [obj isKindOfClass:SDLPhoneCapability.class]) { + return (SDLPhoneCapability *)obj; + } else { + return [[SDLPhoneCapability alloc] initWithDictionary:(NSMutableDictionary *)obj]; + } +} + +@end diff --git a/SmartDeviceLink/SDLSystemCapabilityType.h b/SmartDeviceLink/SDLSystemCapabilityType.h new file mode 100644 index 000000000..d79f44180 --- /dev/null +++ b/SmartDeviceLink/SDLSystemCapabilityType.h @@ -0,0 +1,41 @@ +// +// SDLSystemCapabilityType.h +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/10/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import <Foundation/Foundation.h> + +#import "SDLEnum.h" + +/** + The type of system capability to get more information on + */ +@interface SDLSystemCapabilityType : SDLEnum + +/** + * Convert String to SDLSystemCapabilityType + * @param value String + * @return SDLSystemCapabilityType + */ ++ (SDLSystemCapabilityType *)valueOf:(NSString *)value; + +/** + Returns an array of all possible SDLSystemCapabilityType values + @return an array that store all possible SDLSystemCapabilityType + */ ++ (NSArray *)values; + +/** + @abstract NAVIGATION + */ ++ (SDLSystemCapabilityType *)NAVIGATION; + +/** + @abstract PHONE_CALL + */ ++ (SDLSystemCapabilityType *)PHONE_CALL; + +@end diff --git a/SmartDeviceLink/SDLSystemCapabilityType.m b/SmartDeviceLink/SDLSystemCapabilityType.m new file mode 100644 index 000000000..888701bea --- /dev/null +++ b/SmartDeviceLink/SDLSystemCapabilityType.m @@ -0,0 +1,51 @@ +// +// SDLSystemCapabilityType.m +// SmartDeviceLink-iOS +// +// Created by Joel Fischer on 7/10/17. +// Copyright © 2017 smartdevicelink. All rights reserved. +// + +#import "SDLSystemCapabilityType.h" + +SDLSystemCapabilityType *SDLSystemCapabilityType_NAVIGATION = nil; +SDLSystemCapabilityType *SDLSystemCapabilityType_PHONE_CALL = nil; + +NSArray *SDLSystemCapabilityType_values = nil; + +@implementation SDLSystemCapabilityType + ++ (SDLSystemCapabilityType *)valueOf:(NSString *)value { + for (SDLSystemCapabilityType *item in SDLSystemCapabilityType.values) { + if ([item.value isEqualToString:value]) { + return item; + } + } + return nil; +} + ++ (NSArray *)values { + if (SDLSystemCapabilityType_values == nil) { + SDLSystemCapabilityType_values = @[ + SDLSystemCapabilityType.NAVIGATION, + SDLSystemCapabilityType.PHONE_CALL + ]; + } + return SDLSystemCapabilityType_values; +} + ++ (SDLSystemCapabilityType *)NAVIGATION { + if (SDLSystemCapabilityType_NAVIGATION == nil) { + SDLSystemCapabilityType_NAVIGATION = [[SDLSystemCapabilityType alloc] initWithValue:@"NAVIGATION"]; + } + return SDLSystemCapabilityType_NAVIGATION; +} + ++ (SDLSystemCapabilityType *)PHONE_CALL { + if (SDLSystemCapabilityType_PHONE_CALL == nil) { + SDLSystemCapabilityType_PHONE_CALL = [[SDLSystemCapabilityType alloc] initWithValue:@"PHONE_CALL"]; + } + return SDLSystemCapabilityType_PHONE_CALL; +} + +@end diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m index f43a8535b..3dff5dc9e 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLNotificationDispatcherSpec.m @@ -37,6 +37,7 @@ describe(@"a notification dispatcher", ^{ expect(@([testDispatcher respondsToSelector:@selector(onError:)])).to(beTruthy()); expect(@([testDispatcher respondsToSelector:@selector(onGenericResponse:)])).to(beTruthy()); expect(@([testDispatcher respondsToSelector:@selector(onGetDTCsResponse:)])).to(beTruthy()); + expect(@([testDispatcher respondsToSelector:@selector(onGetSystemCapabilityResponse:)])).to(beTruthy()); expect(@([testDispatcher respondsToSelector:@selector(onGetVehicleDataResponse:)])).to(beTruthy()); expect(@([testDispatcher respondsToSelector:@selector(onGetWayPointsResponse:)])).to(beTruthy()); expect(@([testDispatcher respondsToSelector:@selector(onReceivedLockScreenIcon:)])).to(beTruthy()); diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m new file mode 100644 index 000000000..f979b28aa --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLSystemCapabilityTypeSpec.m @@ -0,0 +1,49 @@ + +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLSystemCapabilityType.h" + +QuickSpecBegin(SDLSystemCapabilityTypeSpec) + +describe(@"Individual Enum Value Tests", ^ { + it(@"Should match internal values", ^ { + expect([SDLSystemCapabilityType NAVIGATION].value).to(equal(@"NAVIGATION")); + expect([SDLSystemCapabilityType PHONE_CALL].value).to(equal(@"PHONE_CALL")); + }); +}); +describe(@"ValueOf Tests", ^ { + it(@"Should return correct values when valid", ^ { + expect([SDLSystemCapabilityType valueOf:@"NAVIGATION"]).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect([SDLSystemCapabilityType valueOf:@"PHONE_CALL"]).to(equal([SDLSystemCapabilityType PHONE_CALL])); + }); + + it(@"Should return nil when invalid", ^ { + expect([SDLSystemCapabilityType valueOf:nil]).to(beNil()); + expect([SDLSystemCapabilityType valueOf:@"JKUYTFHYTHJGFRFGYTR"]).to(beNil()); + }); +}); +describe(@"Value List Tests", ^ { + NSArray* storedValues = [SDLSystemCapabilityType values]; + __block NSArray* definedValues; + beforeSuite(^ { + definedValues = [@[[SDLSystemCapabilityType NAVIGATION], + [SDLSystemCapabilityType PHONE_CALL]] 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/RequestSpecs/SDLGetSystemCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m new file mode 100644 index 000000000..f5473f81d --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetSystemCapabilitiesSpec.m @@ -0,0 +1,50 @@ +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLGetSystemCapability.h" + +#import "SDLSystemCapabilityType.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLGetSystemCapabilitiesSpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] init]; + + testRequest.systemCapabilityType = [SDLSystemCapabilityType NAVIGATION]; + + expect(testRequest.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + }); +}); + +describe(@"Initialization tests", ^{ + it(@"Should get correctly when initialized with a dictionary", ^ { + NSDictionary *dict = @{NAMES_request: @{ + NAMES_parameters: @{ + NAMES_systemCapabilityType: @"PHONE_CALL" + } + } + }; + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithDictionary:[dict mutableCopy]]; + + expect(testRequest.systemCapabilityType).to(equal([SDLSystemCapabilityType PHONE_CALL])); + }); + + it(@"Should return nil if not set", ^ { + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] init]; + + expect(testRequest.systemCapabilityType).to(beNil()); + }); + + it(@"should initialize correctly with initWithType:", ^{ + SDLGetSystemCapability *testRequest = [[SDLGetSystemCapability alloc] initWithType:[SDLSystemCapabilityType PHONE_CALL]]; + + expect(testRequest.systemCapabilityType).to(equal([SDLSystemCapabilityType PHONE_CALL])); + }); +}); + + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilitiesResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilitiesResponseSpec.m new file mode 100644 index 000000000..4524ca2fa --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetSystemCapabilitiesResponseSpec.m @@ -0,0 +1,54 @@ +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLGetSystemCapabilityResponse.h" + +#import "SDLNames.h" +#import "SDLNavigationCapability.h" +#import "SDLSystemCapability.h" +#import "SDLSystemCapabilityType.h" + +QuickSpecBegin(SDLGetSystemCapabilitiesResponseSpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLGetSystemCapabilityResponse *testRequest = [[SDLGetSystemCapabilityResponse alloc] init]; + + testRequest.systemCapability = [[SDLSystemCapability alloc] initWithNavigationCapability:[[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:NO]]; + + expect(testRequest.systemCapability.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testRequest.systemCapability.navigationCapability.sendLocationEnabled).to(equal(YES)); + expect(testRequest.systemCapability.navigationCapability.getWayPointsEnabled).to(equal(NO)); + expect(testRequest.systemCapability.phoneCapability).to(beNil()); + }); +}); + +describe(@"Initialization tests", ^{ + it(@"Should get correctly when initialized with a dictionary", ^ { + NSDictionary *dict = @{NAMES_response: @{ + NAMES_parameters: @{ + NAMES_systemCapability: @{NAMES_systemCapabilityType: @"NAVIGATION", + NAMES_navigationCapability: @{NAMES_getWayPointsEnabled: @(NO), + NAMES_sendLocationEnabled: @(YES)}} + } + } + }; + SDLGetSystemCapabilityResponse *testResponse = [[SDLGetSystemCapabilityResponse alloc] initWithDictionary:[dict mutableCopy]]; + + expect(testResponse.systemCapability.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testResponse.systemCapability.navigationCapability.sendLocationEnabled).to(equal(YES)); + expect(testResponse.systemCapability.navigationCapability.getWayPointsEnabled).to(equal(NO)); + expect(testResponse.systemCapability.phoneCapability).to(beNil()); + }); + + it(@"Should return nil if not set", ^ { + SDLGetSystemCapabilityResponse *testResponse = [[SDLGetSystemCapabilityResponse alloc] init]; + + expect(testResponse.systemCapability).to(beNil()); + }); +}); + + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m new file mode 100644 index 000000000..ecbf9d012 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLNavigationCapabilitySpec.m @@ -0,0 +1,50 @@ +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLNavigationCapability.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLNavigationCapabilitySpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLNavigationCapability *testStruct = [[SDLNavigationCapability alloc] init]; + + testStruct.getWayPointsEnabled = @(YES); + testStruct.sendLocationEnabled = @(YES); + + expect(testStruct.getWayPointsEnabled).to(equal(YES)); + expect(testStruct.sendLocationEnabled).to(equal(YES)); + + }); +}); + +describe(@"Initialization tests", ^{ + it(@"Should get correctly when initialized with a dictionary", ^ { + NSMutableDictionary* dict = [@{NAMES_getWayPointsEnabled: @(YES), + NAMES_sendLocationEnabled: @(YES)} mutableCopy]; + SDLNavigationCapability* testStruct = [[SDLNavigationCapability alloc] initWithDictionary:dict]; + + expect(testStruct.getWayPointsEnabled).to(equal(YES)); + expect(testStruct.sendLocationEnabled).to(equal(YES)); + }); + + it(@"Should return nil if not set", ^ { + SDLNavigationCapability* testStruct = [[SDLNavigationCapability alloc] init]; + + expect(testStruct.getWayPointsEnabled).to(beNil()); + expect(testStruct.sendLocationEnabled).to(beNil()); + }); + + it(@"should initialize correctly with initWithSendLocation:waypoints:", ^{ + SDLNavigationCapability *testStruct = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:YES]; + + expect(testStruct.getWayPointsEnabled).to(equal(YES)); + expect(testStruct.sendLocationEnabled).to(equal(YES)); + }); +}); + +QuickSpecEnd + diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m new file mode 100644 index 000000000..141c17a76 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLPhoneCapabilitySpec.m @@ -0,0 +1,42 @@ +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLPhoneCapability.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLPhoneCapabilitySpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLPhoneCapability *testStruct = [[SDLPhoneCapability alloc] init]; + + testStruct.dialNumberEnabled = @(YES); + + expect(testStruct.dialNumberEnabled).to(equal(YES)); + }); +}); + +describe(@"Initialization tests", ^{ + it(@"Should get correctly when initialized with a dictionary", ^ { + NSMutableDictionary* dict = [@{NAMES_dialNumberEnabled: @(YES)} mutableCopy]; + SDLPhoneCapability* testStruct = [[SDLPhoneCapability alloc] initWithDictionary:dict]; + + expect(testStruct.dialNumberEnabled).to(equal(YES)); + }); + + it(@"Should return nil if not set", ^ { + SDLPhoneCapability* testStruct = [[SDLPhoneCapability alloc] init]; + + expect(testStruct.dialNumberEnabled).to(beNil()); + }); + + it(@"should initialize correctly with initWithDialNumber:", ^{ + SDLPhoneCapability *testStruct = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; + + expect(testStruct.dialNumberEnabled).to(equal(YES)); + }); +}); + +QuickSpecEnd diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m new file mode 100644 index 000000000..9a2909128 --- /dev/null +++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m @@ -0,0 +1,72 @@ +#import <Foundation/Foundation.h> + +#import <Quick/Quick.h> +#import <Nimble/Nimble.h> + +#import "SDLSystemCapability.h" + +#import "SDLNavigationCapability.h" +#import "SDLPhoneCapability.h" +#import "SDLSystemCapabilityType.h" +#import "SDLNames.h" + +QuickSpecBegin(SDLSystemCapabilitySpec) + +describe(@"Getter/Setter Tests", ^ { + it(@"Should set and get correctly", ^ { + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] init]; + + testStruct.systemCapabilityType = [SDLSystemCapabilityType NAVIGATION]; + testStruct.navigationCapability = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:NO]; + testStruct.phoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; + + expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES)); + expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(NO)); + expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES)); + }); +}); + +describe(@"Initialization tests", ^{ + it(@"Should get correctly when initialized with a dictionary", ^ { + NSMutableDictionary* dict = [@{NAMES_systemCapabilityType: @"NAVIGATION", + NAMES_navigationCapability: @{NAMES_getWayPointsEnabled: @(NO), + NAMES_sendLocationEnabled: @(YES)}, + NAMES_phoneCapability: @{NAMES_dialNumberEnabled: @(YES)}} mutableCopy]; + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithDictionary:dict]; + + expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES)); + expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(NO)); + expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES)); + }); + + it(@"Should return nil if not set", ^ { + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] init]; + + expect(testStruct.systemCapabilityType).to(beNil()); + expect(testStruct.navigationCapability).to(beNil()); + expect(testStruct.phoneCapability).to(beNil()); + }); + + it(@"should initialize correctly with initWithPhoneCapability:", ^{ + SDLPhoneCapability *testPhoneStruct = [[SDLPhoneCapability alloc] initWithDialNumber:YES]; + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithPhoneCapability:testPhoneStruct]; + + expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType PHONE_CALL])); + expect(testStruct.phoneCapability.dialNumberEnabled).to(equal(YES)); + expect(testStruct.navigationCapability).to(beNil()); + }); + + it(@"should initialize correctly with initWithNavigationCapability:", ^{ + SDLNavigationCapability *testNavStruct = [[SDLNavigationCapability alloc] initWithSendLocation:YES waypoints:YES]; + SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithNavigationCapability:testNavStruct]; + + expect(testStruct.systemCapabilityType).to(equal([SDLSystemCapabilityType NAVIGATION])); + expect(testStruct.navigationCapability.sendLocationEnabled).to(equal(YES)); + expect(testStruct.navigationCapability.getWayPointsEnabled).to(equal(YES)); + expect(testStruct.phoneCapability).to(beNil()); + }); +}); + +QuickSpecEnd |