summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--Example Apps/Example ObjC/VehicleDataManager.m4
-rw-r--r--SmartDeviceLink-iOS.podspec18
-rw-r--r--SmartDeviceLink-iOS.xcodeproj/project.pbxproj205
-rw-r--r--SmartDeviceLink.podspec18
-rw-r--r--SmartDeviceLink/SDLAudioControlCapabilities.h34
-rw-r--r--SmartDeviceLink/SDLAudioControlCapabilities.m38
-rw-r--r--SmartDeviceLink/SDLButtonCapabilities.h8
-rw-r--r--SmartDeviceLink/SDLButtonCapabilities.m8
-rw-r--r--SmartDeviceLink/SDLButtonPress.h11
-rw-r--r--SmartDeviceLink/SDLButtonPress.m24
-rw-r--r--SmartDeviceLink/SDLChoiceSetManager.m10
-rw-r--r--SmartDeviceLink/SDLClimateControlCapabilities.h12
-rw-r--r--SmartDeviceLink/SDLClimateControlCapabilities.m15
-rw-r--r--SmartDeviceLink/SDLCreateWindow.h72
-rw-r--r--SmartDeviceLink/SDLCreateWindow.m96
-rw-r--r--SmartDeviceLink/SDLCreateWindowResponse.h13
-rw-r--r--SmartDeviceLink/SDLCreateWindowResponse.m23
-rw-r--r--SmartDeviceLink/SDLDeleteWindow.h32
-rw-r--r--SmartDeviceLink/SDLDeleteWindow.m40
-rw-r--r--SmartDeviceLink/SDLDeleteWindowResponse.h17
-rw-r--r--SmartDeviceLink/SDLDeleteWindowResponse.m26
-rw-r--r--SmartDeviceLink/SDLDisplayCapability.h64
-rw-r--r--SmartDeviceLink/SDLDisplayCapability.m66
-rw-r--r--SmartDeviceLink/SDLFunctionID.m4
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleData.h25
-rwxr-xr-xSmartDeviceLink/SDLGetInteriorVehicleData.m47
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h34
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m55
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h26
-rw-r--r--SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m34
-rw-r--r--SmartDeviceLink/SDLGetVehicleData.h20
-rw-r--r--SmartDeviceLink/SDLGetVehicleData.m8
-rw-r--r--SmartDeviceLink/SDLGetVehicleDataResponse.h20
-rw-r--r--SmartDeviceLink/SDLGetVehicleDataResponse.m8
-rw-r--r--SmartDeviceLink/SDLGlobalProperty.h5
-rw-r--r--SmartDeviceLink/SDLGlobalProperty.m1
-rw-r--r--SmartDeviceLink/SDLGrid.h56
-rw-r--r--SmartDeviceLink/SDLGrid.m70
-rw-r--r--SmartDeviceLink/SDLHMISettingsControlCapabilities.h35
-rw-r--r--SmartDeviceLink/SDLHMISettingsControlCapabilities.m33
-rw-r--r--SmartDeviceLink/SDLLifecycleManager.m9
-rw-r--r--SmartDeviceLink/SDLLightControlCapabilities.h20
-rw-r--r--SmartDeviceLink/SDLLightControlCapabilities.m19
-rw-r--r--SmartDeviceLink/SDLLockScreenConfiguration.h36
-rw-r--r--SmartDeviceLink/SDLLockScreenConfiguration.m49
-rw-r--r--SmartDeviceLink/SDLLockScreenManager.m12
-rw-r--r--SmartDeviceLink/SDLMenuManager.m10
-rw-r--r--SmartDeviceLink/SDLModuleData.h7
-rw-r--r--SmartDeviceLink/SDLModuleData.m9
-rw-r--r--SmartDeviceLink/SDLModuleInfo.h50
-rw-r--r--SmartDeviceLink/SDLModuleInfo.m52
-rw-r--r--SmartDeviceLink/SDLNotificationConstants.h8
-rw-r--r--SmartDeviceLink/SDLNotificationConstants.m12
-rw-r--r--SmartDeviceLink/SDLNotificationDispatcher.m32
-rw-r--r--SmartDeviceLink/SDLOnHMIStatus.h7
-rw-r--r--SmartDeviceLink/SDLOnHMIStatus.m9
-rw-r--r--SmartDeviceLink/SDLOnVehicleData.h20
-rw-r--r--SmartDeviceLink/SDLOnVehicleData.m8
-rw-r--r--SmartDeviceLink/SDLPermissionManager.m5
-rw-r--r--SmartDeviceLink/SDLPredefinedWindows.h15
-rw-r--r--SmartDeviceLink/SDLProxyListener.h64
-rw-r--r--SmartDeviceLink/SDLRPCFunctionNames.h4
-rw-r--r--SmartDeviceLink/SDLRPCFunctionNames.m4
-rw-r--r--SmartDeviceLink/SDLRPCParameterNames.h28
-rw-r--r--SmartDeviceLink/SDLRPCParameterNames.m28
-rw-r--r--SmartDeviceLink/SDLRadioControlCapabilities.h37
-rw-r--r--SmartDeviceLink/SDLRadioControlCapabilities.m40
-rw-r--r--SmartDeviceLink/SDLRegisterAppInterfaceResponse.h8
-rw-r--r--SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h34
-rw-r--r--SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m56
-rw-r--r--SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h17
-rw-r--r--SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m23
-rw-r--r--SmartDeviceLink/SDLSeatControlCapabilities.h17
-rw-r--r--SmartDeviceLink/SDLSeatControlCapabilities.m45
-rw-r--r--SmartDeviceLink/SDLSeatControlData.h10
-rw-r--r--SmartDeviceLink/SDLSeatControlData.m12
-rw-r--r--SmartDeviceLink/SDLSeatLocation.h26
-rw-r--r--SmartDeviceLink/SDLSeatLocation.m25
-rw-r--r--SmartDeviceLink/SDLSeatLocationCapability.h48
-rw-r--r--SmartDeviceLink/SDLSeatLocationCapability.m70
-rw-r--r--SmartDeviceLink/SDLSetGlobalProperties.h8
-rw-r--r--SmartDeviceLink/SDLSetGlobalProperties.m9
-rw-r--r--SmartDeviceLink/SDLShow.h16
-rw-r--r--SmartDeviceLink/SDLShow.m18
-rw-r--r--SmartDeviceLink/SDLSoftButtonCapabilities.h9
-rw-r--r--SmartDeviceLink/SDLSoftButtonCapabilities.m9
-rw-r--r--SmartDeviceLink/SDLSoftButtonManager.m9
-rw-r--r--SmartDeviceLink/SDLStreamingAudioLifecycleManager.m9
-rw-r--r--SmartDeviceLink/SDLStreamingVideoLifecycleManager.m11
-rw-r--r--SmartDeviceLink/SDLSubscribeVehicleData.h22
-rw-r--r--SmartDeviceLink/SDLSubscribeVehicleData.m8
-rw-r--r--SmartDeviceLink/SDLSubscribeVehicleDataResponse.h20
-rw-r--r--SmartDeviceLink/SDLSubscribeVehicleDataResponse.m8
-rw-r--r--SmartDeviceLink/SDLSupportedSeat.h10
-rw-r--r--SmartDeviceLink/SDLSupportedSeat.m3
-rwxr-xr-xSmartDeviceLink/SDLSystemCapability.h26
-rwxr-xr-xSmartDeviceLink/SDLSystemCapability.m30
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityManager.h10
-rw-r--r--SmartDeviceLink/SDLSystemCapabilityManager.m24
-rwxr-xr-xSmartDeviceLink/SDLSystemCapabilityType.h12
-rwxr-xr-xSmartDeviceLink/SDLSystemCapabilityType.m2
-rw-r--r--SmartDeviceLink/SDLTemplateConfiguration.h59
-rw-r--r--SmartDeviceLink/SDLTemplateConfiguration.m60
-rw-r--r--SmartDeviceLink/SDLTextAndGraphicManager.m15
-rw-r--r--SmartDeviceLink/SDLUnsubscribeVehicleData.h19
-rw-r--r--SmartDeviceLink/SDLUnsubscribeVehicleData.m8
-rw-r--r--SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h20
-rw-r--r--SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m8
-rw-r--r--SmartDeviceLink/SDLVehicleDataResult.h23
-rw-r--r--SmartDeviceLink/SDLVehicleDataResult.m33
-rw-r--r--SmartDeviceLink/SDLVehicleDataType.h7
-rw-r--r--SmartDeviceLink/SDLVehicleDataType.m1
-rw-r--r--SmartDeviceLink/SDLVoiceCommandManager.m6
-rw-r--r--SmartDeviceLink/SDLWindowCapability.h81
-rw-r--r--SmartDeviceLink/SDLWindowCapability.m73
-rw-r--r--SmartDeviceLink/SDLWindowType.h21
-rw-r--r--SmartDeviceLink/SDLWindowType.m8
-rw-r--r--SmartDeviceLink/SDLWindowTypeCapabilities.h41
-rw-r--r--SmartDeviceLink/SDLWindowTypeCapabilities.m58
-rw-r--r--SmartDeviceLink/SmartDeviceLink.h18
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLFakeViewControllerPresenter.m9
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m57
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m3
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLStreamingAudioLifecycleManagerSpec.m6
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m6
-rw-r--r--SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m5
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m1
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedWindowsSpec.m18
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWindowTypeSpec.m19
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m11
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m9
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateWindowSpec.m65
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteWindowSpec.m32
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataConsentSpec.m61
-rwxr-xr-xSmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m8
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m12
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReleaseInteriorVehicleDataModuleSpec.m61
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m7
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m11
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m11
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateWindowResponseSpec.m12
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteWindowResponseSpec.m12
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataConsentResponseSpec.m58
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m8
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m20
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReleaseInteriorVehicleDataModuleResponseSpec.m19
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m11
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m11
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m58
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m21
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m25
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitySpec.m90
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m53
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m35
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m16
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m28
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m76
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationCapabilitySpec.m88
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationSpec.m58
-rwxr-xr-xSmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m27
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateConfigurationSpec.m56
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m3
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m26
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m72
-rw-r--r--SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowTypeCapabilitiesSpec.m24
-rw-r--r--SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m3
166 files changed, 4402 insertions, 72 deletions
diff --git a/Example Apps/Example ObjC/VehicleDataManager.m b/Example Apps/Example ObjC/VehicleDataManager.m
index 54ff9642f..d4e9a1066 100644
--- a/Example Apps/Example ObjC/VehicleDataManager.m
+++ b/Example Apps/Example ObjC/VehicleDataManager.m
@@ -142,7 +142,11 @@ NS_ASSUME_NONNULL_BEGIN
}
SDLLogD(@"App has permission to access vehicle data. Requesting vehicle data...");
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLGetVehicleData *getAllVehicleData = [[SDLGetVehicleData alloc] initWithAccelerationPedalPosition:YES airbagStatus:YES beltStatus:YES bodyInformation:YES clusterModeStatus:YES deviceStatus:YES driverBraking:YES eCallInfo:YES electronicParkBrakeStatus:YES emergencyEvent:YES engineOilLife:YES engineTorque:YES externalTemperature:YES fuelLevel:YES fuelLevelState:YES fuelRange:YES gps:YES headLampStatus:YES instantFuelConsumption:YES myKey:YES odometer:YES prndl:YES rpm:YES speed:YES steeringWheelAngle:YES tirePressure:YES turnSignal:YES vin:YES wiperStatus:YES];
+#pragma clang diagnostic pop
[manager sendRequest:getAllVehicleData withResponseHandler:^(__kindof SDLRPCRequest * _Nullable request, __kindof SDLRPCResponse * _Nullable response, NSError * _Nullable error) {
if (error || ![response isKindOfClass:SDLGetVehicleDataResponse.class]) {
diff --git a/SmartDeviceLink-iOS.podspec b/SmartDeviceLink-iOS.podspec
index 46d057897..98eddb4f8 100644
--- a/SmartDeviceLink-iOS.podspec
+++ b/SmartDeviceLink-iOS.podspec
@@ -78,6 +78,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLConfiguration.h',
'SmartDeviceLink/SDLCreateInteractionChoiceSet.h',
'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h',
+'SmartDeviceLink/SDLCreateWindow.h',
+'SmartDeviceLink/SDLCreateWindowResponse.h',
'SmartDeviceLink/SDLDateTime.h',
'SmartDeviceLink/SDLDefrostZone.h',
'SmartDeviceLink/SDLDeleteCommand.h',
@@ -88,6 +90,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h',
'SmartDeviceLink/SDLDeleteSubMenu.h',
'SmartDeviceLink/SDLDeleteSubMenuResponse.h',
+'SmartDeviceLink/SDLDeleteWindow.h',
+'SmartDeviceLink/SDLDeleteWindowResponse.h',
'SmartDeviceLink/SDLDeliveryMode.h',
'SmartDeviceLink/SDLDeviceInfo.h',
'SmartDeviceLink/SDLDeviceLevelStatus.h',
@@ -98,6 +102,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLDialNumberResponse.h',
'SmartDeviceLink/SDLDIDResult.h',
'SmartDeviceLink/SDLDimension.h',
+'SmartDeviceLink/SDLDisplayCapability.h',
'SmartDeviceLink/SDLDisplayCapabilities.h',
'SmartDeviceLink/SDLDisplayMode.h',
'SmartDeviceLink/SDLDisplayType.h',
@@ -136,6 +141,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLGetFile.h',
'SmartDeviceLink/SDLGetFileResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleData.h',
+'SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h',
+'SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h',
'SmartDeviceLink/SDLGetSystemCapability.h',
'SmartDeviceLink/SDLGetSystemCapabilityResponse.h',
@@ -145,6 +152,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLGetWaypointsResponse.h',
'SmartDeviceLink/SDLGlobalProperty.h',
'SmartDeviceLink/SDLGPSData.h',
+'SmartDeviceLink/SDLGrid.h',
'SmartDeviceLink/SDLHapticRect.h',
'SmartDeviceLink/SDLHeadLampStatus.h',
'SmartDeviceLink/SDLHMICapabilities.h',
@@ -213,6 +221,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLMetadataTags.h',
'SmartDeviceLink/SDLMetadataType.h',
'SmartDeviceLink/SDLModuleData.h',
+'SmartDeviceLink/SDLModuleInfo.h',
'SmartDeviceLink/SDLModuleType.h',
'SmartDeviceLink/SDLMyKey.h',
'SmartDeviceLink/SDLNavigationAction.h',
@@ -262,6 +271,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLPowerModeQualificationStatus.h',
'SmartDeviceLink/SDLPowerModeStatus.h',
'SmartDeviceLink/SDLPredefinedLayout.h',
+'SmartDeviceLink/SDLPredefinedWindows.h',
'SmartDeviceLink/SDLPrerecordedSpeech.h',
'SmartDeviceLink/SDLPresetBankCapabilities.h',
'SmartDeviceLink/SDLPrimaryAudioSource.h',
@@ -282,6 +292,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLRegisterAppInterface.h',
'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h',
'SmartDeviceLink/SDLRemoteControlCapabilities.h',
+'SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h',
+'SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h',
'SmartDeviceLink/SDLRequestType.h',
'SmartDeviceLink/SDLResetGlobalProperties.h',
'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h',
@@ -304,6 +316,8 @@ ss.public_header_files = [
'SmartDeviceLink/SDLScrollableMessageResponse.h',
'SmartDeviceLink/SDLSeatControlCapabilities.h',
'SmartDeviceLink/SDLSeatControlData.h',
+'SmartDeviceLink/SDLSeatLocation.h',
+'SmartDeviceLink/SDLSeatLocationCapability.h',
'SmartDeviceLink/SDLSeatMemoryAction.h',
'SmartDeviceLink/SDLSeatMemoryActionType.h',
'SmartDeviceLink/SDLSupportedSeat.h',
@@ -369,6 +383,7 @@ ss.public_header_files = [
'SmartDeviceLink/SDLTBTState.h',
'SmartDeviceLink/SDLTemperature.h',
'SmartDeviceLink/SDLTemperatureUnit.h',
+'SmartDeviceLink/SDLTemplateConfiguration.h',
'SmartDeviceLink/SDLTemplateColorScheme.h',
'SmartDeviceLink/SDLTextAlignment.h',
'SmartDeviceLink/SDLTextField.h',
@@ -425,6 +440,9 @@ ss.public_header_files = [
'SmartDeviceLink/SDLWeatherServiceData.h',
'SmartDeviceLink/SDLWeatherServiceManifest.h',
'SmartDeviceLink/SDLWiperStatus.h',
+'SmartDeviceLink/SDLWindowCapability.h',
+'SmartDeviceLink/SDLWindowType.h',
+'SmartDeviceLink/SDLWindowTypeCapabilities.h',
'SmartDeviceLink/SmartDeviceLink.h',
]
end
diff --git a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
index e45567cbd..d7a621356 100644
--- a/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
+++ b/SmartDeviceLink-iOS.xcodeproj/project.pbxproj
@@ -15,6 +15,28 @@
00E22CED22C2F1B300BC6B08 /* SDLEncryptionConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 00E22CEB22C2F1B300BC6B08 /* SDLEncryptionConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; };
00EADD3322DFE54B0088B608 /* SDLEncryptionLifecycleManagerSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 00EADD3222DFE54B0088B608 /* SDLEncryptionLifecycleManagerSpec.m */; };
00EADD3522DFE5670088B608 /* SDLEncryptionConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 00EADD3422DFE5670088B608 /* SDLEncryptionConfigurationSpec.m */; };
+ 000DD56C22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */; };
+ 000DD56E22EF01FC005AB7A7 /* SDLSeatLocationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */; };
+ 000DD57022EF038C005AB7A7 /* SDLGetInteriorVehicleDataConsentSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 000DD56F22EF038C005AB7A7 /* SDLGetInteriorVehicleDataConsentSpec.m */; };
+ 000DD57222EF063F005AB7A7 /* SDLGetInteriorVehicleDataConsentResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 000DD57122EF063F005AB7A7 /* SDLGetInteriorVehicleDataConsentResponseSpec.m */; };
+ 000DD57422EF0957005AB7A7 /* SDLReleaseInteriorVehicleDataModuleSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 000DD57322EF0957005AB7A7 /* SDLReleaseInteriorVehicleDataModuleSpec.m */; };
+ 000DD57622EF0971005AB7A7 /* SDLReleaseInteriorVehicleDataModuleResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 000DD57522EF0971005AB7A7 /* SDLReleaseInteriorVehicleDataModuleResponseSpec.m */; };
+ 0055412622D40DAB003194D3 /* SDLModuleInfo.h in Headers */ = {isa = PBXBuildFile; fileRef = 0055412422D40DAB003194D3 /* SDLModuleInfo.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0055412722D40DAB003194D3 /* SDLModuleInfo.m in Sources */ = {isa = PBXBuildFile; fileRef = 0055412522D40DAB003194D3 /* SDLModuleInfo.m */; };
+ 0055412A22D5DC0B003194D3 /* SDLGrid.h in Headers */ = {isa = PBXBuildFile; fileRef = 0055412822D5DC0B003194D3 /* SDLGrid.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0055412B22D5DC0B003194D3 /* SDLGrid.m in Sources */ = {isa = PBXBuildFile; fileRef = 0055412922D5DC0B003194D3 /* SDLGrid.m */; };
+ 0055412E22D759BD003194D3 /* SDLSeatLocation.h in Headers */ = {isa = PBXBuildFile; fileRef = 0055412C22D759BC003194D3 /* SDLSeatLocation.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0055412F22D759BD003194D3 /* SDLSeatLocation.m in Sources */ = {isa = PBXBuildFile; fileRef = 0055412D22D759BC003194D3 /* SDLSeatLocation.m */; };
+ 0055413222D75A7B003194D3 /* SDLSeatLocationCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 0055413022D75A7A003194D3 /* SDLSeatLocationCapability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 0055413322D75A7B003194D3 /* SDLSeatLocationCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 0055413122D75A7B003194D3 /* SDLSeatLocationCapability.m */; };
+ 008DB36122EA7482003F458C /* SDLGetInteriorVehicleDataConsent.h in Headers */ = {isa = PBXBuildFile; fileRef = 008DB35F22EA7481003F458C /* SDLGetInteriorVehicleDataConsent.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 008DB36222EA7482003F458C /* SDLGetInteriorVehicleDataConsent.m in Sources */ = {isa = PBXBuildFile; fileRef = 008DB36022EA7481003F458C /* SDLGetInteriorVehicleDataConsent.m */; };
+ 008DB36522EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 008DB36322EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 008DB36622EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 008DB36422EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.m */; };
+ 008DB36922EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.h in Headers */ = {isa = PBXBuildFile; fileRef = 008DB36722EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 008DB36A22EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.m in Sources */ = {isa = PBXBuildFile; fileRef = 008DB36822EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.m */; };
+ 008DB36D22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 008DB36B22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 008DB36E22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 008DB36C22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.m */; };
162E82CA1A9BDE8A00906325 /* SDLAmbientLightStatusSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E81E21A9BDE8A00906325 /* SDLAmbientLightStatusSpec.m */; };
162E82CB1A9BDE8A00906325 /* SDLAppHMITypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E81E31A9BDE8A00906325 /* SDLAppHMITypeSpec.m */; };
162E82CC1A9BDE8A00906325 /* SDLAppInterfaceUnregisteredReasonSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 162E81E41A9BDE8A00906325 /* SDLAppInterfaceUnregisteredReasonSpec.m */; };
@@ -1463,6 +1485,35 @@
8BBEA6091F324832003EEA26 /* SDLMetadataTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 8BBEA6081F324832003EEA26 /* SDLMetadataTypeSpec.m */; };
97E26DEC1E807AD70074A3C7 /* SDLMutableDataQueue.h in Headers */ = {isa = PBXBuildFile; fileRef = 97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */; };
97E26DED1E807AD70074A3C7 /* SDLMutableDataQueue.m in Sources */ = {isa = PBXBuildFile; fileRef = 97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */; };
+ 9F425ACE22DD97DE00BE3245 /* SDLTemplateConfiguration.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F425ACC22DD97DE00BE3245 /* SDLTemplateConfiguration.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9F425ACF22DD97DE00BE3245 /* SDLTemplateConfiguration.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F425ACD22DD97DE00BE3245 /* SDLTemplateConfiguration.m */; };
+ 9F425AD222DD980200BE3245 /* SDLWindowCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F425AD022DD980200BE3245 /* SDLWindowCapability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9F425AD322DD980200BE3245 /* SDLWindowCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F425AD122DD980200BE3245 /* SDLWindowCapability.m */; };
+ 9F425AD622DD981E00BE3245 /* SDLWindowTypeCapabilities.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F425AD422DD981E00BE3245 /* SDLWindowTypeCapabilities.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9F425AD722DD981E00BE3245 /* SDLWindowTypeCapabilities.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F425AD522DD981E00BE3245 /* SDLWindowTypeCapabilities.m */; };
+ 9F425ADA22DD983500BE3245 /* SDLDisplayCapability.h in Headers */ = {isa = PBXBuildFile; fileRef = 9F425AD822DD983500BE3245 /* SDLDisplayCapability.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9F425ADB22DD983500BE3245 /* SDLDisplayCapability.m in Sources */ = {isa = PBXBuildFile; fileRef = 9F425AD922DD983500BE3245 /* SDLDisplayCapability.m */; };
+ 9FA0CFF722DF0632009CF344 /* SDLWindowTypeSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0CFF622DF0632009CF344 /* SDLWindowTypeSpec.m */; };
+ 9FA0CFFA22DF064D009CF344 /* SDLPredefinedWindowsSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0CFF922DF064D009CF344 /* SDLPredefinedWindowsSpec.m */; };
+ 9FA0CFFD22DF0687009CF344 /* SDLTemplateConfigurationSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0CFFC22DF0687009CF344 /* SDLTemplateConfigurationSpec.m */; };
+ 9FA0D00022DF06A0009CF344 /* SDLWindowCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0CFFF22DF06A0009CF344 /* SDLWindowCapabilitySpec.m */; };
+ 9FA0D00322DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00222DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m */; };
+ 9FA0D00622DF06D3009CF344 /* SDLDisplayCapabilitySpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00522DF06D3009CF344 /* SDLDisplayCapabilitySpec.m */; };
+ 9FA0D00922DF0B47009CF344 /* SDLCreateWindowSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00822DF0B47009CF344 /* SDLCreateWindowSpec.m */; };
+ 9FA0D00C22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00B22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m */; };
+ 9FA0D00F22DF0B90009CF344 /* SDLDeleteWindowSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D00E22DF0B90009CF344 /* SDLDeleteWindowSpec.m */; };
+ 9FA0D01222DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FA0D01122DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m */; };
+ 9FD334E022DC6E7500F62736 /* SDLCreateWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FD334DE22DC6E7500F62736 /* SDLCreateWindow.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9FD334E122DC6E7500F62736 /* SDLCreateWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FD334DF22DC6E7500F62736 /* SDLCreateWindow.m */; };
+ 9FE2470922D77A3600F8D2FC /* SDLDeleteWindow.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FE2470722D77A3600F8D2FC /* SDLDeleteWindow.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9FE2470A22D77A3600F8D2FC /* SDLDeleteWindow.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FE2470822D77A3600F8D2FC /* SDLDeleteWindow.m */; };
+ 9FE2470D22D77A5A00F8D2FC /* SDLDeleteWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FE2470B22D77A5A00F8D2FC /* SDLDeleteWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9FE2470E22D77A5A00F8D2FC /* SDLDeleteWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FE2470C22D77A5A00F8D2FC /* SDLDeleteWindowResponse.m */; };
+ 9FE2471122D77AA400F8D2FC /* SDLCreateWindowResponse.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FE2470F22D77AA400F8D2FC /* SDLCreateWindowResponse.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9FE2471222D77AA400F8D2FC /* SDLCreateWindowResponse.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FE2471022D77AA400F8D2FC /* SDLCreateWindowResponse.m */; };
+ 9FE2471522D77AD500F8D2FC /* SDLWindowType.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FE2471322D77AD500F8D2FC /* SDLWindowType.h */; settings = {ATTRIBUTES = (Public, ); }; };
+ 9FE2471622D77AD500F8D2FC /* SDLWindowType.m in Sources */ = {isa = PBXBuildFile; fileRef = 9FE2471422D77AD500F8D2FC /* SDLWindowType.m */; };
+ 9FE2471922D77AED00F8D2FC /* SDLPredefinedWindows.h in Headers */ = {isa = PBXBuildFile; fileRef = 9FE2471722D77AED00F8D2FC /* SDLPredefinedWindows.h */; settings = {ATTRIBUTES = (Public, ); }; };
DA0C46AD1DCD35080001F2A8 /* SDLRPCParameterNames.m in Sources */ = {isa = PBXBuildFile; fileRef = DA0C46AC1DCD35080001F2A8 /* SDLRPCParameterNames.m */; };
DA0C46AF1DCD41E30001F2A8 /* SDLMacros.h in Headers */ = {isa = PBXBuildFile; fileRef = DA0C46AE1DCD41E30001F2A8 /* SDLMacros.h */; settings = {ATTRIBUTES = (Public, ); }; };
DA318C1F1DD0F06C00C035AC /* NSMutableDictionary+Store.h in Headers */ = {isa = PBXBuildFile; fileRef = DA318C1D1DD0F06C00C035AC /* NSMutableDictionary+Store.h */; };
@@ -1653,6 +1704,28 @@
00E22CEB22C2F1B300BC6B08 /* SDLEncryptionConfiguration.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLEncryptionConfiguration.h; sourceTree = "<group>"; };
00EADD3222DFE54B0088B608 /* SDLEncryptionLifecycleManagerSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLEncryptionLifecycleManagerSpec.m; sourceTree = "<group>"; };
00EADD3422DFE5670088B608 /* SDLEncryptionConfigurationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLEncryptionConfigurationSpec.m; sourceTree = "<group>"; };
+ 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeatLocationCapabilitySpec.m; sourceTree = "<group>"; };
+ 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeatLocationSpec.m; sourceTree = "<group>"; };
+ 000DD56F22EF038C005AB7A7 /* SDLGetInteriorVehicleDataConsentSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataConsentSpec.m; sourceTree = "<group>"; };
+ 000DD57122EF063F005AB7A7 /* SDLGetInteriorVehicleDataConsentResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataConsentResponseSpec.m; sourceTree = "<group>"; };
+ 000DD57322EF0957005AB7A7 /* SDLReleaseInteriorVehicleDataModuleSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLReleaseInteriorVehicleDataModuleSpec.m; sourceTree = "<group>"; };
+ 000DD57522EF0971005AB7A7 /* SDLReleaseInteriorVehicleDataModuleResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLReleaseInteriorVehicleDataModuleResponseSpec.m; sourceTree = "<group>"; };
+ 0055412422D40DAB003194D3 /* SDLModuleInfo.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLModuleInfo.h; sourceTree = "<group>"; };
+ 0055412522D40DAB003194D3 /* SDLModuleInfo.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLModuleInfo.m; sourceTree = "<group>"; };
+ 0055412822D5DC0B003194D3 /* SDLGrid.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGrid.h; sourceTree = "<group>"; };
+ 0055412922D5DC0B003194D3 /* SDLGrid.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGrid.m; sourceTree = "<group>"; };
+ 0055412C22D759BC003194D3 /* SDLSeatLocation.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLSeatLocation.h; sourceTree = "<group>"; };
+ 0055412D22D759BC003194D3 /* SDLSeatLocation.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeatLocation.m; sourceTree = "<group>"; };
+ 0055413022D75A7A003194D3 /* SDLSeatLocationCapability.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLSeatLocationCapability.h; sourceTree = "<group>"; };
+ 0055413122D75A7B003194D3 /* SDLSeatLocationCapability.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLSeatLocationCapability.m; sourceTree = "<group>"; };
+ 008DB35F22EA7481003F458C /* SDLGetInteriorVehicleDataConsent.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetInteriorVehicleDataConsent.h; sourceTree = "<group>"; };
+ 008DB36022EA7481003F458C /* SDLGetInteriorVehicleDataConsent.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataConsent.m; sourceTree = "<group>"; };
+ 008DB36322EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLGetInteriorVehicleDataConsentResponse.h; sourceTree = "<group>"; };
+ 008DB36422EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLGetInteriorVehicleDataConsentResponse.m; sourceTree = "<group>"; };
+ 008DB36722EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLReleaseInteriorVehicleDataModule.h; sourceTree = "<group>"; };
+ 008DB36822EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLReleaseInteriorVehicleDataModule.m; sourceTree = "<group>"; };
+ 008DB36B22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLReleaseInteriorVehicleDataModuleResponse.h; sourceTree = "<group>"; };
+ 008DB36C22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLReleaseInteriorVehicleDataModuleResponse.m; sourceTree = "<group>"; };
162E81E21A9BDE8A00906325 /* SDLAmbientLightStatusSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAmbientLightStatusSpec.m; sourceTree = "<group>"; };
162E81E31A9BDE8A00906325 /* SDLAppHMITypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAppHMITypeSpec.m; sourceTree = "<group>"; };
162E81E41A9BDE8A00906325 /* SDLAppInterfaceUnregisteredReasonSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLAppInterfaceUnregisteredReasonSpec.m; sourceTree = "<group>"; };
@@ -3139,6 +3212,35 @@
8BBEA6081F324832003EEA26 /* SDLMetadataTypeSpec.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMetadataTypeSpec.m; sourceTree = "<group>"; };
97E26DEA1E807AD70074A3C7 /* SDLMutableDataQueue.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMutableDataQueue.h; sourceTree = "<group>"; };
97E26DEB1E807AD70074A3C7 /* SDLMutableDataQueue.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLMutableDataQueue.m; sourceTree = "<group>"; };
+ 9F425ACC22DD97DE00BE3245 /* SDLTemplateConfiguration.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLTemplateConfiguration.h; sourceTree = "<group>"; };
+ 9F425ACD22DD97DE00BE3245 /* SDLTemplateConfiguration.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLTemplateConfiguration.m; sourceTree = "<group>"; };
+ 9F425AD022DD980200BE3245 /* SDLWindowCapability.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLWindowCapability.h; sourceTree = "<group>"; };
+ 9F425AD122DD980200BE3245 /* SDLWindowCapability.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWindowCapability.m; sourceTree = "<group>"; };
+ 9F425AD422DD981E00BE3245 /* SDLWindowTypeCapabilities.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLWindowTypeCapabilities.h; sourceTree = "<group>"; };
+ 9F425AD522DD981E00BE3245 /* SDLWindowTypeCapabilities.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWindowTypeCapabilities.m; sourceTree = "<group>"; };
+ 9F425AD822DD983500BE3245 /* SDLDisplayCapability.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLDisplayCapability.h; sourceTree = "<group>"; };
+ 9F425AD922DD983500BE3245 /* SDLDisplayCapability.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDisplayCapability.m; sourceTree = "<group>"; };
+ 9FA0CFF622DF0632009CF344 /* SDLWindowTypeSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWindowTypeSpec.m; sourceTree = "<group>"; };
+ 9FA0CFF922DF064D009CF344 /* SDLPredefinedWindowsSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLPredefinedWindowsSpec.m; sourceTree = "<group>"; };
+ 9FA0CFFC22DF0687009CF344 /* SDLTemplateConfigurationSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLTemplateConfigurationSpec.m; sourceTree = "<group>"; };
+ 9FA0CFFF22DF06A0009CF344 /* SDLWindowCapabilitySpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWindowCapabilitySpec.m; sourceTree = "<group>"; };
+ 9FA0D00222DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWindowTypeCapabilitiesSpec.m; sourceTree = "<group>"; };
+ 9FA0D00522DF06D3009CF344 /* SDLDisplayCapabilitySpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDisplayCapabilitySpec.m; sourceTree = "<group>"; };
+ 9FA0D00822DF0B47009CF344 /* SDLCreateWindowSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCreateWindowSpec.m; sourceTree = "<group>"; };
+ 9FA0D00B22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCreateWindowResponseSpec.m; sourceTree = "<group>"; };
+ 9FA0D00E22DF0B90009CF344 /* SDLDeleteWindowSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindowSpec.m; sourceTree = "<group>"; };
+ 9FA0D01122DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindowResponseSpec.m; sourceTree = "<group>"; };
+ 9FD334DE22DC6E7500F62736 /* SDLCreateWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLCreateWindow.h; sourceTree = "<group>"; };
+ 9FD334DF22DC6E7500F62736 /* SDLCreateWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCreateWindow.m; sourceTree = "<group>"; };
+ 9FE2470722D77A3600F8D2FC /* SDLDeleteWindow.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLDeleteWindow.h; sourceTree = "<group>"; };
+ 9FE2470822D77A3600F8D2FC /* SDLDeleteWindow.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindow.m; sourceTree = "<group>"; };
+ 9FE2470B22D77A5A00F8D2FC /* SDLDeleteWindowResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLDeleteWindowResponse.h; sourceTree = "<group>"; };
+ 9FE2470C22D77A5A00F8D2FC /* SDLDeleteWindowResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLDeleteWindowResponse.m; sourceTree = "<group>"; };
+ 9FE2470F22D77AA400F8D2FC /* SDLCreateWindowResponse.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLCreateWindowResponse.h; sourceTree = "<group>"; };
+ 9FE2471022D77AA400F8D2FC /* SDLCreateWindowResponse.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLCreateWindowResponse.m; sourceTree = "<group>"; };
+ 9FE2471322D77AD500F8D2FC /* SDLWindowType.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLWindowType.h; sourceTree = "<group>"; };
+ 9FE2471422D77AD500F8D2FC /* SDLWindowType.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; path = SDLWindowType.m; sourceTree = "<group>"; };
+ 9FE2471722D77AED00F8D2FC /* SDLPredefinedWindows.h */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.h; path = SDLPredefinedWindows.h; sourceTree = "<group>"; };
BB3C600D221AEF37007DD4CA /* NSMutableDictionary+StoreSpec.m */ = {isa = PBXFileReference; lastKnownFileType = sourcecode.c.objc; name = "NSMutableDictionary+StoreSpec.m"; path = "DevAPISpecs/NSMutableDictionary+StoreSpec.m"; sourceTree = "<group>"; };
DA0C46AC1DCD35080001F2A8 /* SDLRPCParameterNames.m */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.objc; path = SDLRPCParameterNames.m; sourceTree = "<group>"; };
DA0C46AE1DCD41E30001F2A8 /* SDLMacros.h */ = {isa = PBXFileReference; fileEncoding = 4; lastKnownFileType = sourcecode.c.h; path = SDLMacros.h; sourceTree = "<group>"; };
@@ -3409,6 +3511,7 @@
162E82081A9BDE8A00906325 /* SDLPowerModeQualificationStatusSpec.m */,
162E82091A9BDE8A00906325 /* SDLPowerModeStatusSpec.m */,
162E820A1A9BDE8A00906325 /* SDLPredefinedLayoutSpec.m */,
+ 9FA0CFF922DF064D009CF344 /* SDLPredefinedWindowsSpec.m */,
162E820B1A9BDE8A00906325 /* SDLPrerecordedSpeechSpec.m */,
162E820C1A9BDE8A00906325 /* SDLPrimaryAudioSource.m */,
162E820D1A9BDE8A00906325 /* SDLPRNDLSpec.m */,
@@ -3448,6 +3551,7 @@
1EE8C43B1F347EAE00FDC2CF /* SDLTemperatureUnitSpec.m */,
1EE8C43D1F347F0500FDC2CF /* SDLVentilationModeSpec.m */,
5D64FE6C20DA9CE600792F9F /* SDLVideoStreamingStateSpec.m */,
+ 9FA0CFF622DF0632009CF344 /* SDLWindowTypeSpec.m */,
);
path = EnumSpecs;
sourceTree = "<group>";
@@ -3551,7 +3655,11 @@
162E82641A9BDE8A00906325 /* SDLUpdateTurnListSpec.m */,
1EE8C45E1F3884FF00FDC2CF /* SDLSetInteriorVehicleDataSpec.m */,
8877F5EA1F34A3BE00DC128A /* SDLSendHapticDataSpec.m */,
+ 9FA0D00822DF0B47009CF344 /* SDLCreateWindowSpec.m */,
+ 9FA0D00E22DF0B90009CF344 /* SDLDeleteWindowSpec.m */,
8B05F88822DD011300666CD8 /* SDLUnpublishAppServiceSpec.m */,
+ 000DD56F22EF038C005AB7A7 /* SDLGetInteriorVehicleDataConsentSpec.m */,
+ 000DD57322EF0957005AB7A7 /* SDLReleaseInteriorVehicleDataModuleSpec.m */,
);
path = RequestSpecs;
sourceTree = "<group>";
@@ -3566,9 +3674,11 @@
1EE8C4571F387ABD00FDC2CF /* SDLButtonPressResponseSpec.m */,
162E826A1A9BDE8A00906325 /* SDLChangeRegistrationResponseSpec.m */,
883581AF22D659BE00405C42 /* SDLCloseApplicationResponseSpec.m */,
+ 9FA0D00B22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m */,
162E826B1A9BDE8A00906325 /* SDLCreateInteractionChoiceSetResponseSpec.m */,
162E826C1A9BDE8A00906325 /* SDLDeleteCommandResponseSpec.m */,
162E826D1A9BDE8A00906325 /* SDLDeleteFileResponseSpec.m */,
+ 9FA0D01122DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m */,
162E826E1A9BDE8A00906325 /* SDLDeleteInteractionChoiceSetResponseSpec.m */,
162E826F1A9BDE8A00906325 /* SDLDeleteSubMenuResponseSpec.m */,
162E82701A9BDE8A00906325 /* SDLDiagnosticMessageResponseSpec.m */,
@@ -3618,6 +3728,8 @@
162E828D1A9BDE8A00906325 /* SDLUpdateTurnListResponseSpec.m */,
8877F5F01F34AA2D00DC128A /* SDLSendHapticDataResponseSpec.m */,
8BA12B1722DCF59700371E82 /* SDLUnpublishAppServiceResponseSpec.m */,
+ 000DD57122EF063F005AB7A7 /* SDLGetInteriorVehicleDataConsentResponseSpec.m */,
+ 000DD57522EF0971005AB7A7 /* SDLReleaseInteriorVehicleDataModuleResponseSpec.m */,
);
path = ResponseSpecs;
sourceTree = "<group>";
@@ -3647,6 +3759,7 @@
162E82961A9BDE8A00906325 /* SDLDeviceInfoSpec.m */,
162E82971A9BDE8A00906325 /* SDLDeviceStatusSpec.m */,
162E82981A9BDE8A00906325 /* SDLDIDResult.m */,
+ 9FA0D00522DF06D3009CF344 /* SDLDisplayCapabilitySpec.m */,
162E82991A9BDE8A00906325 /* SDLDisplayCapabilitiesSpec.m */,
162E829A1A9BDE8A00906325 /* SDLECallInfoSpec.m */,
162E829B1A9BDE8A00906325 /* SDLEmergencyEventSpec.m */,
@@ -3705,6 +3818,7 @@
162E82AC1A9BDE8A00906325 /* SDLSyncMsgVersionSpec.m */,
5D0A9F961F1559EC00CC80DD /* SDLSystemCapabilitySpec.m */,
1EE8C4511F38657D00FDC2CF /* SDLTemperatureSpec.m */,
+ 9FA0CFFC22DF0687009CF344 /* SDLTemplateConfigurationSpec.m */,
162E82AD1A9BDE8A00906325 /* SDLTextFieldSpec.m */,
162E82AE1A9BDE8A00906325 /* SDLTireStatusSpec.m */,
162E82AF1A9BDE8A00906325 /* SDLTouchCoordSpec.m */,
@@ -3722,6 +3836,10 @@
8855F9DF220C93B700A5C897 /* SDLWeatherDataSpec.m */,
880D2679220DDD1000B3F496 /* SDLWeatherServiceDataSpec.m */,
880D267F220E038800B3F496 /* SDLWeatherServiceManifestSpec.m */,
+ 000DD56B22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m */,
+ 000DD56D22EF01FC005AB7A7 /* SDLSeatLocationSpec.m */,
+ 9FA0CFFF22DF06A0009CF344 /* SDLWindowCapabilitySpec.m */,
+ 9FA0D00222DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m */,
);
path = StructSpecs;
sourceTree = "<group>";
@@ -4242,12 +4360,16 @@
5D61FA6F1A84238A00846EE7 /* SDLChangeRegistration.m */,
888DBAE922D52431002A0AE2 /* SDLCloseApplication.h */,
888DBAEA22D52431002A0AE2 /* SDLCloseApplication.m */,
+ 9FD334DE22DC6E7500F62736 /* SDLCreateWindow.h */,
+ 9FD334DF22DC6E7500F62736 /* SDLCreateWindow.m */,
5D61FA7E1A84238A00846EE7 /* SDLCreateInteractionChoiceSet.h */,
5D61FA7F1A84238A00846EE7 /* SDLCreateInteractionChoiceSet.m */,
5D61FA851A84238A00846EE7 /* SDLDeleteCommand.h */,
5D61FA861A84238A00846EE7 /* SDLDeleteCommand.m */,
5D61FA891A84238A00846EE7 /* SDLDeleteFile.h */,
5D61FA8A1A84238A00846EE7 /* SDLDeleteFile.m */,
+ 9FE2470722D77A3600F8D2FC /* SDLDeleteWindow.h */,
+ 9FE2470822D77A3600F8D2FC /* SDLDeleteWindow.m */,
5D61FA8D1A84238A00846EE7 /* SDLDeleteInteractionChoiceSet.h */,
5D61FA8E1A84238A00846EE7 /* SDLDeleteInteractionChoiceSet.m */,
5D61FA911A84238A00846EE7 /* SDLDeleteSubMenu.h */,
@@ -4344,6 +4466,10 @@
5D61FC051A84238C00846EE7 /* SDLUpdateTurnList.m */,
8BA12B0F22DCCE1F00371E82 /* SDLUnpublishAppService.h */,
8BA12B1022DCCE1F00371E82 /* SDLUnpublishAppService.m */,
+ 008DB35F22EA7481003F458C /* SDLGetInteriorVehicleDataConsent.h */,
+ 008DB36022EA7481003F458C /* SDLGetInteriorVehicleDataConsent.m */,
+ 008DB36722EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.h */,
+ 008DB36822EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.m */,
);
name = Requests;
sourceTree = "<group>";
@@ -4365,6 +4491,8 @@
5D61FA711A84238A00846EE7 /* SDLChangeRegistrationResponse.m */,
888DBAED22D528DE002A0AE2 /* SDLCloseApplicationResponse.h */,
888DBAEE22D528DE002A0AE2 /* SDLCloseApplicationResponse.m */,
+ 9FE2470F22D77AA400F8D2FC /* SDLCreateWindowResponse.h */,
+ 9FE2471022D77AA400F8D2FC /* SDLCreateWindowResponse.m */,
5D61FA801A84238A00846EE7 /* SDLCreateInteractionChoiceSetResponse.h */,
5D61FA811A84238A00846EE7 /* SDLCreateInteractionChoiceSetResponse.m */,
5D61FA871A84238A00846EE7 /* SDLDeleteCommandResponse.h */,
@@ -4375,6 +4503,8 @@
5D61FA901A84238A00846EE7 /* SDLDeleteInteractionChoiceSetResponse.m */,
5D61FA931A84238A00846EE7 /* SDLDeleteSubMenuResponse.h */,
5D61FA941A84238A00846EE7 /* SDLDeleteSubMenuResponse.m */,
+ 9FE2470B22D77A5A00F8D2FC /* SDLDeleteWindowResponse.h */,
+ 9FE2470C22D77A5A00F8D2FC /* SDLDeleteWindowResponse.m */,
5D61FA9D1A84238A00846EE7 /* SDLDiagnosticMessageResponse.h */,
5D61FA9E1A84238A00846EE7 /* SDLDiagnosticMessageResponse.m */,
5D8B17511AC9E11B006A6E1C /* SDLDialNumberResponse.h */,
@@ -4469,6 +4599,10 @@
5D61FC071A84238C00846EE7 /* SDLUpdateTurnListResponse.m */,
8BA12B1322DCEACB00371E82 /* SDLUnpublishAppServiceResponse.h */,
8BA12B1422DCEACB00371E82 /* SDLUnpublishAppServiceResponse.m */,
+ 008DB36322EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.h */,
+ 008DB36422EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.m */,
+ 008DB36B22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.h */,
+ 008DB36C22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.m */,
);
name = Responses;
sourceTree = "<group>";
@@ -4520,6 +4654,8 @@
5D61FA9A1A84238A00846EE7 /* SDLDeviceStatus.m */,
5D61FA9F1A84238A00846EE7 /* SDLDIDResult.h */,
5D61FAA01A84238A00846EE7 /* SDLDIDResult.m */,
+ 9F425AD822DD983500BE3245 /* SDLDisplayCapability.h */,
+ 9F425AD922DD983500BE3245 /* SDLDisplayCapability.m */,
5D61FAA31A84238A00846EE7 /* SDLDisplayCapabilities.h */,
5D61FAA41A84238A00846EE7 /* SDLDisplayCapabilities.m */,
5D61FAAB1A84238A00846EE7 /* SDLECallInfo.h */,
@@ -4640,6 +4776,8 @@
1E5AD0631F207DD50029B8AF /* SDLTemperature.m */,
5D92935120B2F76500FCC775 /* SDLTemplateColorScheme.h */,
5D92935220B2F76500FCC775 /* SDLTemplateColorScheme.m */,
+ 9F425ACC22DD97DE00BE3245 /* SDLTemplateConfiguration.h */,
+ 9F425ACD22DD97DE00BE3245 /* SDLTemplateConfiguration.m */,
5D61FBDC1A84238C00846EE7 /* SDLTextField.h */,
5D61FBDD1A84238C00846EE7 /* SDLTextField.m */,
5D61FBE21A84238C00846EE7 /* SDLTireStatus.h */,
@@ -4672,6 +4810,18 @@
88D5EB36220CD95000EC3782 /* SDLWeatherServiceData.m */,
880D267B220DE5DF00B3F496 /* SDLWeatherServiceManifest.h */,
880D267C220DE5DF00B3F496 /* SDLWeatherServiceManifest.m */,
+ 0055412422D40DAB003194D3 /* SDLModuleInfo.h */,
+ 0055412522D40DAB003194D3 /* SDLModuleInfo.m */,
+ 0055412822D5DC0B003194D3 /* SDLGrid.h */,
+ 0055412922D5DC0B003194D3 /* SDLGrid.m */,
+ 0055412C22D759BC003194D3 /* SDLSeatLocation.h */,
+ 0055412D22D759BC003194D3 /* SDLSeatLocation.m */,
+ 0055413022D75A7A003194D3 /* SDLSeatLocationCapability.h */,
+ 0055413122D75A7B003194D3 /* SDLSeatLocationCapability.m */,
+ 9F425AD022DD980200BE3245 /* SDLWindowCapability.h */,
+ 9F425AD122DD980200BE3245 /* SDLWindowCapability.m */,
+ 9F425AD422DD981E00BE3245 /* SDLWindowTypeCapabilities.h */,
+ 9F425AD522DD981E00BE3245 /* SDLWindowTypeCapabilities.m */,
);
name = Structs;
sourceTree = "<group>";
@@ -4803,6 +4953,7 @@
5D61FB4B1A84238B00846EE7 /* SDLPredefinedLayout.m */,
5D61FB4C1A84238B00846EE7 /* SDLPrerecordedSpeech.h */,
5D61FB4D1A84238B00846EE7 /* SDLPrerecordedSpeech.m */,
+ 9FE2471722D77AED00F8D2FC /* SDLPredefinedWindows.h */,
5D61FB501A84238B00846EE7 /* SDLPrimaryAudioSource.h */,
5D61FB511A84238B00846EE7 /* SDLPrimaryAudioSource.m */,
5D61FB541A84238B00846EE7 /* SDLPRNDL.h */,
@@ -4884,6 +5035,8 @@
8B7B319D1F2F7CF700BDC38D /* SDLVideoStreamingProtocol.m */,
5D0C29FA20D93D8C008B56CD /* SDLVideoStreamingState.h */,
5D0C29FB20D93D8C008B56CD /* SDLVideoStreamingState.m */,
+ 9FE2471322D77AD500F8D2FC /* SDLWindowType.h */,
+ 9FE2471422D77AD500F8D2FC /* SDLWindowType.m */,
);
name = Enums;
sourceTree = "<group>";
@@ -6306,11 +6459,22 @@
isa = PBXHeadersBuildPhase;
buildActionMask = 2147483647;
files = (
+ 9F425AD222DD980200BE3245 /* SDLWindowCapability.h in Headers */,
+ 9F425ADA22DD983500BE3245 /* SDLDisplayCapability.h in Headers */,
+ 9F425ACE22DD97DE00BE3245 /* SDLTemplateConfiguration.h in Headers */,
+ 9F425AD622DD981E00BE3245 /* SDLWindowTypeCapabilities.h in Headers */,
+ 9FE2471522D77AD500F8D2FC /* SDLWindowType.h in Headers */,
+ 9FE2471922D77AED00F8D2FC /* SDLPredefinedWindows.h in Headers */,
+ 9FE2470D22D77A5A00F8D2FC /* SDLDeleteWindowResponse.h in Headers */,
+ 9FE2470922D77A3600F8D2FC /* SDLDeleteWindow.h in Headers */,
+ 9FE2471122D77AA400F8D2FC /* SDLCreateWindowResponse.h in Headers */,
+ 9FD334E022DC6E7500F62736 /* SDLCreateWindow.h in Headers */,
8BA12B1122DCCE1F00371E82 /* SDLUnpublishAppService.h in Headers */,
8BA12B1522DCEACB00371E82 /* SDLUnpublishAppServiceResponse.h in Headers */,
1EB59CBF202DA26000343A61 /* SDLSeatControlData.h in Headers */,
1EB59CB3202D9B5F00343A61 /* SDLSeatMemoryActionType.h in Headers */,
88665B73220B80F400D9DA77 /* SDLWeatherAlert.h in Headers */,
+ 008DB36122EA7482003F458C /* SDLGetInteriorVehicleDataConsent.h in Headers */,
1EB59CC3202DB40400343A61 /* SDLSeatControlCapabilities.h in Headers */,
1EB59CB7202D9C8100343A61 /* SDLSeatMemoryAction.h in Headers */,
1EB59CBB202DA1B400343A61 /* SDLSupportedSeat.h in Headers */,
@@ -6322,6 +6486,7 @@
1EB59CAF202D97AC00343A61 /* SDLMassageCushionFirmness.h in Headers */,
1EAA470B2032BAE5000FE74B /* SDLOnRCStatus.h in Headers */,
2BF2F84F20ED004000A26EF2 /* SDLAudioStreamingIndicator.h in Headers */,
+ 0055412E22D759BD003194D3 /* SDLSeatLocation.h in Headers */,
1EAA475120356CD2000FE74B /* SDLDistanceUnit.h in Headers */,
1EAA4755203583BC000FE74B /* SDLHMISettingsControlData.h in Headers */,
1EAA4731203442C0000FE74B /* SDLLightName.h in Headers */,
@@ -6332,6 +6497,7 @@
1EAA4749203567FA000FE74B /* SDLHMISettingsControlCapabilities.h in Headers */,
1EAA47452035623B000FE74B /* SDLLightControlData.h in Headers */,
1EAA474120355FF3000FE74B /* SDLLightControlCapabilities.h in Headers */,
+ 008DB36522EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.h in Headers */,
1EAA473920345B7A000FE74B /* SDLLightCapabilities.h in Headers */,
1EAA4725203416D3000FE74B /* SDLEqualizerSettings.h in Headers */,
1EAA47112033FE80000FE74B /* SDLStationIDNumber.h in Headers */,
@@ -6408,6 +6574,7 @@
5D4D67B41D30161600468B4A /* SDLLockScreenManager.h in Headers */,
5D00AC7B1F15287E004000D9 /* SDLPhoneCapability.h in Headers */,
5D61FE111A84238C00846EE7 /* SDLWarningLightStatus.h in Headers */,
+ 008DB36922EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.h in Headers */,
5D61FC7A1A84238C00846EE7 /* SDLDeleteInteractionChoiceSet.h in Headers */,
5D61FC3B1A84238C00846EE7 /* SDLAlertManeuverResponse.h in Headers */,
5DB9964E1F26886C002D8795 /* SDLControlFramePayloadEndService.h in Headers */,
@@ -6430,6 +6597,7 @@
5D61FD791A84238C00846EE7 /* SDLScreenParams.h in Headers */,
5D61FDCF1A84238C00846EE7 /* SDLTireStatus.h in Headers */,
5D61FDFD1A84238C00846EE7 /* SDLVehicleDataActiveStatus.h in Headers */,
+ 0055412622D40DAB003194D3 /* SDLModuleInfo.h in Headers */,
5D61FD811A84238C00846EE7 /* SDLSetAppIconResponse.h in Headers */,
5D61FC551A84238C00846EE7 /* SDLButtonName.h in Headers */,
5D616B531D59044400553F6B /* SDLErrorConstants.h in Headers */,
@@ -6474,6 +6642,7 @@
5D61FC451A84238C00846EE7 /* SDLAudioPassThruCapabilities.h in Headers */,
5D61FDC71A84238C00846EE7 /* SDLTextAlignment.h in Headers */,
5D61FD051A84238C00846EE7 /* SDLOnButtonPress.h in Headers */,
+ 0055413222D75A7B003194D3 /* SDLSeatLocationCapability.h in Headers */,
5DA150C72271FDC20032928D /* SDLSoftButtonTransitionOperation.h in Headers */,
5D61FCC51A84238C00846EE7 /* SDLHMIZoneCapabilities.h in Headers */,
884AF94F220B488900E22928 /* SDLOnSystemCapabilityUpdated.h in Headers */,
@@ -6667,6 +6836,7 @@
5D61FD0B1A84238C00846EE7 /* SDLOnEncodedSyncPData.h in Headers */,
5D61FC631A84238C00846EE7 /* SDLClusterModeStatus.h in Headers */,
5D61FD371A84238C00846EE7 /* SDLPredefinedLayout.h in Headers */,
+ 008DB36D22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.h in Headers */,
5D61FDE31A84238C00846EE7 /* SDLUnregisterAppInterface.h in Headers */,
5D61FD331A84238C00846EE7 /* SDLPowerModeQualificationStatus.h in Headers */,
005DF3C522C59191006E01A9 /* SDLEncryptionLifecycleManager.h in Headers */,
@@ -6722,6 +6892,7 @@
5DA102A41D4122C700C15826 /* NSMutableDictionary+SafeRemove.h in Headers */,
5DBF062A1E64A92C00A5CF03 /* SDLLogTarget.h in Headers */,
5DA49CE51F1EA83300E65FC5 /* SDLControlFramePayloadRPCStartService.h in Headers */,
+ 0055412A22D5DC0B003194D3 /* SDLGrid.h in Headers */,
5D61FE031A84238C00846EE7 /* SDLVehicleDataResult.h in Headers */,
5D61FD911A84238C00846EE7 /* SDLShowConstantTBT.h in Headers */,
5D92937C20B70A3E00FCC775 /* SDLPresentKeyboardOperation.h in Headers */,
@@ -7158,6 +7329,7 @@
5D61FDD21A84238C00846EE7 /* SDLTouchCoord.m in Sources */,
5D61FCEF1A84238C00846EE7 /* SDLListFilesResponse.m in Sources */,
5D3E420B20EAAD6500D8C622 /* SDLTPMS.m in Sources */,
+ 008DB36E22EA83E4003F458C /* SDLReleaseInteriorVehicleDataModuleResponse.m in Sources */,
5DD67CB11E65DDB7009CD394 /* SDLLogTargetAppleSystemLog.m in Sources */,
5D92935420B2F76500FCC775 /* SDLTemplateColorScheme.m in Sources */,
88D5EB38220CD95000EC3782 /* SDLWeatherServiceData.m in Sources */,
@@ -7244,6 +7416,7 @@
5D61FDE21A84238C00846EE7 /* SDLTurn.m in Sources */,
5D61FC5A1A84238C00846EE7 /* SDLCarModeStatus.m in Sources */,
5D82041B1BCD80BA00D0A41B /* SDLLockScreenConfiguration.m in Sources */,
+ 0055412B22D5DC0B003194D3 /* SDLGrid.m in Sources */,
8815D0F122330781000F24E6 /* SDLRPCRequestNotification.m in Sources */,
5D3E48CC1D7722FE0000BFEF /* NSBundle+SDLBundle.m in Sources */,
005DF3C622C59191006E01A9 /* SDLEncryptionLifecycleManager.m in Sources */,
@@ -7283,12 +7456,14 @@
5D61FC731A84238C00846EE7 /* SDLDeleteCommand.m in Sources */,
5D61FD2A1A84238C00846EE7 /* SDLPerformInteraction.m in Sources */,
5D61FC541A84238C00846EE7 /* SDLButtonEventMode.m in Sources */,
+ 008DB36622EA7F6F003F458C /* SDLGetInteriorVehicleDataConsentResponse.m in Sources */,
5D61FC8D1A84238C00846EE7 /* SDLDIDResult.m in Sources */,
5D61FC601A84238C00846EE7 /* SDLCharacterSet.m in Sources */,
5D07C02E2044AC9100D1ECDC /* SDLSequentialRPCRequestOperation.m in Sources */,
5DD67CB91E661C4A009CD394 /* SDLLogTargetFile.m in Sources */,
5D61FCBE1A84238C00846EE7 /* SDLHeadLampStatus.m in Sources */,
5D61FD921A84238C00846EE7 /* SDLShowConstantTBT.m in Sources */,
+ 008DB36A22EA8261003F458C /* SDLReleaseInteriorVehicleDataModule.m in Sources */,
88E6F1A8220E1588006156F9 /* SDLMediaType.m in Sources */,
5D61FC4E1A84238C00846EE7 /* SDLBitsPerSample.m in Sources */,
5D00AC701F1511B9004000D9 /* SDLGetSystemCapability.m in Sources */,
@@ -7301,14 +7476,17 @@
5D61FDCE1A84238C00846EE7 /* SDLTimerMode.m in Sources */,
5D61FD701A84238C00846EE7 /* SDLRPCPayload.m in Sources */,
5D61FD9C1A84238C00846EE7 /* SDLSlider.m in Sources */,
+ 9FE2470A22D77A3600F8D2FC /* SDLDeleteWindow.m in Sources */,
5D0A7383203F23F30001595D /* SDLSoftButtonManager.m in Sources */,
5DCF76FA1ACDD7CD00BB647B /* SDLSendLocationResponse.m in Sources */,
5D9FDA8F1F2A7D3400A495C8 /* bson_array.c in Sources */,
5D61FD661A84238C00846EE7 /* SDLResetGlobalPropertiesResponse.m in Sources */,
5D61FCFE1A84238C00846EE7 /* SDLObjectWithPriority.m in Sources */,
5D92937D20B70A3E00FCC775 /* SDLPresentKeyboardOperation.m in Sources */,
+ 9FD334E122DC6E7500F62736 /* SDLCreateWindow.m in Sources */,
5DBF06241E64A83F00A5CF03 /* SDLLogManager.m in Sources */,
5D61FC401A84238C00846EE7 /* SDLAmbientLightStatus.m in Sources */,
+ 9F425ADB22DD983500BE3245 /* SDLDisplayCapability.m in Sources */,
88EEC5BC220A327B005AA2F9 /* SDLPublishAppServiceResponse.m in Sources */,
5D61FC951A84238C00846EE7 /* SDLDriverDistractionState.m in Sources */,
5DB996611F28C6ED002D8795 /* SDLControlFramePayloadVideoStartServiceAck.m in Sources */,
@@ -7324,6 +7502,7 @@
5DD8406320FCD6C10082CE04 /* SDLElectronicParkBrakeStatus.m in Sources */,
8BBEA6071F324165003EEA26 /* SDLMetadataType.m in Sources */,
5DA150C82271FDC20032928D /* SDLSoftButtonTransitionOperation.m in Sources */,
+ 9FE2471222D77AA400F8D2FC /* SDLCreateWindowResponse.m in Sources */,
5D61FDBC1A84238C00846EE7 /* SDLSystemAction.m in Sources */,
5D61FC381A84238C00846EE7 /* SDLAlert.m in Sources */,
88AAD4BD2211B76800F1E6D7 /* SDLMediaServiceManifest.m in Sources */,
@@ -7403,6 +7582,7 @@
5D61FD841A84238C00846EE7 /* SDLSetDisplayLayout.m in Sources */,
DA9F7E701DCBFFDB00ACAE48 /* SDLGetWayPoints.m in Sources */,
1EAA4756203583BC000FE74B /* SDLHMISettingsControlData.m in Sources */,
+ 008DB36222EA7482003F458C /* SDLGetInteriorVehicleDataConsent.m in Sources */,
5D00AC741F151CFE004000D9 /* SDLGetSystemCapabilityResponse.m in Sources */,
5D61FE001A84238C00846EE7 /* SDLVehicleDataEventStatus.m in Sources */,
5D61FDC41A84238C00846EE7 /* SDLTBTState.m in Sources */,
@@ -7414,6 +7594,7 @@
5D61FDDE1A84238C00846EE7 /* SDLTTSChunk.m in Sources */,
5D61FD9E1A84238C00846EE7 /* SDLSliderResponse.m in Sources */,
1EAA47462035623B000FE74B /* SDLLightControlData.m in Sources */,
+ 0055412F22D759BD003194D3 /* SDLSeatLocation.m in Sources */,
5D61FC5C1A84238C00846EE7 /* SDLChangeRegistration.m in Sources */,
5D1665C91CF8CA3D00CC4CA1 /* SDLPermissionFilter.m in Sources */,
5D61FDBA1A84238C00846EE7 /* SDLSyncPDataResponse.m in Sources */,
@@ -7437,11 +7618,13 @@
752ECDB7228B4D6B00D945F4 /* SDLDynamicMenuUpdateAlgorithm.m in Sources */,
1FF7DABC1F75B2BF00B46C30 /* SDLFocusableItemLocator.m in Sources */,
EED5CA021F4D18EC00F04000 /* SDLRAWH264Packetizer.m in Sources */,
+ 9FE2471622D77AD500F8D2FC /* SDLWindowType.m in Sources */,
5D61FC851A84238C00846EE7 /* SDLDeviceLevelStatus.m in Sources */,
EE38C0C3211C440400E170AD /* SDLSecondaryTransportPrimaryProtocolHandler.m in Sources */,
5D9FDA981F2A7D3F00A495C8 /* emhashmap.c in Sources */,
5D61FD1E1A84238C00846EE7 /* SDLOnTBTClientState.m in Sources */,
5D0C29FD20D93D8C008B56CD /* SDLVideoStreamingState.m in Sources */,
+ 9F425AD722DD981E00BE3245 /* SDLWindowTypeCapabilities.m in Sources */,
5DD67CBD1E661C84009CD394 /* SDLLogTargetOSLog.m in Sources */,
DA9F7E641DCBFAC800ACAE48 /* SDLDateTime.m in Sources */,
5D61FD581A84238C00846EE7 /* SDLPutFileResponse.m in Sources */,
@@ -7491,10 +7674,12 @@
E9C32B9F1AB20C5900F283AF /* EAAccessoryManager+SDLProtocols.m in Sources */,
756C62772289F11F008B57A2 /* SDLDynamicMenuUpdateRunScore.m in Sources */,
5D61FDA81A84238C00846EE7 /* SDLSpeakResponse.m in Sources */,
+ 0055413322D75A7B003194D3 /* SDLSeatLocationCapability.m in Sources */,
5DB92D331AC9C8BA00C15BB0 /* SDLRPCStruct.m in Sources */,
1EAA474220355FF3000FE74B /* SDLLightControlCapabilities.m in Sources */,
8B7B31A31F2F7FEA00BDC38D /* SDLVideoStreamingFormat.m in Sources */,
DA0C46AD1DCD35080001F2A8 /* SDLRPCParameterNames.m in Sources */,
+ 9F425AD322DD980200BE3245 /* SDLWindowCapability.m in Sources */,
5DA3F3551BC448060026F2D0 /* NSMapTable+Subscripting.m in Sources */,
5D61FCD61A84238C00846EE7 /* SDLImageType.m in Sources */,
5D4D67AD1D2ED37A00468B4A /* SDLNotificationDispatcher.m in Sources */,
@@ -7506,6 +7691,7 @@
1EAA47122033FE80000FE74B /* SDLStationIDNumber.m in Sources */,
5D61FC831A84238C00846EE7 /* SDLDeviceInfo.m in Sources */,
DA318C201DD0F06C00C035AC /* NSMutableDictionary+Store.m in Sources */,
+ 9F425ACF22DD97DE00BE3245 /* SDLTemplateConfiguration.m in Sources */,
5D7F87EC1CE3C1A1002DD7C4 /* SDLDeleteFileOperation.m in Sources */,
1EB59CBC202DA1B400343A61 /* SDLSupportedSeat.m in Sources */,
97E26DED1E807AD70074A3C7 /* SDLMutableDataQueue.m in Sources */,
@@ -7516,11 +7702,13 @@
5D60088B1BE3ED540094A505 /* SDLStateMachine.m in Sources */,
8877F5EF1F34A72200DC128A /* SDLSendHapticDataResponse.m in Sources */,
5D61FD181A84238C00846EE7 /* SDLOnPermissionsChange.m in Sources */,
+ 0055412722D40DAB003194D3 /* SDLModuleInfo.m in Sources */,
8881AFAD2225D61900EA870B /* SDLSetCloudAppProperties.m in Sources */,
1EB59CAC202D96A200343A61 /* SDLMassageCushion.m in Sources */,
5D61FD3E1A84238C00846EE7 /* SDLPrimaryAudioSource.m in Sources */,
88A7A3C7220CCEA100A9E435 /* SDLGetFileResponse.m in Sources */,
1E5AD0851F20B9290029B8AF /* SDLButtonPressResponse.m in Sources */,
+ 9FE2470E22D77A5A00F8D2FC /* SDLDeleteWindowResponse.m in Sources */,
5D82041F1BCD8E6100D0A41B /* SDLConfiguration.m in Sources */,
00E22CEC22C2F1B300BC6B08 /* SDLEncryptionConfiguration.m in Sources */,
5D61FD381A84238C00846EE7 /* SDLPredefinedLayout.m in Sources */,
@@ -7597,6 +7785,7 @@
162E82EE1A9BDE8B00906325 /* SDLMediaClockFormatSpec.m in Sources */,
5DA026901AD44EE700019F86 /* SDLDialNumberResponseSpec.m in Sources */,
162E83901A9BDE8B00906325 /* SDLTireStatusSpec.m in Sources */,
+ 000DD57622EF0971005AB7A7 /* SDLReleaseInteriorVehicleDataModuleResponseSpec.m in Sources */,
162E82E01A9BDE8B00906325 /* SDLHMILevelSpec.m in Sources */,
88F65133220C6DC300CAF321 /* SDLWeatherAlertSpec.m in Sources */,
5DC09EDA1F2F7FEC00F4AB1D /* SDLControlFramePayloadNakSpec.m in Sources */,
@@ -7616,6 +7805,7 @@
162E838A1A9BDE8B00906325 /* SDLSingleTireStatusSpec.m in Sources */,
5D6EB4CC1BF28DC600693731 /* NSMapTable+SubscriptingSpec.m in Sources */,
88F37A4D226F84BE00DF119B /* SDLIAPDataSessionSpec.m in Sources */,
+ 9FA0D00322DF06B9009CF344 /* SDLWindowTypeCapabilitiesSpec.m in Sources */,
162E83051A9BDE8B00906325 /* SDLVehicleDataActiveStatusSpec.m in Sources */,
162E82E61A9BDE8B00906325 /* SDLInteractionModeSpec.m in Sources */,
888F8700221DF4880052FE4C /* SDLAsynchronousRPCOperationSpec.m in Sources */,
@@ -7627,7 +7817,9 @@
88EED83B1F33BECB00E6C42E /* SDLHapticRectSpec.m in Sources */,
162E82EA1A9BDE8B00906325 /* SDLLanguageSpec.m in Sources */,
5D76E3291D3D0A8800647CFA /* SDLFakeViewControllerPresenter.m in Sources */,
+ 9FA0D00622DF06D3009CF344 /* SDLDisplayCapabilitySpec.m in Sources */,
5DB2022A1F5F38B60061D189 /* SDLFakeStreamingManagerDataSource.m in Sources */,
+ 000DD56C22EEF8E4005AB7A7 /* SDLSeatLocationCapabilitySpec.m in Sources */,
5D92935020AF526200FCC775 /* SDLRGBColorSpec.m in Sources */,
162E83331A9BDE8B00906325 /* SDLPerformInteractionSpec.m in Sources */,
1EAA47622035B1AE000FE74B /* SDLDistanceUnitSpec.m in Sources */,
@@ -7638,7 +7830,9 @@
5DE35E4720CB0AB90034BE5A /* SDLChoiceSetSpec.m in Sources */,
162E83101A9BDE8B00906325 /* SDLOnAudioPassThruSpec.m in Sources */,
DABB62171E4A900C0034C567 /* SDLH264VideoEncoderSpec.m in Sources */,
+ 000DD57022EF038C005AB7A7 /* SDLGetInteriorVehicleDataConsentSpec.m in Sources */,
5DBEFA581F436132009EE295 /* SDLFakeSecurityManager.m in Sources */,
+ 9FA0D00022DF06A0009CF344 /* SDLWindowCapabilitySpec.m in Sources */,
162E82D91A9BDE8A00906325 /* SDLDisplayTypeSpec.m in Sources */,
00EADD3522DFE5670088B608 /* SDLEncryptionConfigurationSpec.m in Sources */,
162E83871A9BDE8B00906325 /* SDLPermissionItemSpec.m in Sources */,
@@ -7713,6 +7907,7 @@
1EE8C45A1F387BBB00FDC2CF /* SDLGetInteriorVehicleDataSpec.m in Sources */,
5D6035D5202CE4A500A429C9 /* TestMultipleRequestsConnectionManager.m in Sources */,
162E83691A9BDE8B00906325 /* SDLSubscribeButtonResponseSpec.m in Sources */,
+ 9FA0CFFA22DF064D009CF344 /* SDLPredefinedWindowsSpec.m in Sources */,
5DAE06751BDEC6D600F9B498 /* SDLArtworkSpec.m in Sources */,
5DA23FF01F2FA0FF009C0313 /* SDLControlFramePayloadEndServiceSpec.m in Sources */,
162E83591A9BDE8B00906325 /* SDLListFilesResponseSpec.m in Sources */,
@@ -7742,8 +7937,10 @@
162E82E91A9BDE8B00906325 /* SDLKeypressModeSpec.m in Sources */,
162E83211A9BDE8B00906325 /* SDLRPCPayloadSpec.m in Sources */,
8831FA3F2202227000B8FFB7 /* SDLAppServiceTypeSpec.m in Sources */,
+ 9FA0D00922DF0B47009CF344 /* SDLCreateWindowSpec.m in Sources */,
162E83851A9BDE8B00906325 /* SDLMyKeySpec.m in Sources */,
162E83941A9BDE8B00906325 /* SDLTTSChunkSpec.m in Sources */,
+ 9FA0D00F22DF0B90009CF344 /* SDLDeleteWindowSpec.m in Sources */,
1EAA47702036AE89000FE74B /* SDLLightStatusSpec.m in Sources */,
162E82DC1A9BDE8B00906325 /* SDLEmergencyEventTypeSpec.m in Sources */,
162E82CE1A9BDE8A00906325 /* SDLAudioTypeSpec.m in Sources */,
@@ -7787,6 +7984,7 @@
162E82DE1A9BDE8B00906325 /* SDLFuelCutoffStatusSpec.m in Sources */,
162E83271A9BDE8B00906325 /* SDLCreateInteractionChoiceSetSpec.m in Sources */,
5DAD5F8920508F090025624C /* SDLSoftButtonStateSpec.m in Sources */,
+ 9FA0D01222DF0BAC009CF344 /* SDLDeleteWindowResponseSpec.m in Sources */,
162E83111A9BDE8B00906325 /* SDLOnButtonEventSpec.m in Sources */,
1FF7DAC01F75CF6C00B46C30 /* SDLHapticManagerSpec.m in Sources */,
162E82FA1A9BDE8B00906325 /* SDLSoftButtonTypeSpec.m in Sources */,
@@ -7864,6 +8062,7 @@
88A4A0FA22242AB400C6F01D /* SDLNavigationServiceDataSpec.m in Sources */,
8831FA3D220207DA00B8FFB7 /* SDLServiceUpdateReasonSpec.m in Sources */,
162E831A1A9BDE8B00906325 /* SDLOnLockScreenStatusSpec.m in Sources */,
+ 000DD57422EF0957005AB7A7 /* SDLReleaseInteriorVehicleDataModuleSpec.m in Sources */,
162E83431A9BDE8B00906325 /* SDLSyncPDataSpec.m in Sources */,
167ED9461A9BCE5D00797BE5 /* SwiftSpec.swift in Sources */,
162E838B1A9BDE8B00906325 /* SDLSoftButtonCapabilitiesSpec.m in Sources */,
@@ -7896,6 +8095,7 @@
162E82F91A9BDE8B00906325 /* SDLSamplingRateSpec.m in Sources */,
5DBEFA541F434B9E009EE295 /* SDLStreamingMediaConfigurationSpec.m in Sources */,
1EB59CD2202DCA9B00343A61 /* SDLMassageModeSpec.m in Sources */,
+ 9FA0D00C22DF0B65009CF344 /* SDLCreateWindowResponseSpec.m in Sources */,
162E82CB1A9BDE8A00906325 /* SDLAppHMITypeSpec.m in Sources */,
EEB2537E2067D3E80069584E /* SDLSecondaryTransportManagerSpec.m in Sources */,
162E83031A9BDE8B00906325 /* SDLTriggerSource.m in Sources */,
@@ -7944,6 +8144,7 @@
8816772922208B82001FACFF /* SDLNavigationInstructionSpec.m in Sources */,
5DC978261B7A38640012C2F1 /* SDLGlobalsSpec.m in Sources */,
162E82FF1A9BDE8B00906325 /* SDLTextAlignmentSpec.m in Sources */,
+ 000DD57222EF063F005AB7A7 /* SDLGetInteriorVehicleDataConsentResponseSpec.m in Sources */,
162E831F1A9BDE8B00906325 /* SDLOnTouchEventSpec.m in Sources */,
162E83921A9BDE8B00906325 /* SDLTouchEventCapabilitiesSpec.m in Sources */,
162E837F1A9BDE8B00906325 /* SDLHeadLampStatusSpec.m in Sources */,
@@ -7990,6 +8191,7 @@
1EE8C4611F38865B00FDC2CF /* SDLSetInteriorVehicleDataResponseSpec.m in Sources */,
162E82FC1A9BDE8B00906325 /* SDLSystemAction.m in Sources */,
162E82CC1A9BDE8A00906325 /* SDLAppInterfaceUnregisteredReasonSpec.m in Sources */,
+ 9FA0CFFD22DF0687009CF344 /* SDLTemplateConfigurationSpec.m in Sources */,
162E83321A9BDE8B00906325 /* SDLPerformAudioPassThruSpec.m in Sources */,
162E830B1A9BDE8B00906325 /* SDLVrCapabilitiesSpec.m in Sources */,
162E83081A9BDE8B00906325 /* SDLVehicleDataResultCodeSpec.m in Sources */,
@@ -8014,6 +8216,7 @@
162E83561A9BDE8B00906325 /* SDLGenericResponseSpec.m in Sources */,
162E82D51A9BDE8A00906325 /* SDLCompassDirectionSpec.m in Sources */,
162E83861A9BDE8B00906325 /* SDLParameterPermissionsSpec.m in Sources */,
+ 9FA0CFF722DF0632009CF344 /* SDLWindowTypeSpec.m in Sources */,
162E831B1A9BDE8B00906325 /* SDLOnPermissionsChangeSpec.m in Sources */,
162E83711A9BDE8B00906325 /* SDLAirbagStatusSpec.m in Sources */,
885468322225BF2800994D8D /* SDLHybridAppPreferenceSpec.m in Sources */,
@@ -8032,6 +8235,7 @@
162E83731A9BDE8B00906325 /* SDLBeltStatusSpec.m in Sources */,
162E83551A9BDE8B00906325 /* SDLEndAudioPassThruResponseSpec.m in Sources */,
8881AFC12225EB9300EA870B /* SDLGetCloudAppPropertiesResponseSpec.m in Sources */,
+ 000DD56E22EF01FC005AB7A7 /* SDLSeatLocationSpec.m in Sources */,
162E83251A9BDE8B00906325 /* SDLAlertSpec.m in Sources */,
2BF2F85220ED068200A26EF2 /* SDLAudioStreamingIndicatorSpec.m in Sources */,
5D6035D2202CD46200A429C9 /* SDLSpecUtilities.m in Sources */,
@@ -8048,6 +8252,7 @@
1EB59CD0202DC9F200343A61 /* SDLSupportedSeatSpec.m in Sources */,
162E82EB1A9BDE8B00906325 /* SDLLayoutModeSpec.m in Sources */,
1680B1181A9CD7AD00DBD79E /* SDLV1ProtocolMessageSpec.m in Sources */,
+ 162E832F1A9BDE8B00906325 /* SDLGetDTCsSpec.m in Sources */,
162E82EC1A9BDE8B00906325 /* SDLLockScreenStatusSpec.m in Sources */,
DA96C0661D4D4F730022F520 /* SDLAppInfoSpec.m in Sources */,
162E832F1A9BDE8B00906325 /* SDLGetDTCsSpec.m in Sources */,
diff --git a/SmartDeviceLink.podspec b/SmartDeviceLink.podspec
index 13d4c6877..d93a08920 100644
--- a/SmartDeviceLink.podspec
+++ b/SmartDeviceLink.podspec
@@ -79,6 +79,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLConfiguration.h',
'SmartDeviceLink/SDLCreateInteractionChoiceSet.h',
'SmartDeviceLink/SDLCreateInteractionChoiceSetResponse.h',
+'SmartDeviceLink/SDLCreateWindow.h',
+'SmartDeviceLink/SDLCreateWindowResponse.h',
'SmartDeviceLink/SDLDateTime.h',
'SmartDeviceLink/SDLDefrostZone.h',
'SmartDeviceLink/SDLDeleteCommand.h',
@@ -89,6 +91,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLDeleteInteractionChoiceSetResponse.h',
'SmartDeviceLink/SDLDeleteSubMenu.h',
'SmartDeviceLink/SDLDeleteSubMenuResponse.h',
+'SmartDeviceLink/SDLDeleteWindow.h',
+'SmartDeviceLink/SDLDeleteWindowResponse.h',
'SmartDeviceLink/SDLDeliveryMode.h',
'SmartDeviceLink/SDLDeviceInfo.h',
'SmartDeviceLink/SDLDeviceLevelStatus.h',
@@ -100,6 +104,7 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLDIDResult.h',
'SmartDeviceLink/SDLDimension.h',
'SmartDeviceLink/SDLDirection.h',
+'SmartDeviceLink/SDLDisplayCapability.h',
'SmartDeviceLink/SDLDisplayCapabilities.h',
'SmartDeviceLink/SDLDisplayMode.h',
'SmartDeviceLink/SDLDisplayType.h',
@@ -137,6 +142,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLGetFile.h',
'SmartDeviceLink/SDLGetFileResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleData.h',
+'SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h',
+'SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h',
'SmartDeviceLink/SDLGetInteriorVehicleDataResponse.h',
'SmartDeviceLink/SDLGetSystemCapability.h',
'SmartDeviceLink/SDLGetSystemCapabilityResponse.h',
@@ -146,6 +153,7 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLGetWaypointsResponse.h',
'SmartDeviceLink/SDLGlobalProperty.h',
'SmartDeviceLink/SDLGPSData.h',
+'SmartDeviceLink/SDLGrid.h',
'SmartDeviceLink/SDLHapticRect.h',
'SmartDeviceLink/SDLHeadLampStatus.h',
'SmartDeviceLink/SDLHMICapabilities.h',
@@ -214,6 +222,7 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLMetadataTags.h',
'SmartDeviceLink/SDLMetadataType.h',
'SmartDeviceLink/SDLModuleData.h',
+'SmartDeviceLink/SDLModuleInfo.h',
'SmartDeviceLink/SDLModuleType.h',
'SmartDeviceLink/SDLMyKey.h',
'SmartDeviceLink/SDLNavigationAction.h',
@@ -263,6 +272,7 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLPowerModeQualificationStatus.h',
'SmartDeviceLink/SDLPowerModeStatus.h',
'SmartDeviceLink/SDLPredefinedLayout.h',
+'SmartDeviceLink/SDLPredefinedWindows.h',
'SmartDeviceLink/SDLPrerecordedSpeech.h',
'SmartDeviceLink/SDLPresetBankCapabilities.h',
'SmartDeviceLink/SDLPrimaryAudioSource.h',
@@ -283,6 +293,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLRegisterAppInterface.h',
'SmartDeviceLink/SDLRegisterAppInterfaceResponse.h',
'SmartDeviceLink/SDLRemoteControlCapabilities.h',
+'SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h',
+'SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h',
'SmartDeviceLink/SDLRequestType.h',
'SmartDeviceLink/SDLResetGlobalProperties.h',
'SmartDeviceLink/SDLResetGlobalPropertiesResponse.h',
@@ -305,6 +317,8 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLScrollableMessageResponse.h',
'SmartDeviceLink/SDLSeatControlCapabilities.h',
'SmartDeviceLink/SDLSeatControlData.h',
+'SmartDeviceLink/SDLSeatLocation.h',
+'SmartDeviceLink/SDLSeatLocationCapability.h',
'SmartDeviceLink/SDLSeatMemoryAction.h',
'SmartDeviceLink/SDLSeatMemoryActionType.h',
'SmartDeviceLink/SDLSupportedSeat.h',
@@ -370,6 +384,7 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLTBTState.h',
'SmartDeviceLink/SDLTemperature.h',
'SmartDeviceLink/SDLTemperatureUnit.h',
+'SmartDeviceLink/SDLTemplateConfiguration.h',
'SmartDeviceLink/SDLTemplateColorScheme.h',
'SmartDeviceLink/SDLTextAlignment.h',
'SmartDeviceLink/SDLTextField.h',
@@ -426,6 +441,9 @@ sdefault.public_header_files = [
'SmartDeviceLink/SDLWeatherServiceData.h',
'SmartDeviceLink/SDLWeatherServiceManifest.h',
'SmartDeviceLink/SDLWiperStatus.h',
+'SmartDeviceLink/SDLWindowCapability.h',
+'SmartDeviceLink/SDLWindowType.h',
+'SmartDeviceLink/SDLWindowTypeCapabilities.h',
'SmartDeviceLink/SmartDeviceLink.h',
]
end
diff --git a/SmartDeviceLink/SDLAudioControlCapabilities.h b/SmartDeviceLink/SDLAudioControlCapabilities.h
index b7f29a01c..d91bef2ef 100644
--- a/SmartDeviceLink/SDLAudioControlCapabilities.h
+++ b/SmartDeviceLink/SDLAudioControlCapabilities.h
@@ -2,6 +2,7 @@
//
#import "SDLRPCMessage.h"
+#import "SDLModuleInfo.h"
NS_ASSUME_NONNULL_BEGIN
@@ -13,7 +14,16 @@ NS_ASSUME_NONNULL_BEGIN
@param name The short friendly name of the audio control module.
@return An instance of the SDLAudioControlCapabilities class.
*/
-- (instancetype)initWithModuleName:(NSString *)name;
+- (instancetype)initWithModuleName:(NSString *)name __deprecated_msg("Use initWithModuleName:moduleInfo: instead");
+
+/**
+ Constructs a newly allocated SDLAudioControlCapabilities object with audio control module name (max 100 chars)
+
+ @param name The short friendly name of the audio control module.
+ @param moduleInfo Information about a RC module, including its id.
+ @return An instance of the SDLAudioControlCapabilities class.
+ */
+- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo;
/**
Constructs a newly allocated SDLAudioControlCapabilities object with given parameters
@@ -25,7 +35,20 @@ NS_ASSUME_NONNULL_BEGIN
@param equalizerMaxChannelID Equalizer channel ID (between 1-100).
@return An instance of the SDLAudioControlCapabilities class.
*/
-- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID;
+- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID __deprecated_msg("Use initWithModuleName:moduleInfo:sourceAvailable:keepContextAvailable:volumeAvailable:equalizerAvailable:equalizerMaxChannelID: instead");
+
+/**
+ Constructs a newly allocated SDLAudioControlCapabilities object with given parameters
+
+ @param name The short friendly name of the audio control module.
+ @param moduleInfo Information about a RC module, including its id.
+ @param sourceAvailable Availability of the control of audio source.
+ @param volumeAvailable Availability of the volume of audio source.
+ @param equalizerAvailable Availability of the equalizer of audio source.
+ @param equalizerMaxChannelID Equalizer channel ID (between 1-100).
+ @return An instance of the SDLAudioControlCapabilities class.
+ */
+- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID;
/**
* @abstract The short friendly name of the audio control module.
@@ -71,6 +94,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLInt> *equalizerMaxChannelId;
+/**
+ * Information about a RC module, including its id.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLAudioControlCapabilities.m b/SmartDeviceLink/SDLAudioControlCapabilities.m
index ad204cc62..bc7ff568d 100644
--- a/SmartDeviceLink/SDLAudioControlCapabilities.m
+++ b/SmartDeviceLink/SDLAudioControlCapabilities.m
@@ -19,6 +19,17 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.moduleName = name;
+ self.moduleInfo = moduleInfo;
+
+ return self;
+}
+
- (instancetype)initWithModuleName:(NSString *)name sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID {
self = [self init];
if (!self) {
@@ -34,6 +45,25 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithModuleName:(NSString *)name moduleInfo:(nullable SDLModuleInfo *)moduleInfo sourceAvailable:(nullable NSNumber<SDLBool> *)sourceAvailable keepContextAvailable:(nullable NSNumber<SDLBool> *)keepContextAvailable volumeAvailable:(nullable NSNumber<SDLBool> *)volumeAvailable equalizerAvailable:(nullable NSNumber<SDLBool> *)equalizerAvailable equalizerMaxChannelID:(nullable NSNumber<SDLInt> *)equalizerMaxChannelID {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.moduleName = name;
+ self.moduleInfo = moduleInfo;
+ self.sourceAvailable = sourceAvailable;
+ self.keepContextAvailable = keepContextAvailable;
+ self.volumeAvailable = volumeAvailable;
+ self.equalizerAvailable = equalizerAvailable;
+ self.equalizerMaxChannelId = equalizerMaxChannelID;
+
+ return self;
+
+}
+
+
- (void)setModuleName:(NSString *)moduleName {
[self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName];
}
@@ -83,6 +113,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameEqualizerMaxChannelId ofClass:NSNumber.class error:nil];
}
+- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
+}
+
+- (nullable SDLModuleInfo *)moduleInfo {
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLButtonCapabilities.h b/SmartDeviceLink/SDLButtonCapabilities.h
index 35600f5b2..1333da2cf 100644
--- a/SmartDeviceLink/SDLButtonCapabilities.h
+++ b/SmartDeviceLink/SDLButtonCapabilities.h
@@ -4,6 +4,7 @@
#import "SDLRPCMessage.h"
#import "SDLButtonName.h"
+#import "SDLModuleInfo.h"
/**
@@ -44,6 +45,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic) NSNumber<SDLBool> *upDownAvailable;
+/**
+ * Information about a RC module, including its id.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLButtonCapabilities.m b/SmartDeviceLink/SDLButtonCapabilities.m
index 12cd24847..1685d0907 100644
--- a/SmartDeviceLink/SDLButtonCapabilities.m
+++ b/SmartDeviceLink/SDLButtonCapabilities.m
@@ -46,6 +46,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameUpDownAvailable ofClass:NSNumber.class error:&error];
}
+- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
+}
+
+- (nullable SDLModuleInfo *)moduleInfo {
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLButtonPress.h b/SmartDeviceLink/SDLButtonPress.h
index b019b4edd..3d251f87d 100644
--- a/SmartDeviceLink/SDLButtonPress.h
+++ b/SmartDeviceLink/SDLButtonPress.h
@@ -15,7 +15,9 @@ NS_ASSUME_NONNULL_BEGIN
@interface SDLButtonPress : SDLRPCRequest
-- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType) moduleType;
+- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType __deprecated_msg(("Use initWithButtonName:moduleType:moduleId: instead"));;
+
+- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId;
/**
* The module where the button should be pressed.
@@ -24,6 +26,13 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic) SDLModuleType moduleType;
/**
+ * Id of a module, published by System Capability.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) NSString *moduleId;
+
+/**
* The name of supported RC climate or radio button.
*
*/
diff --git a/SmartDeviceLink/SDLButtonPress.m b/SmartDeviceLink/SDLButtonPress.m
index f79152830..4f215c206 100644
--- a/SmartDeviceLink/SDLButtonPress.m
+++ b/SmartDeviceLink/SDLButtonPress.m
@@ -20,7 +20,7 @@ NS_ASSUME_NONNULL_BEGIN
}
#pragma clang diagnostic pop
-- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType) moduleType {
+- (instancetype)initWithButtonName:(SDLButtonName) buttonName moduleType:(SDLModuleType)moduleType {
self = [self init];
if (!self) {
return nil;
@@ -32,6 +32,19 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithButtonName:(SDLButtonName)buttonName moduleType:(SDLModuleType)moduleType moduleId:(nullable NSString *)moduleId {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.buttonName = buttonName;
+ self.moduleType = moduleType;
+ self.moduleId = moduleId;
+
+ return self;
+}
+
- (void)setModuleType:(SDLModuleType)moduleType {
[self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType];
}
@@ -59,5 +72,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_enumForName:SDLRPCParameterNameButtonPressMode error:&error];
}
+- (void)setModuleId:(nullable NSString *)moduleId {
+ [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId];
+}
+
+- (nullable NSString *)moduleId {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLChoiceSetManager.m b/SmartDeviceLink/SDLChoiceSetManager.m
index 7818dac24..9579f7807 100644
--- a/SmartDeviceLink/SDLChoiceSetManager.m
+++ b/SmartDeviceLink/SDLChoiceSetManager.m
@@ -28,6 +28,7 @@
#import "SDLOnHMIStatus.h"
#import "SDLPerformInteraction.h"
#import "SDLPerformInteractionResponse.h"
+#import "SDLPredefinedWindows.h"
#import "SDLPreloadChoicesOperation.h"
#import "SDLPresentChoiceSetOperation.h"
#import "SDLPresentKeyboardOperation.h"
@@ -417,17 +418,19 @@ UInt16 const ChoiceCellIdMin = 1;
SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response;
if (!response.success.boolValue) { return; }
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
if (response.displayCapabilities == nil) {
SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break.");
return;
}
self.displayCapabilities = response.displayCapabilities;
+#pragma clang diagnostic pop
}
- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification {
SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response;
-
if (!response.success.boolValue) { return; }
if (response.displayCapabilities == nil) {
SDLLogE(@"SetDisplayLayout succeeded but didn't send a display capabilities. A lot of things will probably break.");
@@ -440,6 +443,11 @@ UInt16 const ChoiceCellIdMin = 1;
- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification {
// We can only present a choice set if we're in FULL
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification;
+
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
SDLHMILevel oldHMILevel = self.currentHMILevel;
self.currentHMILevel = hmiStatus.hmiLevel;
diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.h b/SmartDeviceLink/SDLClimateControlCapabilities.h
index a8d4035da..99ad8fece 100644
--- a/SmartDeviceLink/SDLClimateControlCapabilities.h
+++ b/SmartDeviceLink/SDLClimateControlCapabilities.h
@@ -5,6 +5,7 @@
#import "SDLRPCMessage.h"
#import "SDLDefrostZone.h"
#import "SDLVentilationMode.h"
+#import "SDLModuleInfo.h"
NS_ASSUME_NONNULL_BEGIN
@@ -17,7 +18,9 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable __deprecated_msg("Use initWithModuleName:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead");
-- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable;
+- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable __deprecated_msg("Use initWithModuleName: moduleId:fanSpeedAvailable:desiredTemperatureAvailable:acEnableAvailable:acMaxEnableAvailable:circulateAirAvailable:autoModeEnableAvailable: dualModeEnableAvailable:defrostZoneAvailable:ventilationModeAvailable: heatedSteeringWheelAvailable:heatedWindshieldAvailable: heatedRearWindowAvailable:heatedMirrorsAvailable: climateEnableAvailable: instead");
+
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)heatedSteeringWheelAvailable heatedWindshieldAvailable:(BOOL)heatedWindshieldAvailable heatedRearWindowAvailable:(BOOL)heatedRearWindowAvailable heatedMirrorsAvailable:(BOOL)heatedMirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable;
/**
* The short friendly name of the climate control module.
@@ -156,6 +159,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLBool> *climateEnableAvailable;
+/**
+ * Information about a RC module, including its id.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLClimateControlCapabilities.m b/SmartDeviceLink/SDLClimateControlCapabilities.m
index 199795974..5742cb82c 100644
--- a/SmartDeviceLink/SDLClimateControlCapabilities.m
+++ b/SmartDeviceLink/SDLClimateControlCapabilities.m
@@ -19,12 +19,17 @@ NS_ASSUME_NONNULL_BEGIN
}
- (instancetype)initWithModuleName:(NSString *)moduleName fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable{
+ return [self initWithModuleName:moduleName moduleInfo:nil fanSpeedAvailable:fanSpeedAvailable desiredTemperatureAvailable:desiredTemperatureAvailable acEnableAvailable:acEnableAvailable acMaxEnableAvailable:acMaxEnableAvailable circulateAirAvailable:circulateAirEnableAvailable autoModeEnableAvailable:autoModeEnableAvailable dualModeEnableAvailable:dualModeEnableAvailable defrostZoneAvailable:defrostZoneAvailable ventilationModeAvailable:ventilationModeAvailable heatedSteeringWheelAvailable:steeringWheelAvailable heatedWindshieldAvailable:windshieldAvailable heatedRearWindowAvailable:rearWindowAvailable heatedMirrorsAvailable:mirrorsAvailable climateEnableAvailable:NO];
+}
+
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo fanSpeedAvailable:(BOOL)fanSpeedAvailable desiredTemperatureAvailable:(BOOL)desiredTemperatureAvailable acEnableAvailable:(BOOL)acEnableAvailable acMaxEnableAvailable:(BOOL)acMaxEnableAvailable circulateAirAvailable:(BOOL)circulateAirEnableAvailable autoModeEnableAvailable:(BOOL)autoModeEnableAvailable dualModeEnableAvailable:(BOOL)dualModeEnableAvailable defrostZoneAvailable:(BOOL)defrostZoneAvailable ventilationModeAvailable:(BOOL)ventilationModeAvailable heatedSteeringWheelAvailable:(BOOL)steeringWheelAvailable heatedWindshieldAvailable:(BOOL)windshieldAvailable heatedRearWindowAvailable:(BOOL)rearWindowAvailable heatedMirrorsAvailable:(BOOL)mirrorsAvailable climateEnableAvailable:(BOOL)climateEnableAvailable{
self = [self init];
if (!self) {
return nil;
}
-
+
self.moduleName = moduleName;
+ self.moduleInfo = moduleInfo;
self.fanSpeedAvailable = @(fanSpeedAvailable);
self.desiredTemperatureAvailable = @(desiredTemperatureAvailable);
self.acEnableAvailable = @(acEnableAvailable);
@@ -179,6 +184,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameClimateEnableAvailable ofClass:NSNumber.class error:nil];
}
+- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
+}
+
+- (nullable SDLModuleInfo *)moduleInfo {
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLCreateWindow.h b/SmartDeviceLink/SDLCreateWindow.h
new file mode 100644
index 000000000..ad4475ef2
--- /dev/null
+++ b/SmartDeviceLink/SDLCreateWindow.h
@@ -0,0 +1,72 @@
+//
+// SDLCreateWindow.h
+// SmartDeviceLink
+//
+
+#import "SDLRPCRequest.h"
+#import "SDLWindowType.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Create a new window on the display with the specified window type.
+ @discussion Windows of different types like MAIN or WIDGET windows can be created. Every application will have a pre-created MAIN window available. A widget is a small window that the app can create to provide information and soft buttons for quick app control. Widgets can be created depending on the capabilities of the system. Widgets can be associated with a specific App Service type such as `MEDIA` or `NAVIGATION`. As an example if a `MEDIA` app becomes active, this app becomes audible and is allowed to play audio. If the media app has created a widget with `MEDIA` type associated, this widget will automatically be activated together with the app.
+
+ @since SDL 6.0
+ */
+@interface SDLCreateWindow : SDLRPCRequest
+
+
+/**
+ Constructor with the required parameters
+
+ @param windowId The type of the window to be created. Main window or widget.
+ @param windowName The window name to be used by the HMI. @see windowName
+ @param windowType The type of the window to be created. Main window or widget.
+ */
+- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType;
+
+/**
+ Convinience constructor with all the parameters.
+
+ @param windowId The type of the window to be created. Main window or widget.
+ @param windowName The window name to be used by the HMI. @see windowName
+ @param windowType The type of the window to be created. Main window or widget.
+ @param associatedServiceType Allows an app to create a widget related to a specific service type. @see associatedServiceType
+ @param duplicateUpdatesFromWindowID Optional parameter. Specify whether the content sent to an existing window should be duplicated to the created window. If there isn't a window with the ID, the request will be rejected with `INVALID_DATA`.
+ */
+- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType associatedServiceType:(nullable NSString *)associatedServiceType duplicateUpdatesFromWindowID:(NSUInteger)duplicateUpdatesFromWindowID;
+
+
+/**
+ A unique ID to identify the window.
+ @discussion The value of '0' will always be the default main window on the main display and should not be used in this context as it will already be created for the app. See PredefinedWindows enum. Creating a window with an ID that is already in use will be rejected with `INVALID_ID`.
+ */
+@property (strong, nonatomic) NSNumber<SDLUInt> *windowID;
+
+/**
+ The window name to be used by the HMI.
+ @discussion The name of the pre-created default window will match the app name. Multiple apps can share the same window name except for the default main window. Creating a window with a name which is already in use by the app will result in `DUPLICATE_NAME`. MaxLength 100.
+ */
+@property (strong, nonatomic) NSString *windowName;
+
+/**
+ The type of the window to be created. Main window or widget.
+ */
+@property (strong, nonatomic) SDLWindowType type;
+
+/**
+ Allows an app to create a widget related to a specific service type.
+ @discussion As an example if a `MEDIA` app becomes active, this app becomes audible and is allowed to play audio. Actions such as skip or play/pause will be directed to this active media app. In case of widgets, the system can provide a single "media" widget which will act as a placeholder for the active media app. It is only allowed to have one window per service type. This means that a media app can only have a single MEDIA widget. Still the app can create widgets omitting this parameter. Those widgets would be available as app specific widgets that are permanently included in the HMI. This parameter is related to widgets only. The default main window, which is pre-created during app registration, will be created based on the HMI types specified in the app registration request.
+ */
+@property (strong, nonatomic, nullable) NSString *associatedServiceType;
+
+
+/**
+ Optional parameter. Specify whether the content sent to an existing window should be duplicated to the created window. If there isn't a window with the ID, the request will be rejected with `INVALID_DATA`.
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLUInt> *duplicateUpdatesFromWindowID;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLCreateWindow.m b/SmartDeviceLink/SDLCreateWindow.m
new file mode 100644
index 000000000..b6b55ec17
--- /dev/null
+++ b/SmartDeviceLink/SDLCreateWindow.m
@@ -0,0 +1,96 @@
+//
+// SDLCreateWindow.m
+// SmartDeviceLink
+
+#import "SDLCreateWindow.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLCreateWindow
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameCreateWindow]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.windowID = @(windowId);
+ self.windowName = windowName;
+ self.type = windowType;
+ return self;
+}
+
+- (instancetype)initWithId:(NSUInteger)windowId windowName:(NSString *)windowName windowType:(SDLWindowType)windowType associatedServiceType:(nullable NSString *)associatedServiceType duplicateUpdatesFromWindowID:(NSUInteger)duplicateUpdatesFromWindowID {
+ self = [self initWithId:windowId windowName:windowName windowType:windowType];
+ if (!self) {
+ return nil;
+ }
+ self.associatedServiceType = associatedServiceType;
+ self.duplicateUpdatesFromWindowID = @(duplicateUpdatesFromWindowID);
+ return self;
+}
+
+
+#pragma mark - Getters / Setters
+
+- (void)setWindowID:(NSNumber<SDLUInt> *)windowID {
+ [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId];
+}
+
+- (NSNumber<SDLUInt> *)windowID {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error];
+}
+
+- (void)setWindowName:(NSString *)windowName {
+ [self.parameters sdl_setObject:windowName forName:SDLRPCParameterNameWindowName];
+}
+
+- (NSString *)windowName {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowName ofClass:NSString.class error:&error];
+}
+
+
+- (void)setType:(SDLWindowType)type {
+ [self.parameters sdl_setObject:type forName:SDLRPCParameterNameType];
+}
+
+- (SDLWindowType)type {
+ NSError *error = nil;
+ return [self.parameters sdl_enumForName:SDLRPCParameterNameType error:&error];
+}
+
+- (void)setAssociatedServiceType:(nullable NSString *)associatedServiceType {
+ [self.parameters sdl_setObject:associatedServiceType forName:SDLRPCParameterNameAssociatedServiceType];
+}
+
+- (nullable NSString *)associatedServiceType {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameAssociatedServiceType ofClass:NSString.class error:&error];
+}
+
+- (void)setDuplicateUpdatesFromWindowID:(nullable NSNumber<SDLUInt> *)duplicateUpdatesFromWindowID {
+ [self.parameters sdl_setObject:duplicateUpdatesFromWindowID forName:SDLRPCParameterNameDuplicateUpdatesFromWindowID];
+}
+
+- (nullable NSNumber<SDLUInt> *)duplicateUpdatesFromWindowID {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameDuplicateUpdatesFromWindowID ofClass:NSNumber.class error:&error];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLCreateWindowResponse.h b/SmartDeviceLink/SDLCreateWindowResponse.h
new file mode 100644
index 000000000..bc6dc6641
--- /dev/null
+++ b/SmartDeviceLink/SDLCreateWindowResponse.h
@@ -0,0 +1,13 @@
+//
+// SDLCreateWindowResponse.h
+// SmartDeviceLink
+
+#import "SDLRPCResponse.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLCreateWindowResponse : SDLRPCResponse
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLCreateWindowResponse.m b/SmartDeviceLink/SDLCreateWindowResponse.m
new file mode 100644
index 000000000..a9f6a3029
--- /dev/null
+++ b/SmartDeviceLink/SDLCreateWindowResponse.m
@@ -0,0 +1,23 @@
+//
+// SDLCreateWindowResponse.m
+// SmartDeviceLink
+
+#import "SDLCreateWindowResponse.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+@implementation SDLCreateWindowResponse
+
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameCreateWindow]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+@end
diff --git a/SmartDeviceLink/SDLDeleteWindow.h b/SmartDeviceLink/SDLDeleteWindow.h
new file mode 100644
index 000000000..2561b45c1
--- /dev/null
+++ b/SmartDeviceLink/SDLDeleteWindow.h
@@ -0,0 +1,32 @@
+//
+// SDLDeleteWindow.h
+// SmartDeviceLink
+
+#import "SDLRPCRequest.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Deletes previously created window of the SDL application.
+
+ @since SDL 6.0
+ */
+@interface SDLDeleteWindow : SDLRPCRequest
+
+/**
+ @param windowId A unique ID to identify the window. The value of '0' will always be the default main window on the main display and cannot be deleted.
+ */
+- (instancetype)initWithId:(NSUInteger)windowId;
+
+/**
+ A unique ID to identify the window.
+
+ The value of '0' will always be the default main window on the main display and cannot be deleted.
+
+ @see PredefinedWindows enum.
+ */
+@property (strong, nonatomic) NSNumber<SDLUInt> *windowID;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLDeleteWindow.m b/SmartDeviceLink/SDLDeleteWindow.m
new file mode 100644
index 000000000..d4f6189c8
--- /dev/null
+++ b/SmartDeviceLink/SDLDeleteWindow.m
@@ -0,0 +1,40 @@
+//
+// SDLDeleteWindow.m
+// SmartDeviceLink
+
+#import "SDLDeleteWindow.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+@implementation SDLDeleteWindow
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameDeleteWindow]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+- (instancetype)initWithId:(NSUInteger)windowId {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.windowID = @(windowId);
+ return self;
+}
+
+- (void)setWindowID:(NSNumber<SDLUInt> *)windowID {
+ [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId];
+}
+
+- (NSNumber<SDLUInt> *)windowID {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLDeleteWindowResponse.h b/SmartDeviceLink/SDLDeleteWindowResponse.h
new file mode 100644
index 000000000..d068f0aea
--- /dev/null
+++ b/SmartDeviceLink/SDLDeleteWindowResponse.h
@@ -0,0 +1,17 @@
+//
+// SDLDeleteWindowResponse.h
+// SmartDeviceLink
+//
+// Created by cssoeutest1 on 11.07.19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCResponse.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLDeleteWindowResponse : SDLRPCResponse
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLDeleteWindowResponse.m b/SmartDeviceLink/SDLDeleteWindowResponse.m
new file mode 100644
index 000000000..c7cf30058
--- /dev/null
+++ b/SmartDeviceLink/SDLDeleteWindowResponse.m
@@ -0,0 +1,26 @@
+//
+// SDLDeleteWindowResponse.m
+// SmartDeviceLink
+//
+// Created by cssoeutest1 on 11.07.19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLDeleteWindowResponse.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+@implementation SDLDeleteWindowResponse
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameDeleteWindow]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+@end
diff --git a/SmartDeviceLink/SDLDisplayCapability.h b/SmartDeviceLink/SDLDisplayCapability.h
new file mode 100644
index 000000000..f29c092af
--- /dev/null
+++ b/SmartDeviceLink/SDLDisplayCapability.h
@@ -0,0 +1,64 @@
+//
+// SDLDisplayCapability.h
+// SmartDeviceLink
+
+#import "SDLRPCStruct.h"
+
+@class SDLWindowCapability;
+@class SDLWindowTypeCapabilities;
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Contain the display related information and all windows related to that display.
+
+ @since SDL 6.0
+ */
+@interface SDLDisplayCapability : SDLRPCStruct
+
+/**
+ Init with required properties
+
+ @param displayName Name of the display.
+ */
+- (instancetype)initWithDisplayName:(NSString *)displayName;
+
+
+/**
+ Init with all the properities
+
+ @param displayName Name of the display.
+ @param windowTypeSupported Informs the application how many windows the app is allowed to create per type.
+ @param windowCapabilities Contains a list of capabilities of all windows related to the app. @see windowCapabilities
+ */
+- (instancetype)initWithDisplayName:(NSString *)displayName windowTypeSupported:(nullable NSArray<SDLWindowCapability *> *)windowTypeSupported windowCapabilities:(nullable NSArray<SDLWindowTypeCapabilities *> *)windowCapabilities;
+
+
+/**
+ Name of the display.
+ */
+@property (strong, nonatomic, nullable) NSString *displayName;
+
+/**
+ Informs the application how many windows the app is allowed to create per type.
+
+ Min size 1
+ Max size 100
+ */
+@property (strong, nonatomic, nullable) NSArray<SDLWindowTypeCapabilities *> *windowTypeSupported;
+
+/**
+ Contains a list of capabilities of all windows related to the app. Once the app has registered the capabilities of all windows will be provided, but GetSystemCapability still allows requesting window capabilities of all windows.
+
+ After registration, only windows with capabilities changed will be included. Following cases will cause only affected windows to be included:
+
+ 1. App creates a new window. After the window is created, a system capability notification will be sent related only to the created window.
+ 2. App sets a new template to the window. The new template changes window capabilties. The notification will reflect those changes to the single window.
+
+ Min size 1, Max size 1000
+ */
+@property (strong, nonatomic, nullable) NSArray<SDLWindowCapability *> *windowCapabilities;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLDisplayCapability.m b/SmartDeviceLink/SDLDisplayCapability.m
new file mode 100644
index 000000000..b4d8b319a
--- /dev/null
+++ b/SmartDeviceLink/SDLDisplayCapability.m
@@ -0,0 +1,66 @@
+//
+// SDLDisplayCapability.m
+// SmartDeviceLink
+
+#import "SDLDisplayCapability.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLWindowTypeCapabilities.h"
+#import "SDLWindowCapability.h"
+
+@implementation SDLDisplayCapability
+
+- (instancetype)init {
+ self = [super init];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+- (instancetype)initWithDisplayName:(NSString *)displayName {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.displayName = displayName;
+ return self;
+}
+
+- (instancetype)initWithDisplayName:(NSString *)displayName windowTypeSupported:(nullable NSArray<SDLWindowTypeCapabilities *> *)windowTypeSupported windowCapabilities:(nullable NSArray<SDLWindowCapability *> *)windowCapabilities{
+ self = [self initWithDisplayName:displayName];
+ if (!self) {
+ return nil;
+ }
+ self.windowTypeSupported = windowTypeSupported;
+ self.windowCapabilities = windowCapabilities;
+ return self;
+}
+
+- (void)setDisplayName:(NSString *)displayName {
+ [self.store sdl_setObject:displayName forName:SDLRPCParameterNameDisplayName];
+}
+
+- (NSString *)displayName {
+ return [self.store sdl_objectForName:SDLRPCParameterNameDisplayName ofClass:NSString.class error:nil];
+}
+
+- (void)setWindowTypeSupported:(nullable NSArray<SDLWindowTypeCapabilities *> *)windowTypeSupported {
+ [self.store sdl_setObject:windowTypeSupported forName:SDLRPCParameterNameWindowTypeSupported];
+}
+
+- (nullable NSArray<SDLWindowTypeCapabilities *> *)windowTypeSupported {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameWindowTypeSupported ofClass:SDLWindowTypeCapabilities.class error:nil];
+}
+
+- (void)setWindowCapabilities:(nullable NSArray<SDLWindowCapability *> *)windowCapabilities {
+ [self.store sdl_setObject:windowCapabilities forName:SDLRPCParameterNameWindowCapabilities];
+}
+
+- (nullable NSArray<SDLWindowCapability *> *)windowCapabilities {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameWindowCapabilities ofClass:SDLWindowCapability.class error:nil];
+}
+
+
+@end
diff --git a/SmartDeviceLink/SDLFunctionID.m b/SmartDeviceLink/SDLFunctionID.m
index 80cc2437d..c03280dcd 100644
--- a/SmartDeviceLink/SDLFunctionID.m
+++ b/SmartDeviceLink/SDLFunctionID.m
@@ -91,6 +91,10 @@ NS_ASSUME_NONNULL_BEGIN
@56: SDLRPCFunctionNameUnpublishAppService,
@58: SDLRPCFunctionNameCloseApplication,
@59: SDLRPCFunctionNameShowAppMenu,
+ @60: SDLRPCFunctionNameCreateWindow,
+ @61: SDLRPCFunctionNameDeleteWindow,
+ @62: SDLRPCFunctionNameGetInteriorVehicleDataConsent,
+ @63: SDLRPCFunctionNameReleaseInteriorVehicleDataModule,
@32768: SDLRPCFunctionNameOnHMIStatus,
@32769: SDLRPCFunctionNameOnAppInterfaceUnregistered,
@32770: SDLRPCFunctionNameOnButtonEvent,
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleData.h b/SmartDeviceLink/SDLGetInteriorVehicleData.h
index 01d208f71..143a2468f 100644
--- a/SmartDeviceLink/SDLGetInteriorVehicleData.h
+++ b/SmartDeviceLink/SDLGetInteriorVehicleData.h
@@ -4,6 +4,7 @@
#import "SDLRPCRequest.h"
#import "SDLModuleType.h"
+#import "SDLModuleInfo.h"
/**
* Reads the current status value of specified remote control module (type).
@@ -17,11 +18,17 @@ NS_ASSUME_NONNULL_BEGIN
@interface SDLGetInteriorVehicleData : SDLRPCRequest
-- (instancetype)initWithModuleType:(SDLModuleType)moduleType;
+- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId;
-- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType;
+- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId;
-- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType;
+- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId;
+
+- (instancetype)initWithModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initWithModuleType:moduleId: instead");
+
+- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initAndSubscribeToModuleType:moduleId: instead");
+
+- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType __deprecated_msg("Use initAndUnsubscribeToModuleType:moduleId:");
/**
* The type of a RC module to retrieve module data from the vehicle.
@@ -30,8 +37,16 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic) SDLModuleType moduleType;
/**
- * If subscribe is true, the head unit will register onInteriorVehicleData notifications for the requested moduelType.
- * If subscribe is false, the head unit will unregister onInteriorVehicleData notifications for the requested moduelType.
+ * Id of a module, published by System Capability.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) NSString *moduleId;
+
+/**
+ * If subscribe is true, the head unit will register OnInteriorVehicleData notifications for the requested module (moduleId and moduleType).
+ * If subscribe is false, the head unit will unregister OnInteriorVehicleData notifications for the requested module (moduleId and moduleType).
+ * If subscribe is not included, the subscription status of the app for the requested module (moduleId and moduleType) will remain unchanged.
*
* optional, Boolean, default Value = false
*/
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleData.m b/SmartDeviceLink/SDLGetInteriorVehicleData.m
index 4f283fb49..57f0aa833 100755
--- a/SmartDeviceLink/SDLGetInteriorVehicleData.m
+++ b/SmartDeviceLink/SDLGetInteriorVehicleData.m
@@ -20,6 +20,44 @@ NS_ASSUME_NONNULL_BEGIN
}
#pragma clang diagnostic pop
+- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.moduleType = moduleType;
+ self.moduleId = moduleId;
+
+ return self;
+}
+
+- (instancetype)initAndSubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.moduleType = moduleType;
+ self.moduleId = moduleId;
+ self.subscribe = @(YES);
+
+ return self;
+}
+
+- (instancetype)initAndUnsubscribeToModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.moduleType = moduleType;
+ self.moduleId = moduleId;
+ self.subscribe = @(NO);
+
+ return self;
+}
+
- (instancetype)initWithModuleType:(SDLModuleType)moduleType; {
self = [self init];
if (!self) {
@@ -72,6 +110,15 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameSubscribe ofClass:NSNumber.class error:nil];
}
+- (void)setModuleId:(nullable NSString *)moduleId {
+ [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId];
+}
+
+- (nullable NSString *)moduleId {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h b/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h
new file mode 100644
index 000000000..ff647fcde
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.h
@@ -0,0 +1,34 @@
+//
+// SDLGetInteriorVehicleDataConsent.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCRequest.h"
+#import "SDLModuleType.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLGetInteriorVehicleDataConsent : SDLRPCRequest
+
+- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleIds:(NSArray<NSString *> *)moduleIds;
+
+/**
+ * The module type that the app requests to control.
+ *
+ * Required
+ */
+@property (strong, nonatomic) SDLModuleType moduleType;
+
+/**
+ * Ids of a module of same type, published by System Capability.
+ *
+ * Required
+ */
+@property (strong, nonatomic) NSArray<NSString *> *moduleIds;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m b/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m
new file mode 100644
index 000000000..88ed0d8e9
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleDataConsent.m
@@ -0,0 +1,55 @@
+//
+// SDLGetInteriorVehicleDataConsent.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLGetInteriorVehicleDataConsent.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+#import "NSMutableDictionary+Store.h"
+
+@implementation SDLGetInteriorVehicleDataConsent
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleDataConsent]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleIds:(NSArray<NSString *> *)moduleIds {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.moduleType = moduleType;
+ self.moduleIds = moduleIds;
+
+ return self;
+}
+
+- (void)setModuleType:(SDLModuleType)moduleType {
+ [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType];
+}
+
+- (SDLModuleType)moduleType {
+ NSError *error = nil;
+ return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error];
+}
+
+- (void)setModuleIds:(NSArray<NSString *> *)moduleIds {
+ [self.parameters sdl_setObject:moduleIds forName:SDLRPCParameterNameModuleIds];
+}
+
+- (NSArray<NSString *> *)moduleIds {
+ NSError *error = nil;
+ return [self.parameters sdl_objectsForName:SDLRPCParameterNameModuleIds ofClass:NSString.class error:&error];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h b/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h
new file mode 100644
index 000000000..7aee83e57
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.h
@@ -0,0 +1,26 @@
+//
+// SDLGetInteriorVehicleDataConsentResponse.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCResponse.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLGetInteriorVehicleDataConsentResponse : SDLRPCResponse
+
+/**
+ This array has the same size as "moduleIds" in the request; each element corresponding to one moduleId
+ "true" - if SDL grants the permission for the requested module
+ "false" - SDL denies the permission for the requested module.
+
+ Optional
+ */
+@property (strong, nonatomic, nullable) NSArray<NSNumber<SDLBool> *> *allowed;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m b/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m
new file mode 100644
index 000000000..872eded62
--- /dev/null
+++ b/SmartDeviceLink/SDLGetInteriorVehicleDataConsentResponse.m
@@ -0,0 +1,34 @@
+//
+// SDLGetInteriorVehicleDataConsentResponse.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLGetInteriorVehicleDataConsentResponse.h"
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCFunctionNames.h"
+#import "SDLRPCParameterNames.h"
+
+@implementation SDLGetInteriorVehicleDataConsentResponse
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameGetInteriorVehicleDataConsent]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+- (void)setAllowed:(nullable NSArray<NSNumber<SDLBool> *> *)allowed {
+ [self.parameters sdl_setObject:allowed forName:SDLRPCParameterNameAllowed];
+}
+
+- (nullable NSArray<NSNumber<SDLBool> *> *)allowed {
+ NSError *error = nil;
+ return [self.parameters sdl_objectsForName:SDLRPCParameterNameAllowed ofClass:NSNumber.class error:&error];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLGetVehicleData.h b/SmartDeviceLink/SDLGetVehicleData.h
index b9e0fca30..d7f255241 100644
--- a/SmartDeviceLink/SDLGetVehicleData.h
+++ b/SmartDeviceLink/SDLGetVehicleData.h
@@ -272,6 +272,26 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLBool> *cloudAppVehicleID;
+/**
+ Sets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @param vehicleDataState A boolean value. If true, requests the OEM custom vehicle data item.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState;
+
+/**
+ Gets the OEM custom vehicle data value for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @return The state of an OEM custom vehicle data item for the given vehicle data name.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetVehicleData.m b/SmartDeviceLink/SDLGetVehicleData.m
index 7ed2bb189..100f0f979 100644
--- a/SmartDeviceLink/SDLGetVehicleData.m
+++ b/SmartDeviceLink/SDLGetVehicleData.m
@@ -309,6 +309,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil];
}
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState {
+ [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName];
+}
+
+- (NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName {
+ return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetVehicleDataResponse.h b/SmartDeviceLink/SDLGetVehicleDataResponse.h
index 78801ae55..e0fac466b 100644
--- a/SmartDeviceLink/SDLGetVehicleDataResponse.h
+++ b/SmartDeviceLink/SDLGetVehicleDataResponse.h
@@ -186,6 +186,26 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID;
+/**
+ Sets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @param vehicleDataState An object containing the OEM custom vehicle data item.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState;
+
+/**
+ Gets the OEM custom vehicle data item for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @return An OEM custom vehicle data object for the given vehicle data name.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGetVehicleDataResponse.m b/SmartDeviceLink/SDLGetVehicleDataResponse.m
index 2b47a92b3..c75290d6a 100644
--- a/SmartDeviceLink/SDLGetVehicleDataResponse.m
+++ b/SmartDeviceLink/SDLGetVehicleDataResponse.m
@@ -273,6 +273,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil];
}
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState {
+ [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName];
+}
+
+- (NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName {
+ return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGlobalProperty.h b/SmartDeviceLink/SDLGlobalProperty.h
index e719cd45c..9175288cb 100644
--- a/SmartDeviceLink/SDLGlobalProperty.h
+++ b/SmartDeviceLink/SDLGlobalProperty.h
@@ -45,3 +45,8 @@ extern SDLGlobalProperty const SDLGlobalPropertyMenuIcon;
* Property related to the keyboard
*/
extern SDLGlobalProperty const SDLGlobalPropertyKeyboard;
+
+/**
+ * Location of the user's seat of setGlobalProperties
+ */
+extern SDLGlobalProperty const SDLGlobalPropertyUserLocation;
diff --git a/SmartDeviceLink/SDLGlobalProperty.m b/SmartDeviceLink/SDLGlobalProperty.m
index 00537847b..410af9179 100644
--- a/SmartDeviceLink/SDLGlobalProperty.m
+++ b/SmartDeviceLink/SDLGlobalProperty.m
@@ -11,3 +11,4 @@ SDLGlobalProperty const SDLGlobalPropertyVoiceRecognitionHelpItems = @"VRHELPITE
SDLGlobalProperty const SDLGlobalPropertyMenuName = @"MENUNAME";
SDLGlobalProperty const SDLGlobalPropertyMenuIcon = @"MENUICON";
SDLGlobalProperty const SDLGlobalPropertyKeyboard = @"KEYBOARDPROPERTIES";
+SDLGlobalProperty const SDLGlobalPropertyUserLocation = @"USER_LOCATION";
diff --git a/SmartDeviceLink/SDLGrid.h b/SmartDeviceLink/SDLGrid.h
new file mode 100644
index 000000000..64ad01e2f
--- /dev/null
+++ b/SmartDeviceLink/SDLGrid.h
@@ -0,0 +1,56 @@
+//
+// SDLGrid.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/10/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCMessage.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Describes a location (origin coordinates and span) of a vehicle component.
+ */
+@interface SDLGrid : SDLRPCStruct
+
+/**
+ *
+ * Required, Integer, -1 - 100
+ */
+@property (strong, nonatomic) NSNumber<SDLInt> *col;
+
+/**
+ *
+ * Required, Integer, -1 - 100
+ */
+@property (strong, nonatomic) NSNumber<SDLInt> *row;
+
+/**
+ *
+ * Optional, Integer, -1 - 100
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLInt> *level;
+
+/**
+ *
+ * Optional, Integer, 1 - 100
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLInt> *colspan;
+
+/**
+ *
+ * Optional, Integer, 1 - 100
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLInt> *rowspan;
+
+/**
+ *
+ * Optional, Integer, 1 - 100
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLInt> *levelspan;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLGrid.m b/SmartDeviceLink/SDLGrid.m
new file mode 100644
index 000000000..f0e5d333d
--- /dev/null
+++ b/SmartDeviceLink/SDLGrid.m
@@ -0,0 +1,70 @@
+//
+// SDLGrid.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/10/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLGrid.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+
+@implementation SDLGrid
+
+- (void)setCol:(NSNumber<SDLInt> *)col {
+ [self.store sdl_setObject:col forName:SDLRPCParameterNameCol];
+}
+
+- (NSNumber<SDLInt> *)col {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameCol ofClass:NSNumber.class error:&error];
+}
+
+- (void)setRow:(NSNumber<SDLInt> *)row {
+ [self.store sdl_setObject:row forName:SDLRPCParameterNameRow];
+}
+
+- (NSNumber<SDLInt> *)row {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameRow ofClass:NSNumber.class error:&error];
+}
+
+- (void)setLevel:(nullable NSNumber<SDLInt> *)level {
+ [self.store sdl_setObject:level forName:SDLRPCParameterNameLevel];
+}
+
+- (nullable NSNumber<SDLInt> *)level {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameLevel ofClass:NSNumber.class error:&error];
+}
+
+- (void)setColspan:(nullable NSNumber<SDLInt> *)colspan {
+ [self.store sdl_setObject:colspan forName:SDLRPCParameterNameColSpan];
+}
+
+- (nullable NSNumber<SDLInt> *)colspan {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameColSpan ofClass:NSNumber.class error:&error];
+}
+
+- (void)setRowspan:(nullable NSNumber<SDLInt> *)rowspan {
+ [self.store sdl_setObject:rowspan forName:SDLRPCParameterNameRowSpan];
+}
+
+- (nullable NSNumber<SDLInt> *)rowspan {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameRowSpan ofClass:NSNumber.class error:&error];
+}
+
+- (void)setLevelspan:(nullable NSNumber<SDLInt> *)levelspan {
+ [self.store sdl_setObject:levelspan forName:SDLRPCParameterNameLevelSpan];
+}
+
+- (nullable NSNumber<SDLInt> *)levelspan {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameLevelSpan ofClass:NSNumber.class error:&error];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLHMISettingsControlCapabilities.h b/SmartDeviceLink/SDLHMISettingsControlCapabilities.h
index da7d04310..4f0f0cf45 100644
--- a/SmartDeviceLink/SDLHMISettingsControlCapabilities.h
+++ b/SmartDeviceLink/SDLHMISettingsControlCapabilities.h
@@ -2,6 +2,7 @@
//
#import "SDLRPCMessage.h"
+#import "SDLModuleInfo.h"
NS_ASSUME_NONNULL_BEGIN
@@ -14,7 +15,17 @@ NS_ASSUME_NONNULL_BEGIN
@return An instance of the SDLHMISettingsControlCapabilities class
*/
-- (instancetype)initWithModuleName:(NSString *)moduleName;
+- (instancetype)initWithModuleName:(NSString *)moduleName __deprecated_msg("Use initWithModuleName:moduleInfo:");
+
+/**
+ Constructs a newly allocated SDLHMISettingsControlCapabilities object with moduleName
+
+ @param moduleName The short friendly name of the hmi setting module
+ @param moduleInfo Information about a RC module, including its id.
+
+ @return An instance of the SDLHMISettingsControlCapabilities class
+ */
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo;
/**
Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters
@@ -26,7 +37,20 @@ NS_ASSUME_NONNULL_BEGIN
@return An instance of the SDLHMISettingsControlCapabilities class
*/
-- (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable;
+- (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable __deprecated_msg("Use initWithModuleName:moduleInfo:distanceUnitAvailable:distanceUnitAvailable:temperatureUnitAvailable:displayModeUnitAvailable:");
+
+/**
+ Constructs a newly allocated SDLHMISettingsControlCapabilities object with given parameters
+
+ @param moduleName The short friendly name of the hmi setting module.
+ @param moduleInfo Information about a RC module, including its id.
+ @param distanceUnitAvailable Availability of the control of distance unit.
+ @param temperatureUnitAvailable Availability of the control of temperature unit.
+ @param displayModeUnitAvailable Availability of the control of displayMode unit.
+
+ @return An instance of the SDLHMISettingsControlCapabilities class
+ */
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable;
/**
* @abstract The short friendly name of the hmi setting module.
@@ -57,6 +81,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLBool> *displayModeUnitAvailable;
+/**
+ * Information about a RC module, including its id.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLHMISettingsControlCapabilities.m b/SmartDeviceLink/SDLHMISettingsControlCapabilities.m
index 82eff7c81..d7dab5f6f 100644
--- a/SmartDeviceLink/SDLHMISettingsControlCapabilities.m
+++ b/SmartDeviceLink/SDLHMISettingsControlCapabilities.m
@@ -19,6 +19,17 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ self = [self init];
+ if(!self) {
+ return nil;
+ }
+ self.moduleName = moduleName;
+ self.moduleInfo = moduleInfo;
+
+ return self;
+}
+
- (instancetype)initWithModuleName:(NSString *)moduleName distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable {
self = [self init];
if(!self) {
@@ -32,6 +43,20 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo distanceUnitAvailable:(BOOL)distanceUnitAvailable temperatureUnitAvailable:(BOOL)temperatureUnitAvailable displayModeUnitAvailable:(BOOL)displayModeUnitAvailable {
+ self = [self init];
+ if(!self) {
+ return nil;
+ }
+ self.moduleName = moduleName;
+ self.moduleInfo = moduleInfo;
+ self.distanceUnitAvailable = @(distanceUnitAvailable);
+ self.temperatureUnitAvailable = @(temperatureUnitAvailable);
+ self.displayModeUnitAvailable = @(displayModeUnitAvailable);
+
+ return self;
+}
+
- (void)setModuleName:(NSString *)moduleName {
[self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName];
}
@@ -66,6 +91,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameDisplayModeUnitAvailable ofClass:NSNumber.class error:nil];
}
+- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
+}
+
+- (nullable SDLModuleInfo *)moduleInfo {
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m
index aef34d873..32d8068e5 100644
--- a/SmartDeviceLink/SDLLifecycleManager.m
+++ b/SmartDeviceLink/SDLLifecycleManager.m
@@ -40,6 +40,7 @@
#import "SDLOnHMIStatus.h"
#import "SDLOnHashChange.h"
#import "SDLPermissionManager.h"
+#import "SDLPredefinedWindows.h"
#import "SDLProtocol.h"
#import "SDLProxy.h"
#import "SDLRPCNotificationNotification.h"
@@ -537,10 +538,13 @@ NSString *const BackgroundTaskTransportName = @"com.sdl.transport.backgroundTask
- (void)sdl_sendAppIcon:(nullable SDLFile *)appIcon withCompletion:(void (^)(void))completion {
// If no app icon was set, just move on to ready
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
if (appIcon == nil || !self.registerResponse.displayCapabilities.graphicSupported.boolValue) {
completion();
return;
}
+#pragma clang diagnostic pop
[self.fileManager uploadFile:appIcon completionHandler:^(BOOL success, NSUInteger bytesAvailable, NSError *_Nullable error) {
// These errors could be recoverable (particularly "cannot overwrite"), so we'll still attempt to set the app icon
@@ -769,6 +773,11 @@ NSString *const BackgroundTaskTransportName = @"com.sdl.transport.backgroundTask
}
SDLOnHMIStatus *hmiStatusNotification = notification.notification;
+
+ if (hmiStatusNotification.windowID != nil && hmiStatusNotification.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
SDLHMILevel oldHMILevel = self.hmiLevel;
self.hmiLevel = hmiStatusNotification.hmiLevel;
diff --git a/SmartDeviceLink/SDLLightControlCapabilities.h b/SmartDeviceLink/SDLLightControlCapabilities.h
index 26e675cea..d50e14db9 100644
--- a/SmartDeviceLink/SDLLightControlCapabilities.h
+++ b/SmartDeviceLink/SDLLightControlCapabilities.h
@@ -2,6 +2,7 @@
//
#import "SDLRPCMessage.h"
+#import "SDLModuleInfo.h"
@class SDLLightCapabilities;
@@ -17,7 +18,18 @@ NS_ASSUME_NONNULL_BEGIN
@param supportedLights array of available LightCapabilities
@return An instance of the SDLLightControlCapabilities class
*/
-- (instancetype)initWithModuleName:(NSString *)moduleName supportedLights:(NSArray<SDLLightCapabilities *> *)supportedLights;
+- (instancetype)initWithModuleName:(NSString *)moduleName supportedLights:(NSArray<SDLLightCapabilities *> *)supportedLights __deprecated_msg("Use initWithModuleName:moduleInfo:supportedLights:");
+
+/**
+ Constructs a newly allocated SDLLightControlCapabilities object with given parameters
+
+
+ @param moduleName friendly name of the light control module
+ @param moduleInfo information about a RC module, including its id
+ @param supportedLights array of available LightCapabilities
+ @return An instance of the SDLLightControlCapabilities class
+ */
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo supportedLights:(NSArray<SDLLightCapabilities *> *)supportedLights;
/**
* @abstract The short friendly name of the light control module.
@@ -34,6 +46,12 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic) NSArray<SDLLightCapabilities *> *supportedLights;
+/**
+ * Information about a RC module, including its id.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;
@end
diff --git a/SmartDeviceLink/SDLLightControlCapabilities.m b/SmartDeviceLink/SDLLightControlCapabilities.m
index 88c38e437..4a899c2dd 100644
--- a/SmartDeviceLink/SDLLightControlCapabilities.m
+++ b/SmartDeviceLink/SDLLightControlCapabilities.m
@@ -22,6 +22,18 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo supportedLights:(NSArray<SDLLightCapabilities *> *)supportedLights {
+ self = [self init];
+ if(!self) {
+ return nil;
+ }
+ self.moduleName = moduleName;
+ self.moduleInfo = moduleInfo;
+ self.supportedLights = supportedLights;
+
+ return self;
+}
+
- (void)setModuleName:(NSString *)moduleName {
[self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName];
}
@@ -41,6 +53,13 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectsForName:SDLRPCParameterNameSupportedLights ofClass:SDLLightCapabilities.class error:&error];
}
+- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
+}
+
+- (nullable SDLModuleInfo *)moduleInfo {
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
+}
@end
diff --git a/SmartDeviceLink/SDLLockScreenConfiguration.h b/SmartDeviceLink/SDLLockScreenConfiguration.h
index ba0bd2d5a..317beabe4 100644
--- a/SmartDeviceLink/SDLLockScreenConfiguration.h
+++ b/SmartDeviceLink/SDLLockScreenConfiguration.h
@@ -11,9 +11,32 @@
NS_ASSUME_NONNULL_BEGIN
+/**
+ Describes when the lock screen should be shown.
+
+ - SDLLockScreenConfigurationModeNever: The lock screen should never be shown. This should almost always mean that you will build your own lock screen.
+ - SDLLockScreenConfigurationModeRequiredOnly: The lock screen should only be shown when it is required by the head unit.
+ - SDLLockScreenConfigurationModeOptionalOrRequired: The lock screen should be shown when required by the head unit or when the head unit says that its optional, but *not* in other cases, such as before the user has interacted with your app on the head unit.
+ - SDLLockScreenConfigurationModeAlways: The lock screen should always be shown after connection.
+ */
+typedef NS_ENUM(NSUInteger, SDLLockScreenConfigurationDisplayMode) {
+ SDLLockScreenConfigurationDisplayModeNever,
+ SDLLockScreenConfigurationDisplayModeRequiredOnly,
+ SDLLockScreenConfigurationDisplayModeOptionalOrRequired,
+ SDLLockScreenConfigurationDisplayModeAlways
+};
+
+/**
+ A configuration describing how the lock screen should be used by the internal SDL system for your application. This configuration is provided before SDL starts and will govern the entire SDL lifecycle of your application.
+ */
@interface SDLLockScreenConfiguration : NSObject <NSCopying>
/**
+ Describes when the lock screen will be displayed. Defaults to `SDLLockScreenConfigurationDisplayModeRequiredOnly`.
+ */
+@property (assign, nonatomic) SDLLockScreenConfigurationDisplayMode displayMode;
+
+/**
* Whether or not the lock screen should be shown in the "lock screen optional" state. Defaults to NO.
*
* In order for the "lock screen optional" state to occur, the following must be true:
@@ -21,8 +44,10 @@ NS_ASSUME_NONNULL_BEGIN
* 2. The driver is not distracted (i.e. the last `OnDriverDistraction` notification received was for a driver distraction state off).
* 3. The `hmiLevel` can not be `NONE`.
* 4. If the `hmiLevel` is currently `BACKGROUND` then the previous `hmiLevel` should have been `FULL` or `LIMITED` (i.e. the user should have interacted with app before it was backgrounded).
+
+ * Since this has been deprecated, setting this to true will set `displayMode` to `OptionalOrRequired` if `enableAutomaticLockScreen` is true, or will have no effect if it is false.
*/
-@property (assign, nonatomic) BOOL showInOptionalState;
+@property (assign, nonatomic) BOOL showInOptionalState __deprecated_msg("Use displayMode SDLLockScreenConfigurationDisplayModeOptionalOrRequired to replicate this being YES");
/**
If YES, then the lock screen can be dismissed with a downward swipe on compatible head units. Requires a connection of SDL 6.0+ and the head unit to enable the feature. Defaults to YES.
@@ -30,15 +55,16 @@ NS_ASSUME_NONNULL_BEGIN
@property (assign, nonatomic) BOOL enableDismissGesture;
/**
-* If YES, then the lockscreen will show the vehicle's logo if the vehicle has made it available. If NO, then the lockscreen will not show the vehicle logo.
- Defaults to YES.
+ If YES, then the lockscreen will show the vehicle's logo if the vehicle has made it available. If NO, then the lockscreen will not show the vehicle logo. Defaults to YES.
*/
@property (assign, nonatomic) BOOL showDeviceLogo;
/**
- * If YES, the lock screen should be managed by SDL and automatically engage when necessary. If NO, then the lock screen will never be engaged. Defaults to YES.
+ If YES, the lock screen should be managed by SDL and automatically engage when necessary. If NO, then the lock screen will never be engaged. Defaults to YES.
+
+ Since this has been deprecated, setting this to false will set `displayMode` to `Never`. Setting it back to true will set it to `RequiredOnly` if `showInOptionalState` is false, or `OptionalOrRequired` if it is true.
*/
-@property (assign, nonatomic, readonly) BOOL enableAutomaticLockScreen;
+@property (assign, nonatomic, readonly) BOOL enableAutomaticLockScreen __deprecated_msg("Use displayMode SDLLockScreenConfigurationDisplayModeNever to replicate this being NO");
/**
* The background color of the lock screen. This could be a branding color, or leave at the default for a dark blue-gray.
diff --git a/SmartDeviceLink/SDLLockScreenConfiguration.m b/SmartDeviceLink/SDLLockScreenConfiguration.m
index f2cf71f9f..47e4980de 100644
--- a/SmartDeviceLink/SDLLockScreenConfiguration.m
+++ b/SmartDeviceLink/SDLLockScreenConfiguration.m
@@ -11,23 +11,20 @@
NS_ASSUME_NONNULL_BEGIN
-@interface SDLLockScreenConfiguration ()
-
-@end
-
-
@implementation SDLLockScreenConfiguration
#pragma mark - Lifecycle
-- (instancetype)initWithAutoLockScreen:(BOOL)enableAutomatic enableInOptional:(BOOL)enableOptional enableDismissGesture:(BOOL)enableDismissGesture showDeviceLogo:(BOOL)showDeviceLogo backgroundColor:(UIColor *)backgroundColor appIcon:(nullable UIImage *)appIcon viewController:(nullable UIViewController *)customViewController {
+- (instancetype)initWithDisplayMode:(SDLLockScreenConfigurationDisplayMode)mode enableDismissGesture:(BOOL)enableDismissGesture showDeviceLogo:(BOOL)showDeviceLogo backgroundColor:(UIColor *)backgroundColor appIcon:(nullable UIImage *)appIcon viewController:(nullable UIViewController *)customViewController {
self = [super init];
if (!self) {
return nil;
}
- _enableAutomaticLockScreen = enableAutomatic;
- _showInOptionalState = enableOptional;
+ _displayMode = mode;
+ _enableAutomaticLockScreen = (mode == SDLLockScreenConfigurationDisplayModeNever) ? NO : YES;
+ _showInOptionalState = (mode == SDLLockScreenConfigurationDisplayModeOptionalOrRequired) ? NO : YES;
+
_enableDismissGesture = enableDismissGesture;
_backgroundColor = backgroundColor;
_appIcon = appIcon;
@@ -38,11 +35,11 @@ NS_ASSUME_NONNULL_BEGIN
}
+ (instancetype)disabledConfiguration {
- return [[self alloc] initWithAutoLockScreen:NO enableInOptional:NO enableDismissGesture:NO showDeviceLogo:NO backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil];
+ return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeNever enableDismissGesture:NO showDeviceLogo:YES backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil];
}
+ (instancetype)enabledConfiguration {
- return [[self alloc] initWithAutoLockScreen:YES enableInOptional:NO enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil];
+ return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self sdl_defaultBackgroundColor] appIcon:nil viewController:nil];
}
+ (instancetype)enabledConfigurationWithAppIcon:(UIImage *)lockScreenAppIcon backgroundColor:(nullable UIColor *)lockScreenBackgroundColor {
@@ -50,11 +47,11 @@ NS_ASSUME_NONNULL_BEGIN
lockScreenBackgroundColor = [self.class sdl_defaultBackgroundColor];
}
- return [[self alloc] initWithAutoLockScreen:YES enableInOptional:NO enableDismissGesture:YES showDeviceLogo:YES backgroundColor:lockScreenBackgroundColor appIcon:lockScreenAppIcon viewController:nil];
+ return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:lockScreenBackgroundColor appIcon:lockScreenAppIcon viewController:nil];
}
+ (instancetype)enabledConfigurationWithViewController:(UIViewController *)viewController {
- return [[self alloc] initWithAutoLockScreen:YES enableInOptional:NO enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self.class sdl_defaultBackgroundColor] appIcon:nil viewController:viewController];
+ return [[self alloc] initWithDisplayMode:SDLLockScreenConfigurationDisplayModeRequiredOnly enableDismissGesture:YES showDeviceLogo:YES backgroundColor:[self.class sdl_defaultBackgroundColor] appIcon:nil viewController:viewController];
}
@@ -65,10 +62,36 @@ NS_ASSUME_NONNULL_BEGIN
}
+#pragma mark - Setters / Getters
+
+- (void)setEnableAutomaticLockScreen:(BOOL)enableAutomaticLockScreen {
+ _enableAutomaticLockScreen = enableAutomaticLockScreen;
+
+ if (!_enableAutomaticLockScreen) {
+ _displayMode = SDLLockScreenConfigurationDisplayModeNever;
+ } else if (_showInOptionalState) {
+ _displayMode = SDLLockScreenConfigurationDisplayModeOptionalOrRequired;
+ } else {
+ _displayMode = SDLLockScreenConfigurationDisplayModeRequiredOnly;
+ }
+}
+
+- (void)setShowInOptionalState:(BOOL)showInOptionalState {
+ _showInOptionalState = showInOptionalState;
+
+ if (!_enableAutomaticLockScreen) {
+ _displayMode = SDLLockScreenConfigurationDisplayModeNever;
+ } else if (_showInOptionalState) {
+ _displayMode = SDLLockScreenConfigurationDisplayModeOptionalOrRequired;
+ } else {
+ _displayMode = SDLLockScreenConfigurationDisplayModeRequiredOnly;
+ }
+}
+
#pragma mark - NSCopying
- (id)copyWithZone:(nullable NSZone *)zone {
- SDLLockScreenConfiguration *new = [[SDLLockScreenConfiguration allocWithZone:zone] initWithAutoLockScreen:_enableAutomaticLockScreen enableInOptional:_showInOptionalState enableDismissGesture:_enableDismissGesture showDeviceLogo:_showDeviceLogo backgroundColor:_backgroundColor appIcon:_appIcon viewController:_customViewController];
+ SDLLockScreenConfiguration *new = [[SDLLockScreenConfiguration allocWithZone:zone] initWithDisplayMode:_displayMode enableDismissGesture:_enableDismissGesture showDeviceLogo:_showDeviceLogo backgroundColor:_backgroundColor appIcon:_appIcon viewController:_customViewController];
return new;
}
diff --git a/SmartDeviceLink/SDLLockScreenManager.m b/SmartDeviceLink/SDLLockScreenManager.m
index 3cea501b6..85b601ce0 100644
--- a/SmartDeviceLink/SDLLockScreenManager.m
+++ b/SmartDeviceLink/SDLLockScreenManager.m
@@ -67,7 +67,7 @@ NS_ASSUME_NONNULL_BEGIN
self.canPresent = NO;
// Create and initialize the lock screen controller depending on the configuration
- if (!self.config.enableAutomaticLockScreen) {
+ if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeNever) {
self.presenter.lockViewController = nil;
return;
} else if (self.config.customViewController != nil) {
@@ -152,14 +152,18 @@ NS_ASSUME_NONNULL_BEGIN
}
// Present the VC depending on the lock screen status
- if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusRequired]) {
+ if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeAlways) {
+ if (!self.presenter.presented && self.canPresent) {
+ [self.presenter present];
+ }
+ } else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusRequired]) {
if (!self.presenter.presented && self.canPresent && !self.lockScreenDismissedByUser) {
[self.presenter present];
}
} else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOptional]) {
- if (self.config.showInOptionalState && !self.presenter.presented && self.canPresent && !self.lockScreenDismissedByUser) {
+ if (self.config.displayMode == SDLLockScreenConfigurationDisplayModeOptionalOrRequired && !self.presenter.presented && self.canPresent && !self.lockScreenDismissedByUser) {
[self.presenter present];
- } else if (!self.config.showInOptionalState && self.presenter.presented) {
+ } else if (self.config.displayMode != SDLLockScreenConfigurationDisplayModeOptionalOrRequired && self.presenter.presented) {
[self.presenter dismiss];
}
} else if ([self.lastLockNotification.lockScreenStatus isEqualToEnum:SDLLockScreenStatusOff]) {
diff --git a/SmartDeviceLink/SDLMenuManager.m b/SmartDeviceLink/SDLMenuManager.m
index 1ca796dcc..bbe261d57 100644
--- a/SmartDeviceLink/SDLMenuManager.m
+++ b/SmartDeviceLink/SDLMenuManager.m
@@ -27,6 +27,7 @@
#import "SDLDynamicMenuUpdateAlgorithm.h"
#import "SDLOnCommand.h"
#import "SDLOnHMIStatus.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRegisterAppInterfaceResponse.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLRPCResponseNotification.h"
@@ -592,17 +593,19 @@ UInt32 const MenuCellIdMin = 1;
SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response;
if (!response.success.boolValue) { return; }
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
if (response.displayCapabilities == nil) {
SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break.");
return;
}
self.displayCapabilities = response.displayCapabilities;
+#pragma clang diagnostic pop
}
- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification {
SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response;
-
if (!response.success.boolValue) { return; }
if (response.displayCapabilities == nil) {
SDLLogE(@"SetDisplayLayout succeeded but didn't send a display capabilities. A lot of things will probably break.");
@@ -614,6 +617,11 @@ UInt32 const MenuCellIdMin = 1;
- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification {
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification;
+
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
SDLHMILevel oldHMILevel = self.currentHMILevel;
self.currentHMILevel = hmiStatus.hmiLevel;
diff --git a/SmartDeviceLink/SDLModuleData.h b/SmartDeviceLink/SDLModuleData.h
index cd652804c..3ed7bfd15 100644
--- a/SmartDeviceLink/SDLModuleData.h
+++ b/SmartDeviceLink/SDLModuleData.h
@@ -78,6 +78,13 @@ NS_ASSUME_NONNULL_BEGIN
@property (strong, nonatomic) SDLModuleType moduleType;
/**
+ Id of a module, published by System Capability.
+
+ Optional
+ */
+@property (nullable, strong, nonatomic) NSString *moduleId;
+
+/**
The radio control data
Optional
diff --git a/SmartDeviceLink/SDLModuleData.m b/SmartDeviceLink/SDLModuleData.m
index 09ae37864..9595deb4c 100644
--- a/SmartDeviceLink/SDLModuleData.m
+++ b/SmartDeviceLink/SDLModuleData.m
@@ -97,6 +97,15 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_enumForName:SDLRPCParameterNameModuleType error:&error];
}
+- (void)setModuleId:(nullable NSString *)moduleId {
+ [self.store sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId];
+}
+
+- (nullable NSString *)moduleId {
+ NSError *error = nil;
+ return [self.store sdl_enumForName:SDLRPCParameterNameModuleId error:&error];
+}
+
- (void)setRadioControlData:(nullable SDLRadioControlData *)radioControlData {
[self.store sdl_setObject:radioControlData forName:SDLRPCParameterNameRadioControlData];
}
diff --git a/SmartDeviceLink/SDLModuleInfo.h b/SmartDeviceLink/SDLModuleInfo.h
new file mode 100644
index 000000000..f8dabce60
--- /dev/null
+++ b/SmartDeviceLink/SDLModuleInfo.h
@@ -0,0 +1,50 @@
+//
+// SDLModuleInfo.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/8/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCMessage.h"
+#import "SDLGrid.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Contains information about a RC module.
+ */
+@interface SDLModuleInfo : SDLRPCStruct
+
+/**
+ * UUID of a module. "moduleId + moduleType" uniquely identify a module.
+ *
+ * Max string length 100 chars
+
+ Required
+ */
+@property (nullable, strong, nonatomic) NSString *moduleId;
+
+/**
+ * Location of a module.
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLGrid *location;
+
+/**
+ * Service area of a module.
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLGrid *serviceArea;
+
+/**
+ * Allow multiple users/apps to access the module or not
+ *
+ * Optional, Boolean
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLBool> *allowMultipleAccess;
+
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLModuleInfo.m b/SmartDeviceLink/SDLModuleInfo.m
new file mode 100644
index 000000000..46a95e697
--- /dev/null
+++ b/SmartDeviceLink/SDLModuleInfo.m
@@ -0,0 +1,52 @@
+//
+// SDLModuleInfo.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/8/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLModuleInfo.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+
+@implementation SDLModuleInfo
+
+- (void)setModuleId:(NSString *)moduleId {
+ [self.store sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId];
+}
+
+- (NSString *)moduleId {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error];
+}
+
+- (void)setLocation:(nullable SDLGrid *)location {
+ [self.store sdl_setObject:location forName:SDLRPCParameterNameLocation];
+}
+
+- (nullable SDLGrid *)location {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameLocation ofClass:SDLGrid.class error:&error];
+}
+
+- (void)setServiceArea:(nullable SDLGrid *)serviceArea {
+ [self.store sdl_setObject:serviceArea forName:SDLRPCParameterNameServiceArea];
+}
+
+- (nullable SDLGrid *)serviceArea {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameServiceArea ofClass:SDLGrid.class error:&error];
+}
+
+- (void)setAllowMultipleAccess:(nullable NSNumber<SDLBool> *)allowMultipleAccess {
+ [self.store sdl_setObject:allowMultipleAccess forName:SDLRPCParameterNameAllowMultipleAccess];
+}
+
+- (nullable NSNumber<SDLBool> *)allowMultipleAccess {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameAllowMultipleAccess ofClass:NSNumber.class error:&error];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLNotificationConstants.h b/SmartDeviceLink/SDLNotificationConstants.h
index 995923606..ac613208a 100644
--- a/SmartDeviceLink/SDLNotificationConstants.h
+++ b/SmartDeviceLink/SDLNotificationConstants.h
@@ -124,10 +124,12 @@ extern SDLNotificationName const SDLDidReceiveButtonPressResponse;
extern SDLNotificationName const SDLDidReceiveChangeRegistrationResponse;
extern SDLNotificationName const SDLDidReceiveCloseApplicationResponse;
extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse;
+extern SDLNotificationName const SDLDidReceiveCreateWindowResponse;
extern SDLNotificationName const SDLDidReceiveDeleteCommandResponse;
extern SDLNotificationName const SDLDidReceiveDeleteFileResponse;
extern SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetResponse;
extern SDLNotificationName const SDLDidReceiveDeleteSubmenuResponse;
+extern SDLNotificationName const SDLDidReceiveDeleteWindowResponse;
extern SDLNotificationName const SDLDidReceiveDiagnosticMessageResponse;
extern SDLNotificationName const SDLDidReceiveDialNumberResponse;
extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse;
@@ -138,6 +140,7 @@ extern SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse;
extern SDLNotificationName const SDLDidReceiveGetDTCsResponse;
extern SDLNotificationName const SDLDidReceiveGetFileResponse;
extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse;
+extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentResponse;
extern SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse;
extern SDLNotificationName const SDLDidReceiveGetVehicleDataResponse;
extern SDLNotificationName const SDLDidReceiveGetWaypointsResponse;
@@ -149,6 +152,7 @@ extern SDLNotificationName const SDLDidReceivePublishAppServiceResponse;
extern SDLNotificationName const SDLDidReceivePutFileResponse;
extern SDLNotificationName const SDLDidReceiveReadDIDResponse;
extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse;
+extern SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleResponse;
extern SDLNotificationName const SDLDidReceiveResetGlobalPropertiesResponse;
extern SDLNotificationName const SDLDidReceiveScrollableMessageResponse;
extern SDLNotificationName const SDLDidReceiveSendHapticDataResponse;
@@ -187,10 +191,12 @@ extern SDLNotificationName const SDLDidReceiveButtonPressRequest;
extern SDLNotificationName const SDLDidReceiveChangeRegistrationRequest;
extern SDLNotificationName const SDLDidReceiveCloseApplicationRequest;
extern SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest;
+extern SDLNotificationName const SDLDidReceiveCreateWindowRequest;
extern SDLNotificationName const SDLDidReceiveDeleteCommandRequest;
extern SDLNotificationName const SDLDidReceiveDeleteFileRequest;
extern SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest;
extern SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest;
+extern SDLNotificationName const SDLDidReceiveDeleteWindowRequest;
extern SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest;
extern SDLNotificationName const SDLDidReceiveDialNumberRequest;
extern SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest;
@@ -200,6 +206,7 @@ extern SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest;
extern SDLNotificationName const SDLDidReceiveGetDTCsRequest;
extern SDLNotificationName const SDLDidReceiveGetFileRequest;
extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest;
+extern SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentRequest;
extern SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest;
extern SDLNotificationName const SDLDidReceiveGetVehicleDataRequest;
extern SDLNotificationName const SDLDidReceiveGetWayPointsRequest;
@@ -211,6 +218,7 @@ extern SDLNotificationName const SDLDidReceivePublishAppServiceRequest;
extern SDLNotificationName const SDLDidReceivePutFileRequest;
extern SDLNotificationName const SDLDidReceiveReadDIDRequest;
extern SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest;
+extern SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleRequest;
extern SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest;
extern SDLNotificationName const SDLDidReceiveScrollableMessageRequest;
extern SDLNotificationName const SDLDidReceiveSendHapticDataRequest;
diff --git a/SmartDeviceLink/SDLNotificationConstants.m b/SmartDeviceLink/SDLNotificationConstants.m
index 7e0083a51..74888f8b3 100644
--- a/SmartDeviceLink/SDLNotificationConstants.m
+++ b/SmartDeviceLink/SDLNotificationConstants.m
@@ -32,10 +32,12 @@ SDLNotificationName const SDLDidReceiveButtonPressResponse = @"com.sdl.response.
SDLNotificationName const SDLDidReceiveChangeRegistrationResponse = @"com.sdl.response.changeRegistration";
SDLNotificationName const SDLDidReceiveCloseApplicationResponse = @"com.sdl.response.closeApplication";
SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetResponse = @"com.sdl.response.createInteractionChoiceSet";
+SDLNotificationName const SDLDidReceiveCreateWindowResponse = @"com.sdl.response.createWindow";
SDLNotificationName const SDLDidReceiveDeleteCommandResponse = @"com.sdl.response.deleteCommand";
SDLNotificationName const SDLDidReceiveDeleteFileResponse = @"com.sdl.response.deleteFile";
SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetResponse = @"com.sdl.response.deleteInteractionChoiceSet";
SDLNotificationName const SDLDidReceiveDeleteSubmenuResponse = @"com.sdl.response.deleteSubmenu";
+SDLNotificationName const SDLDidReceiveDeleteWindowResponse = @"com.sdl.response.deleteWindow";
SDLNotificationName const SDLDidReceiveDiagnosticMessageResponse = @"com.sdl.response.diagnosticMessage";
SDLNotificationName const SDLDidReceiveDialNumberResponse = @"com.sdl.response.dialNumber";
SDLNotificationName const SDLDidReceiveEncodedSyncPDataResponse = @"com.sdl.response.encodedSyncPData";
@@ -46,6 +48,7 @@ SDLNotificationName const SDLDidReceiveGetAppServiceDataResponse = @"com.sdl.res
SDLNotificationName const SDLDidReceiveGetDTCsResponse = @"com.sdl.response.getDTCs";
SDLNotificationName const SDLDidReceiveGetFileResponse = @"com.sdl.response.getFile";
SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataResponse = @"com.sdl.response.getInteriorVehicleData";
+SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentResponse = @"com.sdl.response.getInteriorVehicleDataConsent";
SDLNotificationName const SDLDidReceiveGetSystemCapabilitiesResponse = @"com.sdl.response.getSystemCapabilities";
SDLNotificationName const SDLDidReceiveGetVehicleDataResponse = @"com.sdl.response.getVehicleData";
SDLNotificationName const SDLDidReceiveGetWaypointsResponse = @"com.sdl.response.getWaypoints";
@@ -57,6 +60,7 @@ SDLNotificationName const SDLDidReceivePublishAppServiceResponse = @"com.sdl.res
SDLNotificationName const SDLDidReceivePutFileResponse = @"com.sdl.response.putFile";
SDLNotificationName const SDLDidReceiveReadDIDResponse = @"com.sdl.response.readDID";
SDLNotificationName const SDLDidReceiveRegisterAppInterfaceResponse = @"com.sdl.response.registerAppInterface";
+SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleResponse = @"com.sdl.response.releaseInteriorVehicleDataModule";
SDLNotificationName const SDLDidReceiveResetGlobalPropertiesResponse = @"com.sdl.response.resetGlobalProperties";
SDLNotificationName const SDLDidReceiveScrollableMessageResponse = @"com.sdl.response.scrollableMessage";
SDLNotificationName const SDLDidReceiveSendHapticDataResponse = @"com.sdl.response.sendHapticData";
@@ -91,11 +95,13 @@ SDLNotificationName const SDLDidReceiveAlertManeuverRequest = @"com.sdl.request.
SDLNotificationName const SDLDidReceiveButtonPressRequest = @"com.sdl.request.buttonPress";
SDLNotificationName const SDLDidReceiveChangeRegistrationRequest = @"com.sdl.request.changeRegistration";
SDLNotificationName const SDLDidReceiveCloseApplicationRequest = @"com.sdl.request.closeApplication";
+SDLNotificationName const SDLDidReceiveCreateWindowRequest = @"com.sdl.request.createWindow";
SDLNotificationName const SDLDidReceiveCreateInteractionChoiceSetRequest = @"com.sdl.request.createInteractionChoiceSet";
SDLNotificationName const SDLDidReceiveDeleteCommandRequest = @"com.sdl.request.deleteCommand";
SDLNotificationName const SDLDidReceiveDeleteFileRequest = @"com.sdl.request.deleteFile";
SDLNotificationName const SDLDidReceiveDeleteInteractionChoiceSetRequest = @"com.sdl.request.deleteInteractionChoiceSet";
SDLNotificationName const SDLDidReceiveDeleteSubMenuRequest = @"com.sdl.request.deleteSubMenu";
+SDLNotificationName const SDLDidReceiveDeleteWindowRequest = @"com.sdl.request.deleteWindow";
SDLNotificationName const SDLDidReceiveDiagnosticMessageRequest = @"com.sdl.request.diagnosticMessage";
SDLNotificationName const SDLDidReceiveDialNumberRequest = @"com.sdl.request.dialNumber";
SDLNotificationName const SDLDidReceiveEncodedSyncPDataRequest = @"com.sdl.request.encodedSyncPData";
@@ -105,6 +111,7 @@ SDLNotificationName const SDLDidReceiveGetCloudAppPropertiesRequest = @"com.sdl.
SDLNotificationName const SDLDidReceiveGetDTCsRequest = @"com.sdl.request.getDTCs";
SDLNotificationName const SDLDidReceiveGetFileRequest = @"com.sdl.request.getFile";
SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataRequest = @"com.sdl.request.getInteriorVehicleData";
+SDLNotificationName const SDLDidReceiveGetInteriorVehicleDataConsentRequest = @"com.sdl.request.getInteriorVehicleDataConsent";
SDLNotificationName const SDLDidReceiveGetSystemCapabilityRequest = @"com.sdl.request.getSystemCapability";
SDLNotificationName const SDLDidReceiveGetVehicleDataRequest = @"com.sdl.request.getVehicleData";
SDLNotificationName const SDLDidReceiveGetWayPointsRequest = @"com.sdl.request.getWayPoints";
@@ -116,6 +123,7 @@ SDLNotificationName const SDLDidReceivePublishAppServiceRequest = @"com.sdl.requ
SDLNotificationName const SDLDidReceivePutFileRequest = @"com.sdl.request.putFile";
SDLNotificationName const SDLDidReceiveReadDIDRequest = @"com.sdl.request.readDID";
SDLNotificationName const SDLDidReceiveRegisterAppInterfaceRequest = @"com.sdl.request.registerAppInterface";
+SDLNotificationName const SDLDidReceiveReleaseInteriorVehicleDataModuleRequest = @"com.sdl.request.releaseInteriorVehicleDataModule";
SDLNotificationName const SDLDidReceiveResetGlobalPropertiesRequest = @"com.sdl.request.resetGlobalProperties";
SDLNotificationName const SDLDidReceiveScrollableMessageRequest = @"com.sdl.request.scrollableMessage";
SDLNotificationName const SDLDidReceiveSendHapticDataRequest = @"com.sdl.request.sendHapticData";
@@ -179,10 +187,12 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveChangeRegistrationResponse,
SDLDidReceiveCloseApplicationResponse,
SDLDidReceiveCreateInteractionChoiceSetResponse,
+ SDLDidReceiveCreateWindowResponse,
SDLDidReceiveDeleteCommandResponse,
SDLDidReceiveDeleteFileResponse,
SDLDidReceiveDeleteInteractionChoiceSetResponse,
SDLDidReceiveDeleteSubmenuResponse,
+ SDLDidReceiveDeleteWindowResponse,
SDLDidReceiveDiagnosticMessageResponse,
SDLDidReceiveDialNumberResponse,
SDLDidReceiveEncodedSyncPDataResponse,
@@ -193,6 +203,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceiveGetDTCsResponse,
SDLDidReceiveGetFileResponse,
SDLDidReceiveGetInteriorVehicleDataResponse,
+ SDLDidReceiveGetInteriorVehicleDataConsentResponse,
SDLDidReceiveGetSystemCapabilitiesResponse,
SDLDidReceiveGetVehicleDataResponse,
SDLDidReceiveGetWaypointsResponse,
@@ -204,6 +215,7 @@ SDLNotificationName const SDLDidReceiveWaypointNotification = @"com.sdl.notifica
SDLDidReceivePutFileResponse,
SDLDidReceiveReadDIDResponse,
SDLDidReceiveRegisterAppInterfaceResponse,
+ SDLDidReceiveReleaseInteriorVehicleDataModuleResponse,
SDLDidReceiveResetGlobalPropertiesResponse,
SDLDidReceiveScrollableMessageResponse,
SDLDidReceiveSendHapticDataResponse,
diff --git a/SmartDeviceLink/SDLNotificationDispatcher.m b/SmartDeviceLink/SDLNotificationDispatcher.m
index c45aa658a..e6115d61c 100644
--- a/SmartDeviceLink/SDLNotificationDispatcher.m
+++ b/SmartDeviceLink/SDLNotificationDispatcher.m
@@ -127,6 +127,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveCreateInteractionChoiceSetResponse response:response];
}
+- (void)onCreateWindowResponse:(SDLCreateWindowResponse *)response {
+ [self postRPCResponseNotification:SDLDidReceiveCreateWindowResponse response:response];
+}
+
- (void)onDeleteCommandResponse:(SDLDeleteCommandResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveDeleteCommandResponse response:response];
}
@@ -143,6 +147,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveDeleteSubmenuResponse response:response];
}
+- (void)onDeleteWindowResponse:(SDLDeleteWindowResponse *)response {
+ [self postRPCResponseNotification:SDLDidReceiveDeleteWindowResponse response:response];
+}
+
- (void)onDiagnosticMessageResponse:(SDLDiagnosticMessageResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveDiagnosticMessageResponse response:response];
}
@@ -183,6 +191,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveGetInteriorVehicleDataResponse response:response];
}
+- (void)onGetInteriorVehicleDataConsentResponse:(SDLGetInteriorVehicleDataConsentResponse *)response {
+ [self postRPCResponseNotification:SDLDidReceiveGetInteriorVehicleDataConsentResponse response:response];
+}
+
- (void)onGetSystemCapabilityResponse:(SDLGetSystemCapabilityResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveGetSystemCapabilitiesResponse response:response];
}
@@ -227,6 +239,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCResponseNotification:SDLDidReceiveRegisterAppInterfaceResponse response:response];
}
+- (void)onReleaseInteriorVehicleDataModuleResponse:(SDLReleaseInteriorVehicleDataModuleResponse *)response {
+ [self postRPCResponseNotification:SDLDidReceiveReleaseInteriorVehicleDataModuleResponse response:response];
+}
+
- (void)onResetGlobalPropertiesResponse:(SDLResetGlobalPropertiesResponse *)response {
[self postRPCResponseNotification:SDLDidReceiveResetGlobalPropertiesResponse response:response];
}
@@ -361,6 +377,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCRequestNotification:SDLDidReceiveCreateInteractionChoiceSetRequest request:request];
}
+- (void)onCreateWindow:(SDLCreateWindow *)request {
+ [self postRPCRequestNotification:SDLDidReceiveCreateWindowRequest request:request];
+}
+
- (void)onDeleteCommand:(SDLDeleteCommand *)request {
[self postRPCRequestNotification:SDLDidReceiveDeleteCommandRequest request:request];
}
@@ -377,6 +397,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCRequestNotification:SDLDidReceiveDeleteSubMenuRequest request:request];
}
+- (void)onDeleteWindow:(SDLDeleteWindow *)request {
+ [self postRPCRequestNotification:SDLDidReceiveDeleteWindowRequest request:request];
+}
+
- (void)onDiagnosticMessage:(SDLDiagnosticMessage *)request {
[self postRPCRequestNotification:SDLDidReceiveDiagnosticMessageRequest request:request];
}
@@ -413,6 +437,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCRequestNotification:SDLDidReceiveGetInteriorVehicleDataRequest request:request];
}
+- (void)onGetInteriorVehicleDataConsent:(SDLGetInteriorVehicleDataConsent *)request {
+ [self postRPCRequestNotification:SDLDidReceiveGetInteriorVehicleDataConsentRequest request:request];
+}
+
- (void)onGetSystemCapability:(SDLGetSystemCapability *)request {
[self postRPCRequestNotification:SDLDidReceiveGetSystemCapabilityRequest request:request];
}
@@ -457,6 +485,10 @@ NS_ASSUME_NONNULL_BEGIN
[self postRPCRequestNotification:SDLDidReceiveRegisterAppInterfaceRequest request:request];
}
+- (void)onReleaseInteriorVehicleDataModule:(SDLReleaseInteriorVehicleDataModule *)request {
+ [self postRPCRequestNotification:SDLDidReceiveReleaseInteriorVehicleDataModuleRequest request:request];
+}
+
- (void)onResetGlobalProperties:(SDLResetGlobalProperties *)request {
[self postRPCRequestNotification:SDLDidReceiveResetGlobalPropertiesRequest request:request];
}
diff --git a/SmartDeviceLink/SDLOnHMIStatus.h b/SmartDeviceLink/SDLOnHMIStatus.h
index 069f7789d..232f85d96 100644
--- a/SmartDeviceLink/SDLOnHMIStatus.h
+++ b/SmartDeviceLink/SDLOnHMIStatus.h
@@ -44,6 +44,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic) SDLSystemContext systemContext;
+/**
+ This is the unique ID assigned to the window that this RPC is intended for. If this param is not included, it will be assumed that this request is specifically for the main window on the main display. @see PredefinedWindows enum.
+
+ @since SDL 6.0
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLUInt> *windowID;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLOnHMIStatus.m b/SmartDeviceLink/SDLOnHMIStatus.m
index aa6b93e66..f80b4b4fb 100644
--- a/SmartDeviceLink/SDLOnHMIStatus.m
+++ b/SmartDeviceLink/SDLOnHMIStatus.m
@@ -58,6 +58,15 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_enumForName:SDLRPCParameterNameSystemContext error:&error];
}
+- (void)setWindowID:(nullable NSNumber<SDLUInt> *)windowID {
+ [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId];
+}
+
+- (nullable NSNumber<SDLUInt> *)windowID {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLOnVehicleData.h b/SmartDeviceLink/SDLOnVehicleData.h
index 463245d30..6b9c45db4 100644
--- a/SmartDeviceLink/SDLOnVehicleData.h
+++ b/SmartDeviceLink/SDLOnVehicleData.h
@@ -186,6 +186,26 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSString *cloudAppVehicleID;
+/**
+ Sets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @param vehicleDataState An object containing the OEM custom vehicle data item.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState;
+
+/**
+ Gets the OEM custom vehicle data item for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @return An OEM custom vehicle data object for the given vehicle data name.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLOnVehicleData.m b/SmartDeviceLink/SDLOnVehicleData.m
index 6dc6b0aa5..502d669b7 100644
--- a/SmartDeviceLink/SDLOnVehicleData.m
+++ b/SmartDeviceLink/SDLOnVehicleData.m
@@ -272,6 +272,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSString.class error:nil];
}
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(NSObject *)vehicleDataState {
+ [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName];
+}
+
+- (NSObject *)getOEMCustomVehicleData:(NSString *)vehicleDataName {
+ return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSObject.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLPermissionManager.m b/SmartDeviceLink/SDLPermissionManager.m
index 92d003c8c..9cf6bf6d7 100644
--- a/SmartDeviceLink/SDLPermissionManager.m
+++ b/SmartDeviceLink/SDLPermissionManager.m
@@ -14,6 +14,7 @@
#import "SDLOnPermissionsChange.h"
#import "SDLPermissionFilter.h"
#import "SDLPermissionItem.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLStateMachine.h"
@@ -230,6 +231,10 @@ NS_ASSUME_NONNULL_BEGIN
SDLOnHMIStatus *hmiStatus = notification.notification;
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
SDLHMILevel oldHMILevel = [self.currentHMILevel copy];
self.currentHMILevel = hmiStatus.hmiLevel;
NSArray<SDLPermissionFilter *> *filters = [self.filters copy];
diff --git a/SmartDeviceLink/SDLPredefinedWindows.h b/SmartDeviceLink/SDLPredefinedWindows.h
new file mode 100644
index 000000000..2f6a031a9
--- /dev/null
+++ b/SmartDeviceLink/SDLPredefinedWindows.h
@@ -0,0 +1,15 @@
+//
+// SDLPredefinedWindows.h
+// SmartDeviceLink
+
+#import "SDLEnum.h"
+
+/**
+ Specifies which windows and IDs are predefined and pre-created on behalf of the app. The default window is always available and represents the app window on the main display. It's an equivalent to today's app window. For backward compatibility, this will ensure the app always has at least the default window on the main display. The app can choose to use this predefined enum element to specifically address app's main window or to duplicate window content. It is not possible to duplicate another window to the default window. The primary widget is a special widget, that can be associated with a service type, which is used by the HMI whenever a single widget needs to represent the whole app. The primary widget should be named as the app and can be pre-created by the HMI.
+
+ @since SDL 6.0
+ */
+typedef NS_ENUM(NSUInteger, SDLPredefinedWindows){
+ SDLPredefinedWindowsDefaultWindow = 0, //The default window is a main window pre-created on behalf of the app.
+ SDLPredefinedWindowsPrimaryWidget = 1 //The primary widget of the app.
+};
diff --git a/SmartDeviceLink/SDLProxyListener.h b/SmartDeviceLink/SDLProxyListener.h
index c95a64383..ebdbddeff 100644
--- a/SmartDeviceLink/SDLProxyListener.h
+++ b/SmartDeviceLink/SDLProxyListener.h
@@ -19,6 +19,8 @@
@class SDLCloseApplicationResponse;
@class SDLCreateInteractionChoiceSet;
@class SDLCreateInteractionChoiceSetResponse;
+@class SDLCreateWindow;
+@class SDLCreateWindowResponse;
@class SDLDeleteCommand;
@class SDLDeleteCommandResponse;
@class SDLDeleteFile;
@@ -27,6 +29,8 @@
@class SDLDeleteInteractionChoiceSetResponse;
@class SDLDeleteSubMenu;
@class SDLDeleteSubMenuResponse;
+@class SDLDeleteWindow;
+@class SDLDeleteWindowResponse;
@class SDLDiagnosticMessage;
@class SDLDiagnosticMessageResponse;
@class SDLDialNumber;
@@ -46,6 +50,8 @@
@class SDLGetFileResponse;
@class SDLGetInteriorVehicleData;
@class SDLGetInteriorVehicleDataResponse;
+@class SDLGetInteriorVehicleDataConsent;
+@class SDLGetInteriorVehicleDataConsentResponse;
@class SDLGetSystemCapability;
@class SDLGetSystemCapabilityResponse;
@class SDLGetVehicleData;
@@ -91,6 +97,8 @@
@class SDLReadDIDResponse;
@class SDLRegisterAppInterface;
@class SDLRegisterAppInterfaceResponse;
+@class SDLReleaseInteriorVehicleDataModule;
+@class SDLReleaseInteriorVehicleDataModuleResponse;
@class SDLResetGlobalProperties;
@class SDLResetGlobalPropertiesResponse;
@class SDLScrollableMessage;
@@ -232,6 +240,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onCreateInteractionChoiceSetResponse:(SDLCreateInteractionChoiceSetResponse *)response;
/**
+ * Called when a Create Window Response is received from Core
+ *
+ * @param response A SDLCreateWindowResponse object
+ */
+- (void)onCreateWindowResponse:(SDLCreateWindowResponse *)response;
+
+/**
* Called when a Delete Command Response is received from Core
*
* @param response A SDLDeleteCommandResponse object
@@ -260,6 +275,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onDeleteSubMenuResponse:(SDLDeleteSubMenuResponse *)response;
/**
+ * Called when a Delete Window Response is received from Core
+ *
+ * @param response A SDLDeleteWindowResponse object
+ */
+- (void)onDeleteWindowResponse:(SDLDeleteWindowResponse *)response;
+
+/**
* Called when a Diagnostic Message Response is received from Core
*
* @param response A SDLDiagnosticMessageResponse object
@@ -330,6 +352,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onGetInteriorVehicleDataResponse:(SDLGetInteriorVehicleDataResponse *)response;
/**
+ * Called when a Get Interior Vehicle Data Consent Response is received from Core
+ *
+ * @param response A SDLGetInteriorVehicleDataConsentResponse object
+ */
+- (void)onGetInteriorVehicleDataConsentResponse:(SDLGetInteriorVehicleDataConsentResponse *)response;
+
+/**
* Called when a Get System Capability Response is received from Core
*
* @param response A SDLGetSystemCapabilityResponse object
@@ -414,6 +443,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onRegisterAppInterfaceResponse:(SDLRegisterAppInterfaceResponse *)response;
/**
+ * Called when a Release Interior Vehicle Data Module Response is received from Core
+ *
+ * @param response A SDLReleaseInteriorVehicleDataModuleResponse object
+ */
+- (void)onReleaseInteriorVehicleDataModuleResponse:(SDLReleaseInteriorVehicleDataModuleResponse *)response;
+
+/**
* Called when a Reset Global Properties Response is received from Core
*
* @param response A SDLResetGlobalPropertiesResponse object
@@ -647,6 +683,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onCreateInteractionChoiceSet:(SDLCreateInteractionChoiceSet *)request;
/**
+ * Called when a `SDLCreateWindow` request is received from Core
+ *
+ * @param request A SDLCreateWindow object
+ */
+- (void)onCreateWindow:(SDLCreateWindow *)request;
+
+/**
* Called when a `DeleteCommand` request is received from Core
*
* @param request A SDLDeleteCommand object
@@ -675,6 +718,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onDeleteSubMenu:(SDLDeleteSubMenu *)request;
/**
+ * Called when a `SDLDeleteWindow` request is received from Core
+ *
+ * @param request A SDLDeleteWindow object
+ */
+- (void)onDeleteWindow:(SDLDeleteWindow *)request;
+
+/**
* Called when a `DiagnosticMessage` request is received from Core
*
* @param request A SDLDiagnosticMessage object
@@ -738,6 +788,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onGetInteriorVehicleData:(SDLGetInteriorVehicleData *)request;
/**
+ * Called when a `GetInteriorVehicleDataConsent` request is received from Core
+ *
+ * @param request A SDLGetInteriorVehicleDataConsent object
+ */
+- (void)onGetInteriorVehicleConsentData:(SDLGetInteriorVehicleDataConsent *)request;
+
+/**
* Called when a `GetSystemCapability` request is received from Core
*
* @param request A SDLGetSystemCapability object
@@ -815,6 +872,13 @@ NS_ASSUME_NONNULL_BEGIN
- (void)onRegisterAppInterface:(SDLRegisterAppInterface *)request;
/**
+ * Called when a `ReleaseInteriorVehicleDataModule` request is received from Core
+ *
+ * @param request A SDLReleaseInteriorVehicleDataModule object
+ */
+- (void)onReleaseInteriorVehicleDataModule:(SDLReleaseInteriorVehicleDataModule *)request;
+
+/**
* Called when a `ResetGlobalProperties` request is received from Core
*
* @param request A SDLResetGlobalProperties object
diff --git a/SmartDeviceLink/SDLRPCFunctionNames.h b/SmartDeviceLink/SDLRPCFunctionNames.h
index fa3cce56d..8cb138cf9 100644
--- a/SmartDeviceLink/SDLRPCFunctionNames.h
+++ b/SmartDeviceLink/SDLRPCFunctionNames.h
@@ -35,6 +35,7 @@ extern SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs;
extern SDLRPCFunctionName const SDLRPCFunctionNameGetFile;
extern SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties;
extern SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData;
+extern SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleDataConsent;
extern SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability;
extern SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData;
extern SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints;
@@ -68,6 +69,7 @@ extern SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction;
extern SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService;
extern SDLRPCFunctionName const SDLRPCFunctionNamePutFile;
extern SDLRPCFunctionName const SDLRPCFunctionNameReadDID;
+extern SDLRPCFunctionName const SDLRPCFunctionNameReleaseInteriorVehicleDataModule;
extern SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface;
extern SDLRPCFunctionName const SDLRPCFunctionNameReserved;
extern SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties;
@@ -96,5 +98,7 @@ extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton;
extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData;
extern SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints;
extern SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList;
+extern SDLRPCFunctionName const SDLRPCFunctionNameCreateWindow;
+extern SDLRPCFunctionName const SDLRPCFunctionNameDeleteWindow;
diff --git a/SmartDeviceLink/SDLRPCFunctionNames.m b/SmartDeviceLink/SDLRPCFunctionNames.m
index 4aceed985..5063716a8 100644
--- a/SmartDeviceLink/SDLRPCFunctionNames.m
+++ b/SmartDeviceLink/SDLRPCFunctionNames.m
@@ -30,6 +30,7 @@ SDLRPCFunctionName const SDLRPCFunctionNameGetDTCs = @"GetDTCs";
SDLRPCFunctionName const SDLRPCFunctionNameGetFile = @"GetFile";
SDLRPCFunctionName const SDLRPCFunctionNameGetCloudAppProperties = @"GetCloudAppProperties";
SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleData = @"GetInteriorVehicleData";
+SDLRPCFunctionName const SDLRPCFunctionNameGetInteriorVehicleDataConsent = @"GetInteriorVehicleDataConsent";
SDLRPCFunctionName const SDLRPCFunctionNameGetSystemCapability = @"GetSystemCapability";
SDLRPCFunctionName const SDLRPCFunctionNameGetVehicleData = @"GetVehicleData";
SDLRPCFunctionName const SDLRPCFunctionNameGetWayPoints = @"GetWayPoints";
@@ -63,6 +64,7 @@ SDLRPCFunctionName const SDLRPCFunctionNamePerformInteraction = @"PerformInterac
SDLRPCFunctionName const SDLRPCFunctionNamePublishAppService = @"PublishAppService";
SDLRPCFunctionName const SDLRPCFunctionNamePutFile = @"PutFile";
SDLRPCFunctionName const SDLRPCFunctionNameReadDID = @"ReadDID";
+SDLRPCFunctionName const SDLRPCFunctionNameReleaseInteriorVehicleDataModule = @"ReleaseInteriorVehicleDataModule";
SDLRPCFunctionName const SDLRPCFunctionNameRegisterAppInterface = @"RegisterAppInterface";
SDLRPCFunctionName const SDLRPCFunctionNameReserved = @"reserved";
SDLRPCFunctionName const SDLRPCFunctionNameResetGlobalProperties = @"ResetGlobalProperties";
@@ -91,3 +93,5 @@ SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeButton = @"UnsubscribeButt
SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeVehicleData = @"UnsubscribeVehicleData";
SDLRPCFunctionName const SDLRPCFunctionNameUnsubscribeWayPoints = @"UnsubscribeWayPoints";
SDLRPCFunctionName const SDLRPCFunctionNameUpdateTurnList = @"UpdateTurnList";
+SDLRPCFunctionName const SDLRPCFunctionNameCreateWindow = @"CreateWindow";
+SDLRPCFunctionName const SDLRPCFunctionNameDeleteWindow = @"DeleteWindow";
diff --git a/SmartDeviceLink/SDLRPCParameterNames.h b/SmartDeviceLink/SDLRPCParameterNames.h
index 6567fdcda..4d5fdf334 100644
--- a/SmartDeviceLink/SDLRPCParameterNames.h
+++ b/SmartDeviceLink/SDLRPCParameterNames.h
@@ -29,6 +29,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameAlignment;
extern SDLRPCParameterName const SDLRPCParameterNameAllocatedModules;
extern SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers;
extern SDLRPCParameterName const SDLRPCParameterNameAllowed;
+extern SDLRPCParameterName const SDLRPCParameterNameAllowMultipleAccess;
extern SDLRPCParameterName const SDLRPCParameterNameAltitude;
extern SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters;
extern SDLRPCParameterName const SDLRPCParameterNameAmbientLightSensorStatus;
@@ -48,6 +49,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameAppServiceRecord;
extern SDLRPCParameterName const SDLRPCParameterNameAppServices;
extern SDLRPCParameterName const SDLRPCParameterNameAppServicesCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameAppVersion;
+extern SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType;
extern SDLRPCParameterName const SDLRPCParameterNameAutoCompleteList;
extern SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameAudioControlData;
@@ -85,6 +87,9 @@ extern SDLRPCParameterName const SDLRPCParameterNameButtonEventMode;
extern SDLRPCParameterName const SDLRPCParameterNameButtonName;
extern SDLRPCParameterName const SDLRPCParameterNameButtonPressMode;
extern SDLRPCParameterName const SDLRPCParameterNameColor;
+extern SDLRPCParameterName const SDLRPCParameterNameCol;
+extern SDLRPCParameterName const SDLRPCParameterNameColSpan;
+extern SDLRPCParameterName const SDLRPCParameterNameColumns;
extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabled;
extern SDLRPCParameterName const SDLRPCParameterNameCoolingEnabledAvailable;
extern SDLRPCParameterName const SDLRPCParameterNameCoolingLevel;
@@ -122,6 +127,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameCurrentTemperature;
extern SDLRPCParameterName const SDLRPCParameterNameCushion;
extern SDLRPCParameterName const SDLRPCParameterNameCustomButtonId;
extern SDLRPCParameterName const SDLRPCParameterNameCustomPresets;
+extern SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType;
extern SDLRPCParameterName const SDLRPCParameterNameData;
extern SDLRPCParameterName const SDLRPCParameterNameDataResult;
extern SDLRPCParameterName const SDLRPCParameterNameDataType;
@@ -170,6 +176,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameDTCMask;
extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnable;
extern SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable;
extern SDLRPCParameterName const SDLRPCParameterNameDuration;
+extern SDLRPCParameterName const SDLRPCParameterNameDuplicateUpdatesFromWindowID;
extern SDLRPCParameterName const SDLRPCParameterNameE911Override;
extern SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus;
extern SDLRPCParameterName const SDLRPCParameterNameECallEventActive;
@@ -216,6 +223,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameGPS;
extern SDLRPCParameterName const SDLRPCParameterNameGraphic;
extern SDLRPCParameterName const SDLRPCParameterNameGraphicSupported;
extern SDLRPCParameterName const SDLRPCParameterNameGreen;
+extern SDLRPCParameterName const SDLRPCParameterNameGrid;
extern SDLRPCParameterName const SDLRPCParameterNameHandledRPCs;
extern SDLRPCParameterName const SDLRPCParameterNameHapticRectData;
extern SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported;
@@ -306,6 +314,9 @@ extern SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted;
extern SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted;
extern SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted;
extern SDLRPCParameterName const SDLRPCParameterNameLength;
+extern SDLRPCParameterName const SDLRPCParameterNameLevel;
+extern SDLRPCParameterName const SDLRPCParameterNameLevels;
+extern SDLRPCParameterName const SDLRPCParameterNameLevelSpan;
extern SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities;
extern SDLRPCParameterName const SDLRPCParameterNameLightControlData;
extern SDLRPCParameterName const SDLRPCParameterNameLightState;
@@ -347,6 +358,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameMaxBitrate;
extern SDLRPCParameterName const SDLRPCParameterNameMaxDuration;
extern SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount;
extern SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity;
+extern SDLRPCParameterName const SDLRPCParameterNameMaximumNumberOfWindows;
extern SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount;
extern SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount;
extern SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts;
@@ -381,6 +393,9 @@ extern SDLRPCParameterName const SDLRPCParameterNameMinuteForecast;
extern SDLRPCParameterName const SDLRPCParameterNameMinutes;
extern SDLRPCParameterName const SDLRPCParameterNameModel;
extern SDLRPCParameterName const SDLRPCParameterNameModuleData;
+extern SDLRPCParameterName const SDLRPCParameterNameModuleId;
+extern SDLRPCParameterName const SDLRPCParameterNameModuleIds;
+extern SDLRPCParameterName const SDLRPCParameterNameModuleInfo;
extern SDLRPCParameterName const SDLRPCParameterNameModuleName;
extern SDLRPCParameterName const SDLRPCParameterNameModuleType;
extern SDLRPCParameterName const SDLRPCParameterNameModelYear;
@@ -508,7 +523,9 @@ extern SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted;
extern SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted;
extern SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted;
extern SDLRPCParameterName const SDLRPCParameterNameRolloverEvent;
+extern SDLRPCParameterName const SDLRPCParameterNameRow;
extern SDLRPCParameterName const SDLRPCParameterNameRows;
+extern SDLRPCParameterName const SDLRPCParameterNameRowSpan;
extern SDLRPCParameterName const SDLRPCParameterNameRPCName;
extern SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion;
extern SDLRPCParameterName const SDLRPCParameterNameRPM;
@@ -521,6 +538,8 @@ extern SDLRPCParameterName const SDLRPCParameterNameSDLVersion;
extern SDLRPCParameterName const SDLRPCParameterNameSearchAddress;
extern SDLRPCParameterName const SDLRPCParameterNameSeatControlData;
extern SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities;
+extern SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability;
+extern SDLRPCParameterName const SDLRPCParameterNameSeats;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryColor;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic;
extern SDLRPCParameterName const SDLRPCParameterNameSecondaryImage;
@@ -529,6 +548,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameSecond;
extern SDLRPCParameterName const SDLRPCParameterNameSeconds;
extern SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled;
extern SDLRPCParameterName const SDLRPCParameterNameServiceActive;
+extern SDLRPCParameterName const SDLRPCParameterNameServiceArea;
extern SDLRPCParameterName const SDLRPCParameterNameServiceData;
extern SDLRPCParameterName const SDLRPCParameterNameServiceIcon;
extern SDLRPCParameterName const SDLRPCParameterNameServiceID;
@@ -601,12 +621,15 @@ extern SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh;
extern SDLRPCParameterName const SDLRPCParameterNameTemperatureLow;
extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit;
extern SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable;
+extern SDLRPCParameterName const SDLRPCParameterNameTemplate;
+extern SDLRPCParameterName const SDLRPCParameterNameTemplateConfiguration;
extern SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable;
extern SDLRPCParameterName const SDLRPCParameterNameTemplateTitle;
extern SDLRPCParameterName const SDLRPCParameterNameTertiaryText;
extern SDLRPCParameterName const SDLRPCParameterNameText;
extern SDLRPCParameterName const SDLRPCParameterNameTextFields;
extern SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable;
+extern SDLRPCParameterName const SDLRPCParameterNameTextSupported;
extern SDLRPCParameterName const SDLRPCParameterNameThoroughfare;
extern SDLRPCParameterName const SDLRPCParameterNameTime;
extern SDLRPCParameterName const SDLRPCParameterNameTimeIssued;
@@ -642,6 +665,7 @@ extern SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable;
extern SDLRPCParameterName const SDLRPCParameterNameURL;
extern SDLRPCParameterName const SDLRPCParameterNameURLUppercase;
extern SDLRPCParameterName const SDLRPCParameterNameUserDisallowed;
+extern SDLRPCParameterName const SDLRPCParameterNameUserLocation;
extern SDLRPCParameterName const SDLRPCParameterNameUserSelected;
extern SDLRPCParameterName const SDLRPCParameterNameUTCDay;
extern SDLRPCParameterName const SDLRPCParameterNameUTCHours;
@@ -683,6 +707,10 @@ extern SDLRPCParameterName const SDLRPCParameterNameWindBearing;
extern SDLRPCParameterName const SDLRPCParameterNameWindGust;
extern SDLRPCParameterName const SDLRPCParameterNameWindSpeed;
extern SDLRPCParameterName const SDLRPCParameterNameWiperStatus;
+extern SDLRPCParameterName const SDLRPCParameterNameWindowCapabilities;
+extern SDLRPCParameterName const SDLRPCParameterNameWindowId;
+extern SDLRPCParameterName const SDLRPCParameterNameWindowName;
+extern SDLRPCParameterName const SDLRPCParameterNameWindowTypeSupported;
extern SDLRPCParameterName const SDLRPCParameterNameX;
extern SDLRPCParameterName const SDLRPCParameterNameY;
extern SDLRPCParameterName const SDLRPCParameterNameYear;
diff --git a/SmartDeviceLink/SDLRPCParameterNames.m b/SmartDeviceLink/SDLRPCParameterNames.m
index bfe399743..4833dc3fc 100644
--- a/SmartDeviceLink/SDLRPCParameterNames.m
+++ b/SmartDeviceLink/SDLRPCParameterNames.m
@@ -26,6 +26,7 @@ SDLRPCParameterName const SDLRPCParameterNameAlertText3 = @"alertText3";
SDLRPCParameterName const SDLRPCParameterNameAlignment = @"alignment";
SDLRPCParameterName const SDLRPCParameterNameAllowAppConsumers = @"allowAppConsumers";
SDLRPCParameterName const SDLRPCParameterNameAllowed = @"allowed";
+SDLRPCParameterName const SDLRPCParameterNameAllowMultipleAccess = @"allowMultipleAccess";
SDLRPCParameterName const SDLRPCParameterNameAllocatedModules = @"allocatedModules";
SDLRPCParameterName const SDLRPCParameterNameAltitude = @"altitude";
SDLRPCParameterName const SDLRPCParameterNameAltitudeMeters = @"altitudeMeters";
@@ -48,6 +49,7 @@ SDLRPCParameterName const SDLRPCParameterNameAppDisplayName = @"appDisplayName";
SDLRPCParameterName const SDLRPCParameterNameAppVersion = @"appVersion";
SDLRPCParameterName const SDLRPCParameterNameAudioControlCapabilities = @"audioControlCapabilities";
SDLRPCParameterName const SDLRPCParameterNameAudioControlData = @"audioControlData";
+SDLRPCParameterName const SDLRPCParameterNameAssociatedServiceType = @"associatedServiceType";
SDLRPCParameterName const SDLRPCParameterNameAudioPassThruCapabilities = @"audioPassThruCapabilities";
SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText1 = @"audioPassThruDisplayText1";
SDLRPCParameterName const SDLRPCParameterNameAudioPassThruDisplayText2 = @"audioPassThruDisplayText2";
@@ -104,6 +106,9 @@ SDLRPCParameterName const SDLRPCParameterNameCloudCover = @"cloudCover";
SDLRPCParameterName const SDLRPCParameterNameClusterModes = @"clusterModes";
SDLRPCParameterName const SDLRPCParameterNameClusterModeStatus = @"clusterModeStatus";
SDLRPCParameterName const SDLRPCParameterNameColor = @"color";
+SDLRPCParameterName const SDLRPCParameterNameCol = @"col";
+SDLRPCParameterName const SDLRPCParameterNameColSpan = @"colspan";
+SDLRPCParameterName const SDLRPCParameterNameColumns = @"columns";
SDLRPCParameterName const SDLRPCParameterNameCommandIcon = @"cmdIcon";
SDLRPCParameterName const SDLRPCParameterNameCommandId = @"cmdID";
SDLRPCParameterName const SDLRPCParameterNameCompassDirection = @"compassDirection";
@@ -167,6 +172,7 @@ SDLRPCParameterName const SDLRPCParameterNameDTCMask = @"dtcMask";
SDLRPCParameterName const SDLRPCParameterNameDualModeEnable = @"dualModeEnable";
SDLRPCParameterName const SDLRPCParameterNameDualModeEnableAvailable = @"dualModeEnableAvailable";
SDLRPCParameterName const SDLRPCParameterNameDuration = @"duration";
+SDLRPCParameterName const SDLRPCParameterNameDuplicateUpdatesFromWindowID = @"duplicateUpdatesFromWindowID";
SDLRPCParameterName const SDLRPCParameterNameE911Override = @"e911Override";
SDLRPCParameterName const SDLRPCParameterNameECallConfirmationStatus = @"eCallConfirmationStatus";
SDLRPCParameterName const SDLRPCParameterNameECallEventActive = @"eCallEventActive";
@@ -213,6 +219,7 @@ SDLRPCParameterName const SDLRPCParameterNameGPS = @"gps";
SDLRPCParameterName const SDLRPCParameterNameGraphic = @"graphic";
SDLRPCParameterName const SDLRPCParameterNameGraphicSupported = @"graphicSupported";
SDLRPCParameterName const SDLRPCParameterNameGreen = @"green";
+SDLRPCParameterName const SDLRPCParameterNameGrid = @"grid";
SDLRPCParameterName const SDLRPCParameterNameHandledRPCs = @"handledRPCs";
SDLRPCParameterName const SDLRPCParameterNameHapticRectData = @"hapticRectData";
SDLRPCParameterName const SDLRPCParameterNameHapticSpatialDataSupported = @"hapticSpatialDataSupported";
@@ -304,6 +311,9 @@ SDLRPCParameterName const SDLRPCParameterNameLeftRearInflatableBelted = @"leftRe
SDLRPCParameterName const SDLRPCParameterNameLeftRow2BuckleBelted = @"leftRow2BuckleBelted";
SDLRPCParameterName const SDLRPCParameterNameLeftRow3BuckleBelted = @"leftRow3BuckleBelted";
SDLRPCParameterName const SDLRPCParameterNameLength = @"length";
+SDLRPCParameterName const SDLRPCParameterNameLevel = @"level";
+SDLRPCParameterName const SDLRPCParameterNameLevels = @"levels";
+SDLRPCParameterName const SDLRPCParameterNameLevelSpan = @"levelspan";
SDLRPCParameterName const SDLRPCParameterNameLightControlCapabilities = @"lightControlCapabilities";
SDLRPCParameterName const SDLRPCParameterNameLightControlData = @"lightControlData";
SDLRPCParameterName const SDLRPCParameterNameLightState = @"lightState";
@@ -340,6 +350,7 @@ SDLRPCParameterName const SDLRPCParameterNameMaxBitrate = @"maxBitrate";
SDLRPCParameterName const SDLRPCParameterNameMaxDuration = @"maxDuration";
SDLRPCParameterName const SDLRPCParameterNameMaxHourlyForecastAmount = @"maxHourlyForecastAmount";
SDLRPCParameterName const SDLRPCParameterNameMaximumChangeVelocity = @"maximumChangeVelocity";
+SDLRPCParameterName const SDLRPCParameterNameMaximumNumberOfWindows = @"maximumNumberOfWindows";
SDLRPCParameterName const SDLRPCParameterNameMaxMinutelyForecastAmount = @"maxMinutelyForecastAmount";
SDLRPCParameterName const SDLRPCParameterNameMaxMultidayForecastAmount = @"maxMultidayForecastAmount";
SDLRPCParameterName const SDLRPCParameterNameMaxNumberRFCOMMPorts = @"maxNumberRFCOMMPorts";
@@ -375,6 +386,9 @@ SDLRPCParameterName const SDLRPCParameterNameMinuteForecast = @"minuteForecast";
SDLRPCParameterName const SDLRPCParameterNameMinutes = @"minutes";
SDLRPCParameterName const SDLRPCParameterNameModel = @"model";
SDLRPCParameterName const SDLRPCParameterNameModuleData = @"moduleData";
+SDLRPCParameterName const SDLRPCParameterNameModuleId = @"moduleId";
+SDLRPCParameterName const SDLRPCParameterNameModuleIds = @"moduleIds";
+SDLRPCParameterName const SDLRPCParameterNameModuleInfo = @"moduleInfo";
SDLRPCParameterName const SDLRPCParameterNameModuleName = @"moduleName";
SDLRPCParameterName const SDLRPCParameterNameModuleType = @"moduleType";
SDLRPCParameterName const SDLRPCParameterNameModelYear = @"modelYear";
@@ -408,6 +422,7 @@ SDLRPCParameterName const SDLRPCParameterNameNumber = @"number";
SDLRPCParameterName const SDLRPCParameterNameNumberCustomPresetsAvailable = @"numCustomPresetsAvailable";
SDLRPCParameterName const SDLRPCParameterNameNumberTicks = @"numTicks";
SDLRPCParameterName const SDLRPCParameterNameOdometer = @"odometer";
+SDLRPCParameterName const SDLRPCParameterNameOEMCustomDataType = @"oemCustomDataType";
SDLRPCParameterName const SDLRPCParameterNameOffset = @"offset";
SDLRPCParameterName const SDLRPCParameterNameOnLockScreenStatus = @"OnLockScreenStatus";
SDLRPCParameterName const SDLRPCParameterNameOnScreenPresetsAvailable = @"onScreenPresetsAvailable";
@@ -503,7 +518,9 @@ SDLRPCParameterName const SDLRPCParameterNameRightRearInflatableBelted = @"right
SDLRPCParameterName const SDLRPCParameterNameRightRow2BuckleBelted = @"rightRow2BuckleBelted";
SDLRPCParameterName const SDLRPCParameterNameRightRow3BuckleBelted = @"rightRow3BuckleBelted";
SDLRPCParameterName const SDLRPCParameterNameRolloverEvent = @"rolloverEvent";
+SDLRPCParameterName const SDLRPCParameterNameRow = @"row";
SDLRPCParameterName const SDLRPCParameterNameRows = @"rows";
+SDLRPCParameterName const SDLRPCParameterNameRowSpan = @"rowspan";
SDLRPCParameterName const SDLRPCParameterNameRPCName = @"rpcName";
SDLRPCParameterName const SDLRPCParameterNameRPCSpecVersion = @"rpcSpecVersion";
SDLRPCParameterName const SDLRPCParameterNameRPM = @"rpm";
@@ -516,6 +533,8 @@ SDLRPCParameterName const SDLRPCParameterNameSDLVersion = @"sdlVersion";
SDLRPCParameterName const SDLRPCParameterNameSearchAddress = @"searchAddress";
SDLRPCParameterName const SDLRPCParameterNameSeatControlData = @"seatControlData";
SDLRPCParameterName const SDLRPCParameterNameSeatControlCapabilities = @"seatControlCapabilities";
+SDLRPCParameterName const SDLRPCParameterNameSeatLocationCapability = @"seatLocationCapability";
+SDLRPCParameterName const SDLRPCParameterNameSeats = @"seats";
SDLRPCParameterName const SDLRPCParameterNameSecondaryGraphic = @"secondaryGraphic";
SDLRPCParameterName const SDLRPCParameterNameSecondaryImage = @"secondaryImage";
SDLRPCParameterName const SDLRPCParameterNameSecondaryText = @"secondaryText";
@@ -523,6 +542,7 @@ SDLRPCParameterName const SDLRPCParameterNameSecond = @"second";
SDLRPCParameterName const SDLRPCParameterNameSeconds = @"seconds";
SDLRPCParameterName const SDLRPCParameterNameSendLocationEnabled = @"sendLocationEnabled";
SDLRPCParameterName const SDLRPCParameterNameServiceActive = @"serviceActive";
+SDLRPCParameterName const SDLRPCParameterNameServiceArea = @"serviceArea";
SDLRPCParameterName const SDLRPCParameterNameServiceData = @"serviceData";
SDLRPCParameterName const SDLRPCParameterNameServiceIcon = @"serviceIcon";
SDLRPCParameterName const SDLRPCParameterNameServiceID = @"serviceID";
@@ -595,6 +615,8 @@ SDLRPCParameterName const SDLRPCParameterNameTargetId = @"targetID";
SDLRPCParameterName const SDLRPCParameterNameTemperatureHigh = @"temperatureHigh";
SDLRPCParameterName const SDLRPCParameterNameTemperatureLow = @"temperatureLow";
SDLRPCParameterName const SDLRPCParameterNameTemperatureUnit = @"temperatureUnit";
+SDLRPCParameterName const SDLRPCParameterNameTemplate = @"template";
+SDLRPCParameterName const SDLRPCParameterNameTemplateConfiguration = @"templateConfiguration";
SDLRPCParameterName const SDLRPCParameterNameTemperatureUnitAvailable = @"temperatureUnitAvailable";
SDLRPCParameterName const SDLRPCParameterNameTemplatesAvailable = @"templatesAvailable";
SDLRPCParameterName const SDLRPCParameterNameTemplateTitle = @"templateTitle";
@@ -602,6 +624,7 @@ SDLRPCParameterName const SDLRPCParameterNameTertiaryText = @"tertiaryText";
SDLRPCParameterName const SDLRPCParameterNameText = @"text";
SDLRPCParameterName const SDLRPCParameterNameTextFields = @"textFields";
SDLRPCParameterName const SDLRPCParameterNameTextMessageAvailable = @"textMsgAvailable";
+SDLRPCParameterName const SDLRPCParameterNameTextSupported = @"textSupported";
SDLRPCParameterName const SDLRPCParameterNameThoroughfare = @"thoroughfare";
SDLRPCParameterName const SDLRPCParameterNameTimeIssued = @"timeIssued";
SDLRPCParameterName const SDLRPCParameterNameTime = @"time";
@@ -637,6 +660,7 @@ SDLRPCParameterName const SDLRPCParameterNameUpDownAvailable = @"upDownAvailable
SDLRPCParameterName const SDLRPCParameterNameURL = @"url";
SDLRPCParameterName const SDLRPCParameterNameURLUppercase = @"URL";
SDLRPCParameterName const SDLRPCParameterNameUserDisallowed = @"userDisallowed";
+SDLRPCParameterName const SDLRPCParameterNameUserLocation = @"userLocation";
SDLRPCParameterName const SDLRPCParameterNameUserSelected = @"userSelected";
SDLRPCParameterName const SDLRPCParameterNameUTCDay = @"utcDay";
SDLRPCParameterName const SDLRPCParameterNameUTCHours = @"utcHours";
@@ -678,6 +702,10 @@ SDLRPCParameterName const SDLRPCParameterNameWindBearing = @"windBearing";
SDLRPCParameterName const SDLRPCParameterNameWindGust = @"windGust";
SDLRPCParameterName const SDLRPCParameterNameWindSpeed = @"windSpeed";
SDLRPCParameterName const SDLRPCParameterNameWiperStatus = @"wiperStatus";
+SDLRPCParameterName const SDLRPCParameterNameWindowCapabilities = @"windowCapabilities";
+SDLRPCParameterName const SDLRPCParameterNameWindowId = @"windowID";
+SDLRPCParameterName const SDLRPCParameterNameWindowName = @"windowName";
+SDLRPCParameterName const SDLRPCParameterNameWindowTypeSupported = @"windowTypeSupported";
SDLRPCParameterName const SDLRPCParameterNameX = @"x";
SDLRPCParameterName const SDLRPCParameterNameY = @"y";
SDLRPCParameterName const SDLRPCParameterNameYear = @"year";
diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.h b/SmartDeviceLink/SDLRadioControlCapabilities.h
index 2552e406f..0c35df16f 100644
--- a/SmartDeviceLink/SDLRadioControlCapabilities.h
+++ b/SmartDeviceLink/SDLRadioControlCapabilities.h
@@ -3,6 +3,7 @@
//
#import "SDLRPCMessage.h"
+#import "SDLModuleInfo.h"
NS_ASSUME_NONNULL_BEGIN
@@ -37,7 +38,7 @@ NS_ASSUME_NONNULL_BEGIN
@param radioFrequencyAvailable Availability of the control of radio frequency.
@param hdChannelAvailable Availability of the control of HD radio channel.
@param rdsDataAvailable Availability of the getting Radio Data System (RDS) data.
- @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes.
+ @param availableHDsAvailable Availability of the getting the number of available HD channels.
@param stateAvailable Availability of the getting the Radio state.
@param signalStrengthAvailable Availability of the getting the signal strength.
@param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold.
@@ -46,18 +47,39 @@ NS_ASSUME_NONNULL_BEGIN
@param sisDataAvailable Availability of sis data.
@return An instance of the SDLRadioControlCapabilities class
*/
-- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable;
+- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead"));
/**
Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.
+
+ @param moduleName The short friendly name of the radio control module.
+ @param radioEnableAvailable Availability of the control of enable/disable radio.
+ @param radioBandAvailable Availability of the control of radio band.
+ @param radioFrequencyAvailable Availability of the control of radio frequency.
+ @param hdChannelAvailable Availability of the control of HD radio channel.
+ @param rdsDataAvailable Availability of the getting Radio Data System (RDS) data.
+ @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes.
+ @param stateAvailable Availability of the getting the Radio state.
+ @param signalStrengthAvailable Availability of the getting the signal strength.
+ @param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold.
+ @param hdRadioEnableAvailable Availability of the control of enable/disable HD radio.
+ @param siriusXMRadioAvailable Availability of sirius XM radio.
+ @param sisDataAvailable Availability of sis data.
+ @return An instance of the SDLRadioControlCapabilities class
+ */
+- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:moduleInfo:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead"));
+/**
+ Constructs a newly allocated SDLRadioControlCapabilities object with given parameters.
+
@param moduleName The short friendly name of the radio control module.
+ @param moduleInfo Information about a RC module, including its id.
@param radioEnableAvailable Availability of the control of enable/disable radio.
@param radioBandAvailable Availability of the control of radio band.
@param radioFrequencyAvailable Availability of the control of radio frequency.
@param hdChannelAvailable Availability of the control of HD radio channel.
@param rdsDataAvailable Availability of the getting Radio Data System (RDS) data.
- @param availableHDsAvailable Availability of the getting the number of available HD channels.
+ @param availableHDChannelsAvailable Availability of the list of available HD sub-channel indexes.
@param stateAvailable Availability of the getting the Radio state.
@param signalStrengthAvailable Availability of the getting the signal strength.
@param signalChangeThresholdAvailable Availability of the getting the signal Change Threshold.
@@ -66,7 +88,7 @@ NS_ASSUME_NONNULL_BEGIN
@param sisDataAvailable Availability of sis data.
@return An instance of the SDLRadioControlCapabilities class
*/
-- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable __deprecated_msg(("Use initWithModuleName:moduleName:radioEnableAvailable radioFrequencyAvailable:hdChannelAvailable:rdsDataAvailable:availableHDChannelsAvailable:stateAvailable:signalStrengthAvailable:signalChangeThresholdAvailable:hdRadioEnableAvailable:siriusXMRadioAvailable:sisDataAvailable: instead"));
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable;
/**
* The short friendly name of the radio control module.
@@ -191,6 +213,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLBool> *sisDataAvailable;
+/**
+ * Information about a RC module, including its id.
+ *
+ * SDLModuleInfo
+ */
+@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRadioControlCapabilities.m b/SmartDeviceLink/SDLRadioControlCapabilities.m
index 7846ff267..921e2e651 100644
--- a/SmartDeviceLink/SDLRadioControlCapabilities.m
+++ b/SmartDeviceLink/SDLRadioControlCapabilities.m
@@ -14,6 +14,29 @@ NS_ASSUME_NONNULL_BEGIN
return [self initWithModuleName:moduleName radioEnableAvailable:radioEnableAvailable radioBandAvailable:radioBandAvailable radioFrequencyAvailable:radioFrequencyAvailable hdChannelAvailable:hdChannelAvailable rdsDataAvailable:rdsDataAvailable availableHDsAvailable:availableHDsAvailable stateAvailable:stateAvailable signalStrengthAvailable:signalStrengthAvailable signalChangeThresholdAvailable:signalChangeThresholdAvailable hdRadioEnableAvailable:NO siriusXMRadioAvailable:NO sisDataAvailable:NO];
}
+- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable {
+ self = [self init];
+ if(!self){
+ return nil;
+ }
+
+ self.moduleName = moduleName;
+ self.radioEnableAvailable = @(radioEnableAvailable);
+ self.radioBandAvailable = @(radioBandAvailable);
+ self.radioFrequencyAvailable = @(radioFrequencyAvailable);
+ self.hdChannelAvailable = @(hdChannelAvailable);
+ self.rdsDataAvailable = @(rdsDataAvailable);
+ self.availableHDsAvailable = @(availableHDsAvailable);
+ self.stateAvailable = @(stateAvailable);
+ self.signalStrengthAvailable = @(signalStrengthAvailable);
+ self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable);
+ self.hdRadioEnableAvailable = @(hdRadioEnableAvailable);
+ self.siriusXMRadioAvailable = @(siriusXMRadioAvailable);
+ self.sisDataAvailable = @(sisDataAvailable);
+
+ return self;
+}
+
- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable {
self = [self init];
if(!self){
@@ -37,26 +60,27 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
-- (instancetype)initWithModuleName:(NSString *)moduleName radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDsAvailable:(BOOL)availableHDsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable {
+- (instancetype)initWithModuleName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo radioEnableAvailable:(BOOL)radioEnableAvailable radioBandAvailable:(BOOL)radioBandAvailable radioFrequencyAvailable:(BOOL)radioFrequencyAvailable hdChannelAvailable:(BOOL)hdChannelAvailable rdsDataAvailable:(BOOL)rdsDataAvailable availableHDChannelsAvailable:(BOOL)availableHDChannelsAvailable stateAvailable:(BOOL)stateAvailable signalStrengthAvailable:(BOOL)signalStrengthAvailable signalChangeThresholdAvailable:(BOOL)signalChangeThresholdAvailable hdRadioEnableAvailable:(BOOL)hdRadioEnableAvailable siriusXMRadioAvailable:(BOOL)siriusXMRadioAvailable sisDataAvailable:(BOOL)sisDataAvailable {
self = [self init];
if(!self){
return nil;
}
-
+
self.moduleName = moduleName;
+ self.moduleInfo = moduleInfo;
self.radioEnableAvailable = @(radioEnableAvailable);
self.radioBandAvailable = @(radioBandAvailable);
self.radioFrequencyAvailable = @(radioFrequencyAvailable);
self.hdChannelAvailable = @(hdChannelAvailable);
self.rdsDataAvailable = @(rdsDataAvailable);
- self.availableHDsAvailable = @(availableHDsAvailable);
+ self.availableHDChannelsAvailable = @(availableHDChannelsAvailable);
self.stateAvailable = @(stateAvailable);
self.signalStrengthAvailable = @(signalStrengthAvailable);
self.signalChangeThresholdAvailable = @(signalChangeThresholdAvailable);
self.hdRadioEnableAvailable = @(hdRadioEnableAvailable);
self.siriusXMRadioAvailable = @(siriusXMRadioAvailable);
self.sisDataAvailable = @(sisDataAvailable);
-
+
return self;
}
@@ -173,6 +197,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameSISDataAvailable ofClass:NSNumber.class error:nil];
}
+- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
+}
+
+- (nullable SDLModuleInfo *)moduleInfo {
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h
index 331588fa6..2f18c4522 100644
--- a/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h
+++ b/SmartDeviceLink/SDLRegisterAppInterfaceResponse.h
@@ -73,7 +73,7 @@ NS_ASSUME_NONNULL_BEGIN
*
* @since SDL 1.0
*/
-@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities;
+@property (nullable, strong, nonatomic) SDLDisplayCapabilities *displayCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support.");
/**
* Contains information about the head unit button capabilities.
@@ -82,7 +82,7 @@ NS_ASSUME_NONNULL_BEGIN
*
* @since SDL 1.0
*/
-@property (nullable, strong, nonatomic) NSArray<SDLButtonCapabilities *> *buttonCapabilities;
+@property (nullable, strong, nonatomic) NSArray<SDLButtonCapabilities *> *buttonCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support.");
/**
* Contains information about the head unit soft button capabilities.
@@ -91,7 +91,7 @@ NS_ASSUME_NONNULL_BEGIN
*
* @since SDL 2.0
*/
-@property (nullable, strong, nonatomic) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;
+@property (nullable, strong, nonatomic) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support.");
/**
* If returned, the platform supports custom on-screen Presets
@@ -100,7 +100,7 @@ NS_ASSUME_NONNULL_BEGIN
*
* @since SDL 2.0
*/
-@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities;
+@property (nullable, strong, nonatomic) SDLPresetBankCapabilities *presetBankCapabilities __deprecated_msg("This parameter is deprecated and replaced by GetSystemCapability using DISPLAY. Deprecated in sdl_ios v6.4 / RPC spec 6.0. You can use the SystemCapabilityManager to have automatic full compatibility support.");
/**
* Contains information about the HMI zone capabilities.
diff --git a/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h
new file mode 100644
index 000000000..e8d946244
--- /dev/null
+++ b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.h
@@ -0,0 +1,34 @@
+//
+// SDLReleaseInteriorVehicleDataModule.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCRequest.h"
+#import "SDLModuleType.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLReleaseInteriorVehicleDataModule : SDLRPCRequest
+
+- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId;
+
+/**
+ * The module type that the app requests to control.
+ *
+ * Required
+ */
+@property (strong, nonatomic) SDLModuleType moduleType;
+
+/**
+ * Id of a module, published by System Capability.
+ *
+ * Optional
+ */
+@property (strong, nonatomic, nullable) NSString *moduleId;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m
new file mode 100644
index 000000000..b28247963
--- /dev/null
+++ b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModule.m
@@ -0,0 +1,56 @@
+//
+// SDLReleaseInteriorVehicleDataModule.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLReleaseInteriorVehicleDataModule.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+@implementation SDLReleaseInteriorVehicleDataModule
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameReleaseInteriorVehicleDataModule]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+- (instancetype)initWithModuleType:(SDLModuleType)moduleType moduleId:(NSString *)moduleId {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.moduleType = moduleType;
+ self.moduleId = moduleId;
+
+ return self;
+}
+
+- (void)setModuleType:(SDLModuleType)moduleType {
+ [self.parameters sdl_setObject:moduleType forName:SDLRPCParameterNameModuleType];
+}
+
+- (SDLModuleType)moduleType {
+ NSError *error = nil;
+ return [self.parameters sdl_enumForName:SDLRPCParameterNameModuleType error:&error];
+}
+
+- (void)setModuleId:(nullable NSString *)moduleId {
+ [self.parameters sdl_setObject:moduleId forName:SDLRPCParameterNameModuleId];
+}
+
+- (nullable NSString *)moduleId {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameModuleId ofClass:NSString.class error:&error];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h
new file mode 100644
index 000000000..650f4b107
--- /dev/null
+++ b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.h
@@ -0,0 +1,17 @@
+//
+// SDLReleaseInteriorVehicleDataModuleResponse.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCResponse.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@interface SDLReleaseInteriorVehicleDataModuleResponse : SDLRPCResponse
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m
new file mode 100644
index 000000000..9013d23c1
--- /dev/null
+++ b/SmartDeviceLink/SDLReleaseInteriorVehicleDataModuleResponse.m
@@ -0,0 +1,23 @@
+//
+// SDLReleaseInteriorVehicleDataModuleResponse.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/25/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLReleaseInteriorVehicleDataModuleResponse.h"
+#import "SDLRPCFunctionNames.h"
+
+@implementation SDLReleaseInteriorVehicleDataModuleResponse
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+- (instancetype)init {
+ if (self = [super initWithName:SDLRPCFunctionNameReleaseInteriorVehicleDataModule]) {
+ }
+ return self;
+}
+#pragma clang diagnostic pop
+
+@end
diff --git a/SmartDeviceLink/SDLSeatControlCapabilities.h b/SmartDeviceLink/SDLSeatControlCapabilities.h
index de166d34d..b54287086 100644
--- a/SmartDeviceLink/SDLSeatControlCapabilities.h
+++ b/SmartDeviceLink/SDLSeatControlCapabilities.h
@@ -3,6 +3,7 @@
#import "SDLRPCStruct.h"
+#import "SDLModuleInfo.h"
NS_ASSUME_NONNULL_BEGIN
@@ -11,10 +12,16 @@ NS_ASSUME_NONNULL_BEGIN
*/
@interface SDLSeatControlCapabilities : SDLRPCStruct
-- (instancetype)initWithName:(NSString *)moduleName;
+- (instancetype)initWithName:(NSString *)moduleName __deprecated_msg("Use initWithName:moduleInfo:");
+
+- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo;
- (instancetype)initWithName:(NSString *)moduleName heatingEnabledAvailable:(BOOL)heatingEnabledAvail
- coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail;
+ coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail __deprecated_msg("Use initWithName:moduleInfo:heatingEnabledAvailable:coolingEnabledAvailable:heatingLevelAvailable:coolingLevelAvailable:horizontalPositionAvailable:verticalPositionAvailable:frontVerticalPositionAvailable:backVerticalPositionAvailable:backTiltAngleAvailable:headSupportHorizontalPositionAvailable:headSupportVerticalPositionAvailable:massageEnabledAvailable:massageModeAvailable:massageCushionFirmnessAvailable:memoryAvailable:");
+
+- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo heatingEnabledAvailable:(BOOL)heatingEnabledAvail
+ coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail;
+
/**
* @abstract The short friendly name of the light control module.
* It should not be used to identify a module by mobile application.
@@ -128,6 +135,12 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) NSNumber<SDLBool> *memoryAvailable;
+/**
+ * @abstract Information about a RC module, including its id.
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLModuleInfo *moduleInfo;
@end
diff --git a/SmartDeviceLink/SDLSeatControlCapabilities.m b/SmartDeviceLink/SDLSeatControlCapabilities.m
index 7aa4c2b5d..248c87db0 100644
--- a/SmartDeviceLink/SDLSeatControlCapabilities.m
+++ b/SmartDeviceLink/SDLSeatControlCapabilities.m
@@ -16,6 +16,14 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ if (self = [super init]) {
+ self.moduleName = moduleName;
+ self.moduleInfo = moduleInfo;
+ }
+ return self;
+}
+
- (instancetype)initWithName:(NSString *)moduleName heatingEnabledAvailable:(BOOL)heatingEnabledAvail coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail {
self = [super init];
@@ -43,6 +51,35 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithName:(NSString *)moduleName moduleInfo:(nullable SDLModuleInfo *)moduleInfo heatingEnabledAvailable:(BOOL)heatingEnabledAvail
+ coolingEnabledAvailable:(BOOL)coolingEnabledAvail heatingLevelAvailable:(BOOL)heatingLevelAvail coolingLevelAvailable:(BOOL)coolingLevelAvail horizontalPositionAvailable:(BOOL)horizontalPositionAvail verticalPositionAvailable:(BOOL)verticalPositionAvail frontVerticalPositionAvailable:(BOOL)frontVerticalPositionAvail backVerticalPositionAvailable:(BOOL)backVerticalPositionAvail backTiltAngleAvailable:(BOOL)backTitlAngleAvail headSupportHorizontalPositionAvailable:(BOOL)headSupportHorizontalPositionAvail headSupportVerticalPositionAvailable:(BOOL)headSupportVerticalPositionAvail massageEnabledAvailable:(BOOL)massageEnabledAvail massageModeAvailable:(BOOL)massageModeAvail massageCushionFirmnessAvailable:(BOOL)massageCushionFirmnessAvail memoryAvailable:(BOOL)memoryAvail {
+
+ self = [super init];
+ if (!self) {
+ return nil;
+ }
+
+ self.moduleName = moduleName;
+ self.moduleInfo = moduleInfo;
+ self.heatingEnabledAvailable = @(heatingEnabledAvail);
+ self.coolingEnabledAvailable = @(coolingEnabledAvail);
+ self.heatingLevelAvailable = @(heatingLevelAvail);
+ self.coolingLevelAvailable = @(coolingLevelAvail);
+ self.horizontalPositionAvailable = @(horizontalPositionAvail);
+ self.verticalPositionAvailable = @(verticalPositionAvail);
+ self.frontVerticalPositionAvailable = @(frontVerticalPositionAvail);
+ self.backVerticalPositionAvailable = @(backVerticalPositionAvail);
+ self.backTiltAngleAvailable = @(backTitlAngleAvail);
+ self.headSupportVerticalPositionAvailable = @(headSupportVerticalPositionAvail);
+ self.headSupportHorizontalPositionAvailable = @(headSupportHorizontalPositionAvail);
+ self.massageEnabledAvailable = @(massageEnabledAvail);
+ self.massageModeAvailable = @(massageModeAvail);
+ self.massageCushionFirmnessAvailable = @(massageCushionFirmnessAvail);
+ self.memoryAvailable = @(memoryAvail);
+
+ return self;
+}
+
- (void)setModuleName:(NSString *)moduleName {
[self.store sdl_setObject:moduleName forName:SDLRPCParameterNameModuleName];
}
@@ -199,6 +236,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameMemoryAvailable ofClass:NSNumber.class error:nil];
}
+- (void)setModuleInfo:(nullable SDLModuleInfo *)moduleInfo {
+ [self.store sdl_setObject:moduleInfo forName:SDLRPCParameterNameModuleInfo];
+}
+
+- (nullable SDLModuleInfo *)moduleInfo {
+ return [self.store sdl_objectForName:SDLRPCParameterNameModuleInfo ofClass:SDLModuleInfo.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSeatControlData.h b/SmartDeviceLink/SDLSeatControlData.h
index e08492d28..73cd8a6e0 100644
--- a/SmartDeviceLink/SDLSeatControlData.h
+++ b/SmartDeviceLink/SDLSeatControlData.h
@@ -23,7 +23,10 @@ NS_ASSUME_NONNULL_BEGIN
@param supportedSeat id of remote controllable seat.
@return An instance of the SDLSeatControlData class
*/
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat;
+#pragma clang diagnostic pop
/**
Constructs a newly allocated SDLSeatControlData object with cushion and firmness
@@ -46,14 +49,21 @@ NS_ASSUME_NONNULL_BEGIN
@param memoryAction type of action to be performed.
@return An instance of the SDLSeatControlData class
*/
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat heatingEnabled:(BOOL)heatingEnable coolingEnable:(BOOL)coolingEnable heatingLevel:(UInt8)heatingLevel coolingLevel:(UInt8)coolingLevel horizontalPostion:(UInt8)horizontal verticalPostion:(UInt8)vertical frontVerticalPostion:(UInt8)frontVertical backVerticalPostion:(UInt8)backVertical backTiltAngle:(UInt8)backAngle headSupportedHorizontalPostion:(UInt8)headSupportedHorizontal headSupportedVerticalPostion:(UInt8)headSupportedVertical massageEnabled:(BOOL)massageEnable massageMode:(NSArray<SDLMassageModeData *> *)massageMode massageCussionFirmness:(NSArray<SDLMassageCushionFirmness *> *)firmness memory:(SDLSeatMemoryAction *)memoryAction;
+#pragma clang diagnostic pop
/**
* @abstract id of seat that is a remote controllable seat.
+ * @warning This should not be used to identify a seat, this is a deprecated parameter.
*
* Required
*/
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@property (strong, nonatomic) SDLSupportedSeat id;
+#pragma clang diagnostic pop
/**
* @abstract Whether or not heating is enabled.
diff --git a/SmartDeviceLink/SDLSeatControlData.m b/SmartDeviceLink/SDLSeatControlData.m
index 7fbebb67b..6054cb908 100644
--- a/SmartDeviceLink/SDLSeatControlData.m
+++ b/SmartDeviceLink/SDLSeatControlData.m
@@ -13,7 +13,10 @@ NS_ASSUME_NONNULL_BEGIN
@implementation SDLSeatControlData
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat {
+#pragma clang diagnostic pop
self = [self init];
if (!self) {
return nil;
@@ -23,7 +26,10 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (instancetype)initWithId:(SDLSupportedSeat)supportedSeat heatingEnabled:(BOOL)heatingEnable coolingEnable:(BOOL)coolingEnabled heatingLevel:(UInt8)heatingLevel coolingLevel:(UInt8)coolingLevel horizontalPostion:(UInt8)horizontal verticalPostion:(UInt8)vertical frontVerticalPostion:(UInt8)frontVertical backVerticalPostion:(UInt8)backVertical backTiltAngle:(UInt8)backAngle headSupportedHorizontalPostion:(UInt8)headSupportedHorizontal headSupportedVerticalPostion:(UInt8)headSupportedVertical massageEnabled:(BOOL)massageEnable massageMode:(NSArray<SDLMassageModeData *> *)massageMode massageCussionFirmness:(NSArray<SDLMassageCushionFirmness *> *)firmness memory:(SDLSeatMemoryAction *)memoryAction {
+#pragma clang diagnostic pop
self = [super init];
if (!self) {
@@ -53,11 +59,17 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (void)setId:(SDLSupportedSeat)id {
+#pragma clang diagnostic pop
[self.store sdl_setObject:id forName:SDLRPCParameterNameId];
}
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
- (SDLSupportedSeat)id {
+#pragma clang diagnostic pop
NSError *error = nil;
return [self.store sdl_enumForName:SDLRPCParameterNameId error:&error];
}
diff --git a/SmartDeviceLink/SDLSeatLocation.h b/SmartDeviceLink/SDLSeatLocation.h
new file mode 100644
index 000000000..0c4d70597
--- /dev/null
+++ b/SmartDeviceLink/SDLSeatLocation.h
@@ -0,0 +1,26 @@
+//
+// SDLSeatLocation.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/11/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCMessage.h"
+#import "SDLGrid.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Describes the location of a seat
+ */
+@interface SDLSeatLocation : SDLRPCStruct
+
+/**
+ * Optional
+ */
+@property (strong, nonatomic, nullable) SDLGrid *grid;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSeatLocation.m b/SmartDeviceLink/SDLSeatLocation.m
new file mode 100644
index 000000000..82fc28940
--- /dev/null
+++ b/SmartDeviceLink/SDLSeatLocation.m
@@ -0,0 +1,25 @@
+//
+// SDLSeatLocation.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/11/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLSeatLocation.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+
+@implementation SDLSeatLocation
+
+- (void)setGrid:(nullable SDLGrid *)grid {
+ [self.store sdl_setObject:grid forName:SDLRPCParameterNameGrid];
+}
+
+- (nullable SDLGrid *)grid {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameGrid ofClass:SDLGrid.class error:&error];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLSeatLocationCapability.h b/SmartDeviceLink/SDLSeatLocationCapability.h
new file mode 100644
index 000000000..9f7d6a15f
--- /dev/null
+++ b/SmartDeviceLink/SDLSeatLocationCapability.h
@@ -0,0 +1,48 @@
+//
+// SDLSeatLocationCapability.h
+// SmartDeviceLink
+//
+// Created by standa1 on 7/11/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLRPCMessage.h"
+
+#import "SDLSeatLocation.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ * Contains information about the locations of each seat.
+ */
+@interface SDLSeatLocationCapability : SDLRPCStruct
+
+- (instancetype)initWithSeats:(NSArray<SDLSeatLocation *> *)seats cols:(NSNumber<SDLInt> *)cols rows:(NSNumber<SDLInt> *)rows levels:(NSNumber<SDLInt> *)levels;
+
+/**
+ *
+ * Optional, Integer, 1 - 100
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLInt> *cols;
+
+/**
+ *
+ * Optional, Integer, 1 - 100
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLInt> *rows;
+
+/**
+ *
+ * Optional, Integer, 1 - 100
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLInt> *levels;
+
+/**
+ * Contains a list of SeatLocation in the vehicle, the first element is the driver's seat
+ * Optional
+ */
+@property (strong, nonatomic, nullable) NSArray<SDLSeatLocation *> *seats;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSeatLocationCapability.m b/SmartDeviceLink/SDLSeatLocationCapability.m
new file mode 100644
index 000000000..f6c59e58c
--- /dev/null
+++ b/SmartDeviceLink/SDLSeatLocationCapability.m
@@ -0,0 +1,70 @@
+//
+// SDLSeatLocationCapability.m
+// SmartDeviceLink
+//
+// Created by standa1 on 7/11/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLSeatLocationCapability.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLSeatLocationCapability
+
+- (instancetype)initWithSeats:(NSArray<SDLSeatLocation *> *)seats cols:(NSNumber<SDLInt> *)cols rows:(NSNumber<SDLInt> *)rows levels:(NSNumber<SDLInt> *)levels {
+ self = [self init];
+ if (!self) {
+ return self;
+ }
+
+ self.seats = seats;
+ self.cols = cols;
+ self.rows = rows;
+ self.levels = levels;
+
+ return self;
+}
+
+- (void)setCols:(nullable NSNumber<SDLInt> *)cols {
+ [self.store sdl_setObject:cols forName:SDLRPCParameterNameColumns];
+}
+
+- (nullable NSNumber<SDLInt> *)cols {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameColumns ofClass:NSNumber.class error:&error];
+}
+
+- (void)setRows:(nullable NSNumber<SDLInt> *)rows {
+ [self.store sdl_setObject:rows forName:SDLRPCParameterNameRows];
+}
+
+- (nullable NSNumber<SDLInt> *)rows {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameRows ofClass:NSNumber.class error:&error];
+}
+
+- (void)setLevels:(nullable NSNumber<SDLInt> *)levels {
+ [self.store sdl_setObject:levels forName:SDLRPCParameterNameLevels];
+}
+
+- (nullable NSNumber<SDLInt> *)levels {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameLevels ofClass:NSNumber.class error:&error];
+}
+
+- (void)setSeats:(nullable NSArray<SDLSeatLocation *> *)seats {
+ [self.store sdl_setObject:seats forName:SDLRPCParameterNameSeats];
+}
+
+- (nullable NSArray<SDLSeatLocation *> *)seats {
+ NSError *error = nil;
+ return [self.store sdl_objectsForName:SDLRPCParameterNameSeats ofClass:SDLSeatLocation.class error:&error];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSetGlobalProperties.h b/SmartDeviceLink/SDLSetGlobalProperties.h
index 7b3370d9b..a0a947757 100644
--- a/SmartDeviceLink/SDLSetGlobalProperties.h
+++ b/SmartDeviceLink/SDLSetGlobalProperties.h
@@ -7,6 +7,7 @@
@class SDLKeyboardProperties;
@class SDLTTSChunk;
@class SDLVRHelpItem;
+@class SDLSeatLocation;
NS_ASSUME_NONNULL_BEGIN
@@ -104,6 +105,13 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic, nullable) SDLKeyboardProperties *keyboardProperties;
+/**
+ Location of the user's seat. Default is driver's seat location if it is not set yet
+
+ Optional
+ */
+@property (strong, nonatomic, nullable) SDLSeatLocation *userLocation;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSetGlobalProperties.m b/SmartDeviceLink/SDLSetGlobalProperties.m
index 69f06d5d5..6dc337505 100644
--- a/SmartDeviceLink/SDLSetGlobalProperties.m
+++ b/SmartDeviceLink/SDLSetGlobalProperties.m
@@ -11,6 +11,7 @@
#import "SDLRPCFunctionNames.h"
#import "SDLTTSChunk.h"
#import "SDLVrHelpItem.h"
+#import "SDLSeatLocation.h"
NS_ASSUME_NONNULL_BEGIN
@@ -106,6 +107,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameKeyboardProperties ofClass:SDLKeyboardProperties.class error:nil];
}
+- (void)setUserLocation:(nullable SDLSeatLocation *)userLocation {
+ [self.parameters sdl_setObject:userLocation forName:SDLRPCParameterNameUserLocation];
+}
+
+- (nullable SDLSeatLocation *)userLocation {
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameUserLocation ofClass:SDLSeatLocation.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLShow.h b/SmartDeviceLink/SDLShow.h
index e1e360912..18f95107d 100644
--- a/SmartDeviceLink/SDLShow.h
+++ b/SmartDeviceLink/SDLShow.h
@@ -9,6 +9,7 @@
@class SDLImage;
@class SDLSoftButton;
@class SDLMetadataTags;
+@class SDLTemplateConfiguration;
/**
@@ -246,6 +247,21 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic, nullable) SDLMetadataTags *metadataTags;
+
+/**
+ This is the unique ID assigned to the window that this RPC is intended. If this param is not included, it will be assumed that this request is specifically for the main window on the main display. @see PredefinedWindows enum.
+
+ @since SDL 6.0
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLUInt> *windowID;
+
+/**
+ Used to set an alternate template layout to a window.
+
+ @since SDL 6.0
+ */
+@property (strong, nonatomic, nullable) SDLTemplateConfiguration *templateConfiguration;
+
/**
The title of the current template.
diff --git a/SmartDeviceLink/SDLShow.m b/SmartDeviceLink/SDLShow.m
index a90949e4f..b1f490f1c 100644
--- a/SmartDeviceLink/SDLShow.m
+++ b/SmartDeviceLink/SDLShow.m
@@ -11,6 +11,7 @@
#import "SDLRPCParameterNames.h"
#import "SDLRPCFunctionNames.h"
#import "SDLSoftButton.h"
+#import "SDLTemplateConfiguration.h"
NS_ASSUME_NONNULL_BEGIN
@@ -204,6 +205,23 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameMetadataTags ofClass:SDLMetadataTags.class error:nil];
}
+- (void)setWindowID:(nullable NSNumber<SDLUInt> *)windowID {
+ [self.parameters sdl_setObject:windowID forName:SDLRPCParameterNameWindowId];
+}
+
+- (nullable NSNumber<SDLUInt> *)windowID {
+ NSError *error = nil;
+ return [self.parameters sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:&error];
+}
+
+- (void)setTemplateConfiguration:(nullable SDLTemplateConfiguration *)templateConfiguration {
+ [self.store sdl_setObject:templateConfiguration forName:SDLRPCParameterNameTemplateConfiguration];
+}
+
+- (nullable SDLTemplateConfiguration *)templateConfiguration {
+ return [self.store sdl_objectForName:SDLRPCParameterNameTemplateConfiguration ofClass:SDLTemplateConfiguration.class error:nil];
+}
+
- (void)setTemplateTitle:(nullable NSString *)templateTitle {
[self.parameters sdl_setObject:templateTitle forName:SDLRPCParameterNameTemplateTitle];
}
diff --git a/SmartDeviceLink/SDLSoftButtonCapabilities.h b/SmartDeviceLink/SDLSoftButtonCapabilities.h
index c49d78a4b..07d57e276 100644
--- a/SmartDeviceLink/SDLSoftButtonCapabilities.h
+++ b/SmartDeviceLink/SDLSoftButtonCapabilities.h
@@ -47,6 +47,15 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic) NSNumber<SDLBool> *imageSupported;
+/**
+ The button supports the use of text. If not included, the default value should be considered true that the button will support text.
+
+ Optional, Boolean
+
+ @since SDL 6.0
+ */
+@property (strong, nonatomic, nullable) NSNumber<SDLBool> *textSupported;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSoftButtonCapabilities.m b/SmartDeviceLink/SDLSoftButtonCapabilities.m
index cb9c903d3..6d5ea078d 100644
--- a/SmartDeviceLink/SDLSoftButtonCapabilities.m
+++ b/SmartDeviceLink/SDLSoftButtonCapabilities.m
@@ -47,6 +47,15 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameImageSupported ofClass:NSNumber.class error:&error];
}
+- (void)setTextSupported:(nullable NSNumber<SDLBool> *)textSupported {
+ [self.store sdl_setObject:textSupported forName:SDLRPCParameterNameTextSupported];
+}
+
+- (nullable NSNumber<SDLBool> *)textSupported {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameTextSupported ofClass:NSNumber.class error:&error];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSoftButtonManager.m b/SmartDeviceLink/SDLSoftButtonManager.m
index 56deb83b0..6a79c811d 100644
--- a/SmartDeviceLink/SDLSoftButtonManager.m
+++ b/SmartDeviceLink/SDLSoftButtonManager.m
@@ -14,6 +14,7 @@
#import "SDLFileManager.h"
#import "SDLLogMacros.h"
#import "SDLOnHMIStatus.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRegisterAppInterfaceResponse.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLRPCResponseNotification.h"
@@ -193,6 +194,8 @@ NS_ASSUME_NONNULL_BEGIN
SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response;
if (!response.success.boolValue) { return; }
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
if (response.displayCapabilities == nil) {
SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break.");
return;
@@ -200,11 +203,11 @@ NS_ASSUME_NONNULL_BEGIN
self.softButtonCapabilities = response.softButtonCapabilities ? response.softButtonCapabilities.firstObject : nil;
self.displayCapabilities = response.displayCapabilities;
+#pragma clang diagnostic pop
}
- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification {
SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response;
-
if (!response.success.boolValue) { return; }
if (response.displayCapabilities == nil) {
SDLLogE(@"SetDisplayLayout succeeded but didn't send a display capabilities. A lot of things will probably break.");
@@ -224,6 +227,10 @@ NS_ASSUME_NONNULL_BEGIN
- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification {
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification;
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
SDLHMILevel oldHMILevel = self.currentLevel;
if (![oldHMILevel isEqualToEnum:hmiStatus.hmiLevel]) {
if ([hmiStatus.hmiLevel isEqualToEnum:SDLHMILevelNone]) {
diff --git a/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m b/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m
index 37230e4c7..f1a4748df 100644
--- a/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m
+++ b/SmartDeviceLink/SDLStreamingAudioLifecycleManager.m
@@ -20,6 +20,7 @@
#import "SDLOnHMIStatus.h"
#import "SDLProtocol.h"
#import "SDLProtocolMessage.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRegisterAppInterfaceResponse.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLRPCResponseNotification.h"
@@ -225,8 +226,11 @@ NS_ASSUME_NONNULL_BEGIN
SDLLogD(@"Received Register App Interface");
SDLRegisterAppInterfaceResponse* registerResponse = (SDLRegisterAppInterfaceResponse*)notification.response;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
SDLLogV(@"Determining whether streaming is supported");
_streamingSupported = registerResponse.hmiCapabilities.videoStreaming ? registerResponse.hmiCapabilities.videoStreaming.boolValue : registerResponse.displayCapabilities.graphicSupported.boolValue;
+#pragma clang diagnostic pop
if (!self.isStreamingSupported) {
SDLLogE(@"Graphics are not supported on this head unit. We are are assuming screen size is also unavailable and exiting.");
@@ -243,6 +247,11 @@ NS_ASSUME_NONNULL_BEGIN
}
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification;
+
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
self.hmiLevel = hmiStatus.hmiLevel;
// if startWithProtocol has not been called yet, abort here
diff --git a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m
index 31be53f9e..5d1b66d61 100644
--- a/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m
+++ b/SmartDeviceLink/SDLStreamingVideoLifecycleManager.m
@@ -31,6 +31,7 @@
#import "SDLOnHMIStatus.h"
#import "SDLProtocol.h"
#import "SDLProtocolMessage.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRegisterAppInterfaceResponse.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLRPCResponseNotification.h"
@@ -551,14 +552,19 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
SDLRegisterAppInterfaceResponse* registerResponse = (SDLRegisterAppInterfaceResponse*)notification.response;
SDLLogV(@"Determining whether streaming is supported");
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
_streamingSupported = registerResponse.hmiCapabilities.videoStreaming ? registerResponse.hmiCapabilities.videoStreaming.boolValue : registerResponse.displayCapabilities.graphicSupported.boolValue;
+#pragma clang diagnostic pop
if (!self.isStreamingSupported) {
SDLLogE(@"Graphics are not supported on this head unit. We are are assuming screen size is also unavailable and exiting.");
return;
}
-
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
SDLImageResolution* resolution = registerResponse.displayCapabilities.screenParams.resolution;
+#pragma clang diagnostic pop
if (resolution != nil) {
_screenSize = CGSizeMake(resolution.resolutionWidth.floatValue,
resolution.resolutionHeight.floatValue);
@@ -578,6 +584,9 @@ typedef void(^SDLVideoCapabilityResponseHandler)(SDLVideoStreamingCapability *_N
}
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus*)notification.notification;
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
self.hmiLevel = hmiStatus.hmiLevel;
SDLVideoStreamingState newState = hmiStatus.videoStreamingState ?: SDLVideoStreamingStateStreamable;
diff --git a/SmartDeviceLink/SDLSubscribeVehicleData.h b/SmartDeviceLink/SDLSubscribeVehicleData.h
index 31d1dce6f..912ea1caf 100644
--- a/SmartDeviceLink/SDLSubscribeVehicleData.h
+++ b/SmartDeviceLink/SDLSubscribeVehicleData.h
@@ -266,6 +266,28 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic, nullable) NSNumber<SDLBool> *cloudAppVehicleID;
+/**
+ Sets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @param vehicleDataState A boolean value. If true, requests the OEM custom vehicle data item.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState;
+
+/**
+ Gets the OEM custom vehicle data value for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @return The state of an OEM custom vehicle data item for the given vehicle data name.
+
+ Added in SmartDeviceLink 6.0
+ */
+- (NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+
+
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSubscribeVehicleData.m b/SmartDeviceLink/SDLSubscribeVehicleData.m
index cf2b650ae..a5224be5c 100644
--- a/SmartDeviceLink/SDLSubscribeVehicleData.m
+++ b/SmartDeviceLink/SDLSubscribeVehicleData.m
@@ -300,6 +300,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil];
}
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState {
+ [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName];
+}
+
+- (NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName {
+ return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h
index 0fbf17c0b..d0eb2cc09 100644
--- a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h
+++ b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.h
@@ -219,6 +219,26 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID;
+/**
+ Sets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @param vehicleDataState SDLVehicleDataResult object containing custom data type and result code information.
+
+ Added SmartDeviceLink 6.0
+ */
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState;
+
+/**
+ Gets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @return SDLVehicleDataResult An object containing custom data type and result code information.
+
+ Added SmartDeviceLink 6.0
+ */
+- (SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m
index 648d5356e..cfa785e86 100644
--- a/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m
+++ b/SmartDeviceLink/SDLSubscribeVehicleDataResponse.m
@@ -254,6 +254,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil];
}
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState {
+ [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName];
+}
+
+- (SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName {
+ return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSupportedSeat.h b/SmartDeviceLink/SDLSupportedSeat.h
index 7c7df2f9d..63badc582 100644
--- a/SmartDeviceLink/SDLSupportedSeat.h
+++ b/SmartDeviceLink/SDLSupportedSeat.h
@@ -5,16 +5,22 @@
/**
* List possible seats that is a remote controllable seat.
- *
+ * @warning This should not be used to supported seats, this is a deprecated parameter.
*/
-typedef SDLEnum SDLSupportedSeat SDL_SWIFT_ENUM;
+typedef SDLEnum SDLSupportedSeat SDL_SWIFT_ENUM __deprecated;
/**
* @abstract Save current seat postions and settings to seat memory.
*/
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
extern SDLSupportedSeat const SDLSupportedSeatDriver;
+#pragma clang diagnostic pop
/**
* @abstract Restore / apply the seat memory settings to the current seat.
*/
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
extern SDLSupportedSeat const SDLSupportedSeatFrontPassenger;
+#pragma clang diagnostic pop
diff --git a/SmartDeviceLink/SDLSupportedSeat.m b/SmartDeviceLink/SDLSupportedSeat.m
index f97678bb1..1260ced9d 100644
--- a/SmartDeviceLink/SDLSupportedSeat.m
+++ b/SmartDeviceLink/SDLSupportedSeat.m
@@ -3,5 +3,8 @@
#import "SDLSupportedSeat.h"
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLSupportedSeat const SDLSupportedSeatDriver = @"DRIVER";
SDLSupportedSeat const SDLSupportedSeatFrontPassenger = @"FRONT_PASSENGER";
+#pragma clang diagnostic pop
diff --git a/SmartDeviceLink/SDLSystemCapability.h b/SmartDeviceLink/SDLSystemCapability.h
index 503f50f3e..eda4e535b 100755
--- a/SmartDeviceLink/SDLSystemCapability.h
+++ b/SmartDeviceLink/SDLSystemCapability.h
@@ -14,6 +14,8 @@
@class SDLNavigationCapability;
@class SDLVideoStreamingCapability;
@class SDLRemoteControlCapabilities;
+@class SDLSeatLocationCapability;
+@class SDLDisplayCapability;
NS_ASSUME_NONNULL_BEGIN
@@ -65,6 +67,14 @@ NS_ASSUME_NONNULL_BEGIN
- (instancetype)initWithRemoteControlCapability:(SDLRemoteControlCapabilities *)capability;
/**
+ * Convenience init for a Remote Control Capability
+ *
+ * @param capability Describes information about the locations of each seat
+ * @return A SDLSystemCapability object
+ */
+- (instancetype)initWithSeatLocationCapability:(SDLSeatLocationCapability *)capability;
+
+/**
* Used as a descriptor of what data to expect in this struct. The corresponding param to this enum should be included and the only other parameter included.
*/
@property (strong, nonatomic) SDLSystemCapabilityType systemCapabilityType;
@@ -104,6 +114,22 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (nullable, strong, nonatomic) SDLRemoteControlCapabilities *remoteControlCapability;
+/**
+ * Describes information about the locations of each seat
+ *
+ * Optional
+ */
+@property (nullable, strong, nonatomic) SDLSeatLocationCapability *seatLocationCapability;
+
+/**
+ Contain the display related information and all windows related to that display
+
+ Optional
+
+ @since SDL 6.0
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLDisplayCapability *> *displayCapabilities;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSystemCapability.m b/SmartDeviceLink/SDLSystemCapability.m
index c9273df2c..af5807078 100755
--- a/SmartDeviceLink/SDLSystemCapability.m
+++ b/SmartDeviceLink/SDLSystemCapability.m
@@ -16,6 +16,8 @@
#import "SDLSystemCapabilityType.h"
#import "SDLVideoStreamingCapability.h"
#import "SDLRemoteControlCapabilities.h"
+#import "SDLSeatLocationCapability.h"
+#import "SDLDisplayCapability.h"
NS_ASSUME_NONNULL_BEGIN
@@ -81,6 +83,18 @@ NS_ASSUME_NONNULL_BEGIN
return self;
}
+- (instancetype)initWithSeatLocationCapability:(SDLSeatLocationCapability *)capability {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.systemCapabilityType = SDLSystemCapabilityTypeSeatLocation;
+ self.seatLocationCapability = capability;
+
+ return self;
+}
+
- (void)setSystemCapabilityType:(SDLSystemCapabilityType)type {
[self.store sdl_setObject:type forName:SDLRPCParameterNameSystemCapabilityType];
}
@@ -130,6 +144,22 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_objectForName:SDLRPCParameterNameRemoteControlCapability ofClass:SDLRemoteControlCapabilities.class error:nil];
}
+- (void)setSeatLocationCapability:(nullable SDLSeatLocationCapability *)seatLocationCapability {
+ [self.store sdl_setObject:seatLocationCapability forName:SDLRPCParameterNameSeatLocationCapability];
+}
+
+- (nullable SDLSeatLocationCapability *)seatLocationCapability {
+ return [self.store sdl_objectForName:SDLRPCParameterNameSeatLocationCapability ofClass:SDLSeatLocationCapability.class error:nil];
+}
+
+- (void)setDisplayCapabilities:(nullable NSArray<SDLDisplayCapability *> *)displayCapabilities {
+ [self.store sdl_setObject:displayCapabilities forName:SDLRPCParameterNameDisplayCapabilities];
+}
+
+- (nullable NSArray<SDLDisplayCapability *> *)displayCapabilities {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameDisplayCapabilities ofClass:SDLDisplayCapability.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.h b/SmartDeviceLink/SDLSystemCapabilityManager.h
index 2a86d77c8..e2cea4feb 100644
--- a/SmartDeviceLink/SDLSystemCapabilityManager.h
+++ b/SmartDeviceLink/SDLSystemCapabilityManager.h
@@ -23,6 +23,7 @@
@class SDLPhoneCapability;
@class SDLPresetBankCapabilities;
@class SDLRemoteControlCapabilities;
+@class SDLSeatLocationCapability;
@class SDLSoftButtonCapabilities;
@class SDLSystemCapability;
@class SDLSystemCapabilityManager;
@@ -184,6 +185,15 @@ typedef void (^SDLCapabilityUpdateHandler)(SDLSystemCapability *capability);
@property (nullable, strong, nonatomic, readonly) SDLRemoteControlCapabilities *remoteControlCapability;
/**
+ If returned, the platform supports remote control capabilities for seats
+
+ @see SDLSeatLocationCapability
+
+ Optional
+ */
+@property (nullable, strong, nonatomic, readonly) SDLSeatLocationCapability *seatLocationCapability;
+
+/**
Init is unavailable. Dependencies must be injected using initWithConnectionManager:
@return nil
diff --git a/SmartDeviceLink/SDLSystemCapabilityManager.m b/SmartDeviceLink/SDLSystemCapabilityManager.m
index ceeea6c3c..feea6a0e7 100644
--- a/SmartDeviceLink/SDLSystemCapabilityManager.m
+++ b/SmartDeviceLink/SDLSystemCapabilityManager.m
@@ -24,9 +24,11 @@
#import "SDLOnSystemCapabilityUpdated.h"
#import "SDLPhoneCapability.h"
#import "SDLRegisterAppInterfaceResponse.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRemoteControlCapabilities.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLRPCResponseNotification.h"
+#import "SDLSeatLocationCapability.h"
#import "SDLSetDisplayLayoutResponse.h"
#import "SDLSystemCapability.h"
#import "SDLSystemCapabilityObserver.h"
@@ -57,6 +59,7 @@ typedef NSString * SDLServiceID;
@property (nullable, strong, nonatomic, readwrite) SDLPhoneCapability *phoneCapability;
@property (nullable, strong, nonatomic, readwrite) SDLVideoStreamingCapability *videoStreamingCapability;
@property (nullable, strong, nonatomic, readwrite) SDLRemoteControlCapabilities *remoteControlCapability;
+@property (nullable, strong, nonatomic, readwrite) SDLSeatLocationCapability *seatLocationCapability;
@property (nullable, strong, nonatomic) NSMutableDictionary<SDLServiceID, SDLAppServiceCapability *> *appServicesCapabilitiesDictionary;
@@ -121,6 +124,7 @@ typedef NSString * SDLServiceID;
_phoneCapability = nil;
_videoStreamingCapability = nil;
_remoteControlCapability = nil;
+ _seatLocationCapability = nil;
_appServicesCapabilitiesDictionary = [NSMutableDictionary dictionary];
_supportsSubscriptions = NO;
@@ -157,15 +161,21 @@ typedef NSString * SDLServiceID;
*
* @param notification The `RegisterAppInterfaceResponse` response received from Core
*/
+
- (void)sdl_registerResponse:(SDLRPCResponseNotification *)notification {
SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response;
if (!response.success.boolValue) { return; }
-
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
self.displayCapabilities = response.displayCapabilities;
+#pragma clang diagnostic pop
self.hmiCapabilities = response.hmiCapabilities;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
self.softButtonCapabilities = response.softButtonCapabilities;
self.buttonCapabilities = response.buttonCapabilities;
self.presetBankCapabilities = response.presetBankCapabilities;
+#pragma clang diagnostic pop
self.hmiZoneCapabilities = response.hmiZoneCapabilities;
self.speechCapabilities = response.speechCapabilities;
self.prerecordedSpeechCapabilities = response.prerecordedSpeech;
@@ -174,6 +184,9 @@ typedef NSString * SDLServiceID;
self.pcmStreamCapability = response.pcmStreamCapabilities;
}
+
+
+
/**
* Called when a `SetDisplayLayoutResponse` response is received from Core. If the template was set successfully, the the new capabilities for the template are saved.
*
@@ -189,6 +202,7 @@ typedef NSString * SDLServiceID;
self.presetBankCapabilities = response.presetBankCapabilities;
}
+
/**
* Called when an `OnSystemCapabilityUpdated` notification is received from Core. The updated system capabilty is saved.
*
@@ -216,6 +230,11 @@ typedef NSString * SDLServiceID;
*/
- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification {
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification;
+
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
if (self.isFirstHMILevelFull || ![hmiStatus.hmiLevel isEqualToEnum:SDLHMILevelFull]) {
return;
}
@@ -304,6 +323,9 @@ typedef NSString * SDLServiceID;
} else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeRemoteControl]) {
if ([self.remoteControlCapability isEqual:systemCapability.remoteControlCapability]) { return [self sdl_callSaveHandlerForCapability:systemCapability andReturnWithValue:NO handler:handler]; }
self.remoteControlCapability = systemCapability.remoteControlCapability;
+ } else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeSeatLocation]) {
+ if ([self.seatLocationCapability isEqual:systemCapability.seatLocationCapability]) { return [self sdl_callSaveHandlerForCapability:systemCapability andReturnWithValue:NO handler:handler]; }
+ self.seatLocationCapability = systemCapability.seatLocationCapability;
} else if ([systemCapabilityType isEqualToEnum:SDLSystemCapabilityTypeVideoStreaming]) {
if ([self.videoStreamingCapability isEqual:systemCapability.videoStreamingCapability]) { return [self sdl_callSaveHandlerForCapability:systemCapability andReturnWithValue:NO handler:handler]; }
self.videoStreamingCapability = systemCapability.videoStreamingCapability;
diff --git a/SmartDeviceLink/SDLSystemCapabilityType.h b/SmartDeviceLink/SDLSystemCapabilityType.h
index 2625217dc..60f11a78a 100755
--- a/SmartDeviceLink/SDLSystemCapabilityType.h
+++ b/SmartDeviceLink/SDLSystemCapabilityType.h
@@ -37,3 +37,15 @@ extern SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming;
The remote control capability
*/
extern SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl;
+
+/**
+ Contains information about the locations of each seat
+ */
+extern SDLSystemCapabilityType const SDLSystemCapabilityTypeSeatLocation;
+
+/**
+ The Display type capability
+
+ @since SDL 6.0
+ */
+extern SDLSystemCapabilityType const SDLSystemCapabilityTypeDisplays;
diff --git a/SmartDeviceLink/SDLSystemCapabilityType.m b/SmartDeviceLink/SDLSystemCapabilityType.m
index 933a74418..4185345e6 100755
--- a/SmartDeviceLink/SDLSystemCapabilityType.m
+++ b/SmartDeviceLink/SDLSystemCapabilityType.m
@@ -13,3 +13,5 @@ SDLSystemCapabilityType const SDLSystemCapabilityTypeNavigation = @"NAVIGATION";
SDLSystemCapabilityType const SDLSystemCapabilityTypePhoneCall = @"PHONE_CALL";
SDLSystemCapabilityType const SDLSystemCapabilityTypeVideoStreaming = @"VIDEO_STREAMING";
SDLSystemCapabilityType const SDLSystemCapabilityTypeRemoteControl = @"REMOTE_CONTROL";
+SDLSystemCapabilityType const SDLSystemCapabilityTypeSeatLocation = @"SEAT_LOCATION";
+SDLSystemCapabilityType const SDLSystemCapabilityTypeDisplays = @"DISPLAYS";
diff --git a/SmartDeviceLink/SDLTemplateConfiguration.h b/SmartDeviceLink/SDLTemplateConfiguration.h
new file mode 100644
index 000000000..6a2b3a66e
--- /dev/null
+++ b/SmartDeviceLink/SDLTemplateConfiguration.h
@@ -0,0 +1,59 @@
+//
+// SDLTemplateConfiguration.h
+// SmartDeviceLink
+
+#import "SDLTemplateColorScheme.h"
+#import "SDLPredefinedLayout.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Used to set an alternate template layout to a window.
+
+ @since SDL 6.0
+ */
+@interface SDLTemplateConfiguration : SDLRPCStruct
+
+
+/**
+ Constructor with the required values.
+
+ @param predefinedLayout A template layout an app uses to display information. The broad details of the layout are defined, but the details depend on the IVI system. Used in SetDisplayLayout.
+ */
+- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout;
+
+/**
+ Init with the required values.
+
+ @param template Predefined or dynamically created window template. Currently only predefined window template layouts are defined.
+ */
+- (instancetype)initWithTemplate:(NSString *)template;
+
+
+/**
+ Convinience constructor with all the parameters.
+
+ @param template Predefined or dynamically created window template. Currently only predefined window template layouts are defined.
+ @param dayColorScheme The color scheme to use when the head unit is in a light / day situation. If nil, the existing color scheme will be used.
+ @param nightColorScheme The color scheme to use when the head unit is in a dark / night situation.
+ */
+- (instancetype)initWithTemplate:(NSString *)template dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme;
+
+/**
+ Predefined or dynamically created window template. Currently only predefined window template layouts are defined.
+ */
+@property (strong, nonatomic) NSString *template;
+
+/**
+ The color scheme to use when the head unit is in a light / day situation.
+ */
+@property (strong, nonatomic, nullable) SDLTemplateColorScheme *dayColorScheme;
+
+/**
+ The color scheme to use when the head unit is in a dark / night situation.
+ */
+@property (strong, nonatomic, nullable) SDLTemplateColorScheme *nightColorScheme;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLTemplateConfiguration.m b/SmartDeviceLink/SDLTemplateConfiguration.m
new file mode 100644
index 000000000..1f2d2cca1
--- /dev/null
+++ b/SmartDeviceLink/SDLTemplateConfiguration.m
@@ -0,0 +1,60 @@
+//
+// SDLTemplateConfiguration.m
+// SmartDeviceLink
+
+#import "SDLTemplateConfiguration.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+
+@implementation SDLTemplateConfiguration
+
+
+- (instancetype)initWithPredefinedLayout:(SDLPredefinedLayout)predefinedLayout {
+ return [self initWithTemplate:predefinedLayout];
+}
+
+- (instancetype)initWithTemplate:(NSString *)template {
+ self = [super init];
+ if (!self) {
+ return nil;
+ }
+ self.template = template;
+ return self;
+}
+
+- (instancetype)initWithTemplate:(NSString *)template dayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme nightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme {
+ self = [self initWithTemplate:template];
+ if (!self) {
+ return nil;
+ }
+ self.dayColorScheme = dayColorScheme;
+ self.nightColorScheme = nightColorScheme;
+ return self;
+}
+
+- (void)setTemplate:(NSString *)template {
+ [self.store sdl_setObject:template forName:SDLRPCParameterNameTemplate];
+}
+
+- (NSString *)template {
+ return [self.store sdl_objectForName:SDLRPCParameterNameTemplate ofClass:NSString.class error:nil];
+}
+
+- (void)setDayColorScheme:(nullable SDLTemplateColorScheme *)dayColorScheme {
+ [self.store sdl_setObject:dayColorScheme forName:SDLRPCParameterNameDayColorScheme];
+}
+
+- (nullable SDLTemplateColorScheme *)dayColorScheme {
+ return [self.store sdl_objectForName:SDLRPCParameterNameDayColorScheme ofClass:SDLTemplateColorScheme.class error:nil];
+}
+
+- (void)setNightColorScheme:(nullable SDLTemplateColorScheme *)nightColorScheme {
+ [self.store sdl_setObject:nightColorScheme forName:SDLRPCParameterNameNightColorScheme];
+}
+
+- (nullable SDLTemplateColorScheme *)nightColorScheme {
+ return [self.store sdl_objectForName:SDLRPCParameterNameNightColorScheme ofClass:SDLTemplateColorScheme.class error:nil];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLTextAndGraphicManager.m b/SmartDeviceLink/SDLTextAndGraphicManager.m
index 5692ddaf3..4e0551459 100644
--- a/SmartDeviceLink/SDLTextAndGraphicManager.m
+++ b/SmartDeviceLink/SDLTextAndGraphicManager.m
@@ -19,6 +19,7 @@
#import "SDLMetadataTags.h"
#import "SDLNotificationConstants.h"
#import "SDLOnHMIStatus.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRegisterAppInterfaceResponse.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLRPCResponseNotification.h"
@@ -26,6 +27,7 @@
#import "SDLShow.h"
#import "SDLTextField.h"
+
NS_ASSUME_NONNULL_BEGIN
@interface SDLTextAndGraphicManager()
@@ -693,17 +695,22 @@ NS_ASSUME_NONNULL_BEGIN
SDLRegisterAppInterfaceResponse *response = (SDLRegisterAppInterfaceResponse *)notification.response;
if (!response.success.boolValue) { return; }
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
if (response.displayCapabilities == nil) {
+#pragma clang diagnostic pop
SDLLogE(@"RegisterAppInterface succeeded but didn't send a display capabilities. A lot of things will probably break.");
return;
}
-
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
self.displayCapabilities = response.displayCapabilities;
+#pragma clang diagnostic pop
}
- (void)sdl_displayLayoutResponse:(SDLRPCResponseNotification *)notification {
SDLSetDisplayLayoutResponse *response = (SDLSetDisplayLayoutResponse *)notification.response;
-
if (!response.success.boolValue) { return; }
if (!response.success.boolValue) { return; }
if (response.displayCapabilities == nil) {
@@ -721,6 +728,10 @@ NS_ASSUME_NONNULL_BEGIN
- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification {
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification;
+
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
SDLHMILevel oldLevel = self.currentLevel;
self.currentLevel = hmiStatus.hmiLevel;
diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleData.h b/SmartDeviceLink/SDLUnsubscribeVehicleData.h
index 322b12347..f5173ad94 100644
--- a/SmartDeviceLink/SDLUnsubscribeVehicleData.h
+++ b/SmartDeviceLink/SDLUnsubscribeVehicleData.h
@@ -268,6 +268,25 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic, nullable) NSNumber<SDLBool> *cloudAppVehicleID;
+/**
+ Sets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @param vehicleDataState A boolean value. If true, requests an unsubscribes of the OEM custom vehicle data item.
+
+ Added SmartDeviceLink 6.0
+ */
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState;
+
+/**
+ Gets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item to unsubscribe for.
+ @return A boolean value indicating if an unsubscribe request will occur for the OEM custom vehicle data item.
+
+ Added SmartDeviceLink 6.0
+ */
+- (NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
@end
diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleData.m b/SmartDeviceLink/SDLUnsubscribeVehicleData.m
index 1df1d2a5f..ec895d667 100644
--- a/SmartDeviceLink/SDLUnsubscribeVehicleData.m
+++ b/SmartDeviceLink/SDLUnsubscribeVehicleData.m
@@ -300,6 +300,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:NSNumber.class error:nil];
}
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(BOOL)vehicleDataState {
+ [self.parameters sdl_setObject:@(vehicleDataState) forName:vehicleDataName];
+}
+
+- (NSNumber<SDLBool> *)getOEMCustomVehicleData:(NSString *)vehicleDataName {
+ return [self.parameters sdl_objectForName:vehicleDataName ofClass:NSNumber.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h
index 32f51cf76..ed42cd76c 100644
--- a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h
+++ b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.h
@@ -218,6 +218,26 @@ NS_ASSUME_NONNULL_BEGIN
*/
@property (strong, nonatomic, nullable) SDLVehicleDataResult *cloudAppVehicleID;
+/**
+ Sets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @param vehicleDataState SDLVehicleDataResult object containing custom data type and result code information.
+
+ Added SmartDeviceLink 6.0
+ */
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState;
+
+/**
+ Gets the OEM custom vehicle data state for any given OEM custom vehicle data name.
+
+ @param vehicleDataName The name of the OEM custom vehicle data item.
+ @return SDLVehicleDataResult object containing custom data type and result code information.
+
+ Added SmartDeviceLink 6.0
+ */
+- (SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName;
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m
index b7bddc70d..10f8d4a78 100644
--- a/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m
+++ b/SmartDeviceLink/SDLUnsubscribeVehicleDataResponse.m
@@ -254,6 +254,14 @@ NS_ASSUME_NONNULL_BEGIN
return [self.parameters sdl_objectForName:SDLRPCParameterNameCloudAppVehicleID ofClass:SDLVehicleDataResult.class error:nil];
}
+- (void)setOEMCustomVehicleData:(NSString *)vehicleDataName withVehicleDataState:(SDLVehicleDataResult *)vehicleDataState {
+ [self.parameters sdl_setObject:vehicleDataState forName:vehicleDataName];
+}
+
+- (SDLVehicleDataResult *)getOEMCustomVehicleData:(NSString *)vehicleDataName {
+ return [self.parameters sdl_objectForName:vehicleDataName ofClass:SDLVehicleDataResult.class error:nil];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLVehicleDataResult.h b/SmartDeviceLink/SDLVehicleDataResult.h
index 44d43b70b..deeb325a9 100644
--- a/SmartDeviceLink/SDLVehicleDataResult.h
+++ b/SmartDeviceLink/SDLVehicleDataResult.h
@@ -14,11 +14,34 @@ NS_ASSUME_NONNULL_BEGIN
@interface SDLVehicleDataResult : SDLRPCStruct
/**
+ * Convenience init for creating a SDLVehicleDataResult with a dataType
+ *
+ * @param dataType The Vehicle DataType data
+ * @param resultCode The VehicleData ResultCode data
+ */
+- (instancetype)initWithDataType:(SDLVehicleDataType)dataType resultCode:(SDLVehicleDataResultCode)resultCode;
+
+/**
+ * Convenience init for creating a SDLVehicleDataResult with a customDataType
+ *
+ * @param customDataType The custom dataType data
+ * @param resultCode The VehicleData ResultCode data
+ */
+- (instancetype)initWithCustomOEMDataType:(NSString *)customDataType resultCode:(SDLVehicleDataResultCode)resultCode;
+
+/**
Defined published data element type
*/
@property (strong, nonatomic) SDLVehicleDataType dataType;
/**
+ OEM custom defined published data element type
+
+ Added SmartDeviceLink 6.0
+ */
+@property (nullable, strong, nonatomic) NSString *customOEMDataType;
+
+/**
Published data result code
*/
@property (strong, nonatomic) SDLVehicleDataResultCode resultCode;
diff --git a/SmartDeviceLink/SDLVehicleDataResult.m b/SmartDeviceLink/SDLVehicleDataResult.m
index 0dfd9b1f3..db6995051 100644
--- a/SmartDeviceLink/SDLVehicleDataResult.m
+++ b/SmartDeviceLink/SDLVehicleDataResult.m
@@ -10,6 +10,30 @@ NS_ASSUME_NONNULL_BEGIN
@implementation SDLVehicleDataResult
+- (instancetype)initWithDataType:(SDLVehicleDataType)dataType resultCode:(SDLVehicleDataResultCode)resultCode {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.dataType = dataType;
+ self.resultCode = resultCode;
+
+ return self;
+}
+
+- (instancetype)initWithCustomOEMDataType:(NSString *)customDataType resultCode:(SDLVehicleDataResultCode)resultCode{
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+
+ self.customOEMDataType = customDataType;
+ self.resultCode = resultCode;
+
+ return self;
+}
+
- (void)setDataType:(SDLVehicleDataType)dataType {
[self.store sdl_setObject:dataType forName:SDLRPCParameterNameDataType];
}
@@ -28,6 +52,15 @@ NS_ASSUME_NONNULL_BEGIN
return [self.store sdl_enumForName:SDLRPCParameterNameResultCode error:&error];
}
+- (nullable NSString *)customOEMDataType {
+ NSError *error = nil;
+ return [self.store sdl_enumForName:SDLRPCParameterNameOEMCustomDataType error:&error];
+}
+
+- (void)setCustomOEMDataType:(nullable NSString *)oemCustomDataType {
+ [self.store sdl_setObject:oemCustomDataType forName:SDLRPCParameterNameOEMCustomDataType];
+}
+
@end
NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLVehicleDataType.h b/SmartDeviceLink/SDLVehicleDataType.h
index 1da4ad500..e65cdcef9 100644
--- a/SmartDeviceLink/SDLVehicleDataType.h
+++ b/SmartDeviceLink/SDLVehicleDataType.h
@@ -163,3 +163,10 @@ extern SDLVehicleDataType const SDLVehicleDataTypeTurnSignal;
The cloud application vehicle id. Used by cloud apps to identify a head unit
*/
extern SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID;
+
+/**
+ Custom OEM Vehicle data
+
+ Added in SDL 6.0
+ */
+extern SDLVehicleDataType const SDLVehicleDataTypeOEMVehicleDataType;
diff --git a/SmartDeviceLink/SDLVehicleDataType.m b/SmartDeviceLink/SDLVehicleDataType.m
index a64497b2a..895613873 100644
--- a/SmartDeviceLink/SDLVehicleDataType.m
+++ b/SmartDeviceLink/SDLVehicleDataType.m
@@ -35,4 +35,5 @@ SDLVehicleDataType const SDLVehicleDataTypeSteeringWheel = @"VEHICLEDATA_STEERIN
SDLVehicleDataType const SDLVehicleDataTypeElectronicParkBrakeStatus = @"VEHICLEDATA_ELECTRONICPARKBRAKESTATUS";
SDLVehicleDataType const SDLVehicleDataTypeTurnSignal = @"VEHICLEDATA_TURNSIGNAL";
SDLVehicleDataType const SDLVehicleDataTypeCloudAppVehicleID = @"VEHICLEDATA_CLOUDAPPVEHICLEID";
+SDLVehicleDataType const SDLVehicleDataTypeOEMVehicleDataType = @"VEHICLEDATA_OEM_CUSTOM_DATA";
diff --git a/SmartDeviceLink/SDLVoiceCommandManager.m b/SmartDeviceLink/SDLVoiceCommandManager.m
index ef5027c95..e9bd3d5e6 100644
--- a/SmartDeviceLink/SDLVoiceCommandManager.m
+++ b/SmartDeviceLink/SDLVoiceCommandManager.m
@@ -17,6 +17,7 @@
#import "SDLNotificationConstants.h"
#import "SDLOnCommand.h"
#import "SDLOnHMIStatus.h"
+#import "SDLPredefinedWindows.h"
#import "SDLRPCNotificationNotification.h"
#import "SDLRPCRequest.h"
#import "SDLVoiceCommand.h"
@@ -242,6 +243,11 @@ UInt32 const VoiceCommandIdMin = 1900000000;
- (void)sdl_hmiStatusNotification:(SDLRPCNotificationNotification *)notification {
SDLOnHMIStatus *hmiStatus = (SDLOnHMIStatus *)notification.notification;
+
+ if (hmiStatus.windowID != nil && hmiStatus.windowID.integerValue != SDLPredefinedWindowsDefaultWindow) {
+ return;
+ }
+
SDLHMILevel oldHMILevel = self.currentHMILevel;
self.currentHMILevel = hmiStatus.hmiLevel;
diff --git a/SmartDeviceLink/SDLWindowCapability.h b/SmartDeviceLink/SDLWindowCapability.h
new file mode 100644
index 000000000..b569f0020
--- /dev/null
+++ b/SmartDeviceLink/SDLWindowCapability.h
@@ -0,0 +1,81 @@
+//
+// SDLWindowCapability.h
+// SmartDeviceLink
+
+#import "SDLRPCStruct.h"
+#import "SDLImageType.h"
+
+@class SDLTextField;
+@class SDLImageField;
+@class SDLButtonCapabilities;
+@class SDLSoftButtonCapabilities;
+
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Reflects content of DisplayCapabilities, ButtonCapabilities and SoftButtonCapabilities
+
+ @since SDL 6.0
+ */
+@interface SDLWindowCapability : SDLRPCStruct
+
+/**
+ The specified ID of the window. Can be set to a predefined window, or omitted for the main window on the main display.
+
+ Size: min 1 max 100
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLUInt> *windowID;
+
+/**
+ A set of all fields that support text data. @see TextField
+
+ Size: min 1 max 100
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLTextField *> *textFields;
+
+/**
+ A set of all fields that support images. @see ImageField
+
+ Size: min 0 max 1000
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLImageField *> *imageFields;
+
+/**
+ Provides information about image types supported by the system.
+
+ Size: min 0 max 1000
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLImageType> *imageTypeSupported;
+
+/**
+ A set of all window templates available on the head unit.
+
+ Size: min 0 max 100
+ */
+@property (nullable, strong, nonatomic) NSArray<NSString *> *templatesAvailable;
+
+/**
+ The number of on-window custom presets available (if any); otherwise omitted.
+
+ Size: min 1 max 100
+ */
+@property (nullable, strong, nonatomic) NSNumber<SDLInt> *numCustomPresetsAvailable;
+
+/**
+ The number of buttons and the capabilities of each on-window button.
+
+ Size: min 1 max 100
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLButtonCapabilities *> *buttonCapabilities;
+
+/**
+ The number of soft buttons available on-window and the capabilities for each button.
+
+ Size: min 1 max 100
+ */
+@property (nullable, strong, nonatomic) NSArray<SDLSoftButtonCapabilities *> *softButtonCapabilities;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLWindowCapability.m b/SmartDeviceLink/SDLWindowCapability.m
new file mode 100644
index 000000000..3e30a2b4c
--- /dev/null
+++ b/SmartDeviceLink/SDLWindowCapability.m
@@ -0,0 +1,73 @@
+//
+// SDLWindowCapability.m
+// SmartDeviceLink
+
+#import "SDLWindowCapability.h"
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLTextField.h"
+#import "SDLImageField.h"
+#import "SDLButtonCapabilities.h"
+#import "SDLSoftButtonCapabilities.h"
+
+@implementation SDLWindowCapability
+
+- (void)setWindowID:(nullable NSNumber<SDLUInt> *)windowID {
+ [self.store sdl_setObject:windowID forName:SDLRPCParameterNameWindowId];
+}
+
+- (nullable NSNumber<SDLUInt> *)windowID {
+ return [self.store sdl_objectForName:SDLRPCParameterNameWindowId ofClass:NSNumber.class error:nil];
+}
+
+- (void)setTextFields:(nullable NSArray<SDLTextField *> *)textFields {
+ [self.store sdl_setObject:textFields forName:SDLRPCParameterNameTextFields];
+}
+
+- (nullable NSArray<SDLTextField *> *)textFields {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameTextFields ofClass:SDLTextField.class error:nil];
+}
+
+- (void)setImageFields:(nullable NSArray<SDLImageField *> *)imageFields {
+ [self.store sdl_setObject:imageFields forName:SDLRPCParameterNameImageFields];
+}
+
+- (nullable NSArray<SDLImageField *> *)imageFields {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameImageFields ofClass:SDLImageField.class error:nil];
+}
+
+- (void)setImageTypeSupported:(nullable NSArray<SDLImageType> *)imageTypeSupported {
+ [self.store sdl_setObject:imageTypeSupported forName:SDLRPCParameterNameImageTypeSupported];
+}
+
+- (nullable NSArray<SDLImageType> *)imageTypeSupported {
+ return [self.store sdl_enumsForName:SDLRPCParameterNameImageTypeSupported error:nil];
+}
+
+- (void)setNumCustomPresetsAvailable:(nullable NSNumber<SDLInt> *)numCustomPresetsAvailable {
+ [self.store sdl_setObject:numCustomPresetsAvailable forName:SDLRPCParameterNameNumberCustomPresetsAvailable];
+}
+
+- (nullable NSNumber<SDLInt> *)numCustomPresetsAvailable {
+ return [self.store sdl_objectForName:SDLRPCParameterNameNumberCustomPresetsAvailable ofClass:NSNumber.class error:nil];
+}
+
+- (void)setButtonCapabilities:(nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities {
+ [self.store sdl_setObject:buttonCapabilities forName:SDLRPCParameterNameButtonCapabilities];
+}
+
+- (nullable NSArray<SDLButtonCapabilities *> *)buttonCapabilities {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameButtonCapabilities ofClass:SDLButtonCapabilities.class error:nil];
+}
+
+
+- (void)setSoftButtonCapabilities:(nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities {
+ [self.store sdl_setObject:softButtonCapabilities forName:SDLRPCParameterNameSoftButtonCapabilities];
+}
+
+- (nullable NSArray<SDLSoftButtonCapabilities *> *)softButtonCapabilities {
+ return [self.store sdl_objectsForName:SDLRPCParameterNameSoftButtonCapabilities ofClass:SDLSoftButtonCapabilities.class error:nil];
+}
+
+@end
diff --git a/SmartDeviceLink/SDLWindowType.h b/SmartDeviceLink/SDLWindowType.h
new file mode 100644
index 000000000..5dca1b3c3
--- /dev/null
+++ b/SmartDeviceLink/SDLWindowType.h
@@ -0,0 +1,21 @@
+//
+// SDLWindowType.h
+// SmartDeviceLink
+
+#import "SDLEnum.h"
+/**
+ The type of the window to be created. Main window or widget.
+
+ @since SDL 6.0
+ */
+typedef SDLEnum SDLWindowType SDL_SWIFT_ENUM;
+
+/**
+ This window type describes the main window on a display.
+ */
+extern SDLWindowType const SDLWindowTypeMain;
+
+/**
+ A widget is a small window that the app can create to provide information and soft buttons for quick app control.
+ */
+extern SDLWindowType const SDLWindowTypeWidget;
diff --git a/SmartDeviceLink/SDLWindowType.m b/SmartDeviceLink/SDLWindowType.m
new file mode 100644
index 000000000..90678e3ea
--- /dev/null
+++ b/SmartDeviceLink/SDLWindowType.m
@@ -0,0 +1,8 @@
+//
+// SDLWindowType.m
+// SmartDeviceLink
+
+#import "SDLWindowType.h"
+
+SDLWindowType const SDLWindowTypeMain = @"MAIN";
+SDLWindowType const SDLWindowTypeWidget = @"WIDGET";
diff --git a/SmartDeviceLink/SDLWindowTypeCapabilities.h b/SmartDeviceLink/SDLWindowTypeCapabilities.h
new file mode 100644
index 000000000..551fd692c
--- /dev/null
+++ b/SmartDeviceLink/SDLWindowTypeCapabilities.h
@@ -0,0 +1,41 @@
+//
+// SDLWindowTypeCapabilities.h
+// SmartDeviceLink
+
+#import "SDLRPCStruct.h"
+#import "SDLWindowType.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+/**
+ Used to inform an app how many window instances per type that can be created.
+
+ @since SDL 6.0
+ */
+@interface SDLWindowTypeCapabilities : SDLRPCStruct
+
+/**
+ Init with required parameters
+
+ @param type Type of windows available, to create.
+ @param maximumNumberOfWindows Number of windows available, to create.
+ */
+- (instancetype)initWithType:(SDLWindowType)type maximumNumberOfWindows:(UInt32)maximumNumberOfWindows;
+
+/**
+ Type of windows available, to create.
+
+ Required
+ */
+@property (strong, nonatomic) SDLWindowType type;
+
+/**
+ Number of windows available, to create.
+
+ Required
+ */
+@property (strong, nonatomic) NSNumber<SDLInt> *maximumNumberOfWindows;
+
+@end
+
+NS_ASSUME_NONNULL_END
diff --git a/SmartDeviceLink/SDLWindowTypeCapabilities.m b/SmartDeviceLink/SDLWindowTypeCapabilities.m
new file mode 100644
index 000000000..1e2212d97
--- /dev/null
+++ b/SmartDeviceLink/SDLWindowTypeCapabilities.m
@@ -0,0 +1,58 @@
+//
+// SDLWindowTypeCapabilities.m
+// SmartDeviceLink
+//
+// Created by cssoeutest1 on 16.07.19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import "SDLWindowTypeCapabilities.h"
+
+
+#import "NSMutableDictionary+Store.h"
+#import "SDLRPCParameterNames.h"
+
+NS_ASSUME_NONNULL_BEGIN
+
+@implementation SDLWindowTypeCapabilities
+
+- (instancetype)init {
+ self = [super init];
+ if (!self) {
+ return nil;
+ }
+ return self;
+}
+
+- (instancetype)initWithType:(SDLWindowType)type maximumNumberOfWindows:(UInt32)maximumNumberOfWindows {
+ self = [self init];
+ if (!self) {
+ return nil;
+ }
+ self.type = type;
+ self.maximumNumberOfWindows = @(maximumNumberOfWindows);
+ return self;
+}
+
+- (void)setType:(SDLWindowType)type {
+ [self.store sdl_setObject:type forName:SDLRPCParameterNameType];
+}
+
+- (SDLWindowType)type {
+ NSError *error = nil;
+ return [self.store sdl_enumForName:SDLRPCParameterNameType error:&error];
+}
+
+- (void)setMaximumNumberOfWindows:(NSNumber<SDLInt> *)maximumNumberOfWindows {
+ [self.store sdl_setObject:maximumNumberOfWindows forName:SDLRPCParameterNameMaximumNumberOfWindows];
+}
+
+- (NSNumber<SDLInt> *)maximumNumberOfWindows {
+ NSError *error = nil;
+ return [self.store sdl_objectForName:SDLRPCParameterNameMaximumNumberOfWindows ofClass:NSNumber.class error:&error];
+}
+
+@end
+
+NS_ASSUME_NONNULL_END
+
diff --git a/SmartDeviceLink/SmartDeviceLink.h b/SmartDeviceLink/SmartDeviceLink.h
index 476e05718..81409bc67 100644
--- a/SmartDeviceLink/SmartDeviceLink.h
+++ b/SmartDeviceLink/SmartDeviceLink.h
@@ -27,10 +27,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLChangeRegistration.h"
#import "SDLCloseApplication.h"
#import "SDLCreateInteractionChoiceSet.h"
+#import "SDLCreateWindow.h"
#import "SDLDeleteCommand.h"
#import "SDLDeleteFile.h"
#import "SDLDeleteInteractionChoiceSet.h"
#import "SDLDeleteSubMenu.h"
+#import "SDLDeleteWindow.h"
#import "SDLDiagnosticMessage.h"
#import "SDLDialNumber.h"
#import "SDLEncodedSyncPData.h"
@@ -40,6 +42,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLGetDTCs.h"
#import "SDLGetFile.h"
#import "SDLGetInteriorVehicleData.h"
+#import "SDLGetInteriorVehicleDataConsent.h"
#import "SDLGetSystemCapability.h"
#import "SDLGetVehicleData.h"
#import "SDLGetWayPoints.h"
@@ -72,6 +75,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSyncPData.h"
#import "SDLSystemRequest.h"
#import "SDLUnpublishAppService.h"
+#import "SDLReleaseInteriorVehicleDataModule.h"
#import "SDLUnregisterAppInterface.h"
#import "SDLUnsubscribeButton.h"
#import "SDLUnsubscribeVehicleData.h"
@@ -87,10 +91,12 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLChangeRegistrationResponse.h"
#import "SDLCloseApplicationResponse.h"
#import "SDLCreateInteractionChoiceSetResponse.h"
+#import "SDLCreateWindowResponse.h"
#import "SDLDeleteCommandResponse.h"
#import "SDLDeleteFileResponse.h"
#import "SDLDeleteInteractionChoiceSetResponse.h"
#import "SDLDeleteSubMenuResponse.h"
+#import "SDLDeleteWindowResponse.h"
#import "SDLDiagnosticMessageResponse.h"
#import "SDLDialNumberResponse.h"
#import "SDLEncodedSyncPDataResponse.h"
@@ -100,6 +106,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLGetAppServiceDataResponse.h"
#import "SDLGetDTCsResponse.h"
#import "SDLGetFileResponse.h"
+#import "SDLGetInteriorVehicleDataConsentResponse.h"
#import "SDLGetInteriorVehicleDataResponse.h"
#import "SDLGetSystemCapabilityResponse.h"
#import "SDLGetVehicleDataResponse.h"
@@ -132,6 +139,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSubscribeWayPointsResponse.h"
#import "SDLSyncPDataResponse.h"
#import "SDLUnpublishAppServiceResponse.h"
+#import "SDLReleaseInteriorVehicleDataModuleResponse.h"
#import "SDLUnregisterAppInterfaceResponse.h"
#import "SDLUnsubscribeButtonResponse.h"
#import "SDLUnsubscribeVehicleDataResponse.h"
@@ -187,11 +195,13 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLDeviceInfo.h"
#import "SDLDeviceStatus.h"
#import "SDLDisplayCapabilities.h"
+#import "SDLDisplayCapability.h"
#import "SDLECallInfo.h"
#import "SDLEmergencyEvent.h"
#import "SDLFuelRange.h"
#import "SDLEqualizerSettings.h"
#import "SDLGPSData.h"
+#import "SDLGrid.h"
#import "SDLHapticRect.h"
#import "SDLHMICapabilities.h"
#import "SDLHMIPermissions.h"
@@ -215,6 +225,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLMenuParams.h"
#import "SDLMetadataTags.h"
#import "SDLModuleData.h"
+#import "SDLModuleInfo.h"
#import "SDLMyKey.h"
#import "SDLNavigationCapability.h"
#import "SDLNavigationInstruction.h"
@@ -235,6 +246,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLSeatControlCapabilities.h"
#import "SDLSeatControlData.h"
#import "SDLSeatMemoryAction.h"
+#import "SDLSeatLocation.h"
+#import "SDLSeatLocationCapability.h"
#import "SDLSingleTireStatus.h"
#import "SDLSISData.h"
#import "SDLSoftButton.h"
@@ -247,6 +260,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLTTSChunk.h"
#import "SDLTemperature.h"
#import "SDLTemplateColorScheme.h"
+#import "SDLTemplateConfiguration.h"
#import "SDLTextField.h"
#import "SDLTireStatus.h"
#import "SDLTouchCoord.h"
@@ -262,6 +276,8 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLWeatherData.h"
#import "SDLWeatherServiceData.h"
#import "SDLWeatherServiceManifest.h"
+#import "SDLWindowCapability.h"
+#import "SDLWindowTypeCapabilities.h"
// Enums
#import "SDLAmbientLightStatus.h"
@@ -328,6 +344,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLPowerModeStatus.h"
#import "SDLPredefinedLayout.h"
#import "SDLPrerecordedSpeech.h"
+#import "SDLPredefinedWindows.h"
#import "SDLPrimaryAudioSource.h"
#import "SDLRadioBand.h"
#import "SDLRadioState.h"
@@ -367,6 +384,7 @@ FOUNDATION_EXPORT const unsigned char SmartDeviceLinkVersionString[];
#import "SDLVrCapabilities.h"
#import "SDLWarningLightStatus.h"
#import "SDLWayPointType.h"
+#import "SDLWindowType.h"
#import "SDLWiperStatus.h"
// Developer API
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLFakeViewControllerPresenter.m b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeViewControllerPresenter.m
index 3e6230897..aa9fe7849 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLFakeViewControllerPresenter.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLFakeViewControllerPresenter.m
@@ -18,6 +18,15 @@
@implementation SDLFakeViewControllerPresenter
+- (instancetype)init {
+ self = [super init];
+ if (!self) { return nil; }
+
+ _presented = NO;
+
+ return self;
+}
+
- (void)present {
if (!self.lockViewController) { return; }
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m
index 4f808bd3a..86215488a 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLockScreenManagerSpec.m
@@ -350,6 +350,57 @@ describe(@"a lock screen manager", ^{
});
});
+ describe(@"with an always enabled configuration", ^{
+ __block SDLFakeViewControllerPresenter *fakePresenter = nil;
+ __block SDLRPCNotificationNotification *testLockStatusNotification = nil;
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ __block SDLOnLockScreenStatus *testStatus = nil;
+#pragma clang diagnostic pop
+
+ beforeEach(^{
+ fakePresenter = [[SDLFakeViewControllerPresenter alloc] init];
+
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ testStatus = [[SDLOnLockScreenStatus alloc] init];
+#pragma clang diagnostic pop
+
+ SDLLockScreenConfiguration *config = [SDLLockScreenConfiguration enabledConfiguration];
+ config.displayMode = SDLLockScreenConfigurationDisplayModeAlways;
+
+ testManager = [[SDLLockScreenManager alloc] initWithConfiguration:config notificationDispatcher:nil presenter:fakePresenter];
+ [testManager start];
+ });
+
+ context(@"receiving a lock screen status of required", ^{
+ beforeEach(^{
+ testStatus.lockScreenStatus = SDLLockScreenStatusRequired;
+ testLockStatusNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeLockScreenStatusNotification object:nil rpcNotification:testStatus];
+
+ [[NSNotificationCenter defaultCenter] postNotification:testLockStatusNotification];
+ });
+
+ it(@"should present the lock screen if not already presented", ^{
+ expect(fakePresenter.presented).to(beTrue());
+ });
+ });
+
+ context(@"receiving a lock screen status of off", ^{
+ beforeEach(^{
+ testStatus.lockScreenStatus = SDLLockScreenStatusOff;
+ testLockStatusNotification = [[SDLRPCNotificationNotification alloc] initWithName:SDLDidChangeLockScreenStatusNotification object:nil rpcNotification:testStatus];
+
+ [[NSNotificationCenter defaultCenter] postNotification:testLockStatusNotification];
+ });
+
+ it(@"should present the lock screen if not already presented", ^{
+ expect(fakePresenter.presented).to(beTrue());
+ });
+ });
+ });
+
describe(@"A lock screen status of OPTIONAL", ^{
__block SDLLockScreenManager *testLockScreenManager = nil;
__block SDLLockScreenConfiguration *testLockScreenConfig = nil;
@@ -370,7 +421,10 @@ describe(@"a lock screen manager", ^{
context(@"showInOptionalState is true", ^{
beforeEach(^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
testLockScreenConfig.showInOptionalState = true;
+#pragma clang diagnostic pop
testLockScreenManager = [[SDLLockScreenManager alloc] initWithConfiguration:testLockScreenConfig notificationDispatcher:nil presenter:mockViewControllerPresenter];
@@ -389,7 +443,10 @@ describe(@"a lock screen manager", ^{
context(@"showInOptionalState is false", ^{
beforeEach(^{
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
testLockScreenConfig.showInOptionalState = false;
+#pragma clang diagnostic pop
testLockScreenManager = [[SDLLockScreenManager alloc] initWithConfiguration:testLockScreenConfig notificationDispatcher:nil presenter:mockViewControllerPresenter];
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m
index ba91df0d6..db6217e02 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLMenuManagerSpec.m
@@ -168,7 +168,10 @@ describe(@"menu manager", ^{
testRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init];
testRegisterAppInterfaceResponse.success = @YES;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
testRegisterAppInterfaceResponse.displayCapabilities = testDisplayCapabilities;
+#pragma clang diagnostic pop
SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveSetDisplayLayoutResponse object:self rpcResponse:testRegisterAppInterfaceResponse];
[[NSNotificationCenter defaultCenter] postNotification:notification];
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingAudioLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingAudioLifecycleManagerSpec.m
index dd445714e..c8d9a9301 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingAudioLifecycleManagerSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingAudioLifecycleManagerSpec.m
@@ -92,7 +92,10 @@ describe(@"the streaming audio manager", ^{
someDisplayCapabilities.screenParams = someScreenParams;
someRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
someRegisterAppInterfaceResponse.displayCapabilities = someDisplayCapabilities;
+#pragma clang diagnostic pop
SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:someRegisterAppInterfaceResponse];
[[NSNotificationCenter defaultCenter] postNotification:notification];
@@ -112,7 +115,10 @@ describe(@"the streaming audio manager", ^{
someDisplayCapabilities.screenParams = someScreenParams;
someRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
someRegisterAppInterfaceResponse.displayCapabilities = someDisplayCapabilities;
+#pragma clang diagnostic pop
SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:someRegisterAppInterfaceResponse];
[[NSNotificationCenter defaultCenter] postNotification:notification];
diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
index 31737c214..6dd0b2c2e 100644
--- a/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
+++ b/SmartDeviceLinkTests/DevAPISpecs/SDLStreamingVideoLifecycleManagerSpec.m
@@ -149,7 +149,10 @@ describe(@"the streaming video manager", ^{
someDisplayCapabilities.screenParams = someScreenParams;
someRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
someRegisterAppInterfaceResponse.displayCapabilities = someDisplayCapabilities;
+#pragma clang diagnostic pop
SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:someRegisterAppInterfaceResponse];
[[NSNotificationCenter defaultCenter] postNotification:notification];
@@ -169,7 +172,10 @@ describe(@"the streaming video manager", ^{
someDisplayCapabilities.screenParams = someScreenParams;
someRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
someRegisterAppInterfaceResponse.displayCapabilities = someDisplayCapabilities;
+#pragma clang diagnostic pop
SDLRPCResponseNotification *notification = [[SDLRPCResponseNotification alloc] initWithName:SDLDidReceiveRegisterAppInterfaceResponse object:self rpcResponse:someRegisterAppInterfaceResponse];
[[NSNotificationCenter defaultCenter] postNotification:notification];
diff --git a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m
index 6ae21e4cb..277ccd7f2 100644
--- a/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m
+++ b/SmartDeviceLinkTests/ProtocolSpecs/SDLFunctionIDSpec.m
@@ -68,6 +68,8 @@ describe(@"GetFunctionName Tests", ^ {
expect([functionID functionNameForId:53]).to(equal(SDLRPCFunctionNameGetAppServiceData));
expect([functionID functionNameForId:54]).to(equal(SDLRPCFunctionNameGetFile));
expect([functionID functionNameForId:55]).to(equal(SDLRPCFunctionNamePerformAppServiceInteraction));
+ expect([functionID functionNameForId:60]).to(equal(SDLRPCFunctionNameCreateWindow));
+ expect([functionID functionNameForId:61]).to(equal(SDLRPCFunctionNameDeleteWindow));
expect([functionID functionNameForId:32768]).to(equal(SDLRPCFunctionNameOnHMIStatus));
expect([functionID functionNameForId:32769]).to(equal(SDLRPCFunctionNameOnAppInterfaceUnregistered));
expect([functionID functionNameForId:32770]).to(equal(SDLRPCFunctionNameOnButtonEvent));
@@ -176,7 +178,8 @@ describe(@"GetFunctionID Tests", ^ {
expect([functionID functionIdForName:SDLRPCFunctionNameOnEncodedSyncPData]).to(equal(@98304));
expect([functionID functionIdForName:SDLRPCFunctionNameOnSyncPData]).to(equal(@98305));
-
+ expect([functionID functionIdForName:SDLRPCFunctionNameCreateWindow]).to(equal(@60));
+ expect([functionID functionIdForName:SDLRPCFunctionNameDeleteWindow]).to(equal(@61));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m
index 34d2c4fb6..ecdf7bece 100644
--- a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLGlobalProperySpec.m
@@ -21,6 +21,7 @@ describe(@"Individual Enum Value Tests", ^ {
expect(SDLGlobalPropertyMenuName).to(equal(@"MENUNAME"));
expect(SDLGlobalPropertyMenuIcon).to(equal(@"MENUICON"));
expect(SDLGlobalPropertyKeyboard).to(equal(@"KEYBOARDPROPERTIES"));
+ expect(SDLGlobalPropertyUserLocation).to(equal(@"USER_LOCATION"));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedWindowsSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedWindowsSpec.m
new file mode 100644
index 000000000..28efd0724
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLPredefinedWindowsSpec.m
@@ -0,0 +1,18 @@
+//
+// SDLPredefinedWindowsSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+#import "SDLPredefinedWindows.h"
+
+QuickSpecBegin(SDLPredefinedWindowsSpec)
+
+describe(@"Individual Enum Value Tests", ^ {
+ it(@"Should match internal values", ^ {
+ expect(@(SDLPredefinedWindowsDefaultWindow)).to(equal(0));
+ expect(@(SDLPredefinedWindowsPrimaryWidget)).to(equal(1));
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWindowTypeSpec.m b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWindowTypeSpec.m
new file mode 100644
index 000000000..58e591013
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/EnumSpecs/SDLWindowTypeSpec.m
@@ -0,0 +1,19 @@
+//
+// SDLWindowTypeSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+#import "SDLWindowType.h"
+
+QuickSpecBegin(SDLWindowTypeSpec)
+
+describe(@"Individual Enum Value Tests", ^ {
+ it(@"Should match internal values", ^ {
+ expect(SDLWindowTypeMain).to(equal(@"MAIN"));
+ expect(SDLWindowTypeWidget).to(equal(@"WIDGET"));
+ });
+});
+
+QuickSpecEnd
+
diff --git a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m
index d835c5f9b..c2f9afbf2 100644
--- a/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/NotificationSpecs/SDLOnVehicleDataSpec.m
@@ -46,7 +46,7 @@ describe(@"Getter/Setter Tests", ^ {
cloudAppVehicleID = @"testCloudAppVehicleID";
});
- it(@"Should set and get correctly", ^ {
+ it(@"should correctly initialize with init", ^ {
SDLOnVehicleData* testNotification = [[SDLOnVehicleData alloc] init];
testNotification.accPedalPosition = @99.99999999;
@@ -217,6 +217,15 @@ describe(@"Getter/Setter Tests", ^ {
expect(testNotification.vin).to(beNil());
expect(testNotification.wiperStatus).to(beNil());
});
+
+ it(@"Should set and get generic Network Signal Data", ^{
+ SDLOnVehicleData *testRequest = [[SDLOnVehicleData alloc] init];
+
+ [testRequest setOEMCustomVehicleData:@"customVehicleData" withVehicleDataState:@"oemVehicleData"];
+
+ expect([testRequest getOEMCustomVehicleData:@"customVehicleData"]).to(equal(@"oemVehicleData"));
+
+ });
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m
index 648d4cbc9..f4c4c8a75 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLButtonPressSpec.m
@@ -22,10 +22,12 @@ describe(@"Getter/Setter Tests", ^ {
SDLButtonPress* testRequest = [[SDLButtonPress alloc] init];
testRequest.moduleType = SDLModuleTypeClimate;
+ testRequest.moduleId = @"123";
testRequest.buttonName = SDLButtonNameAC;
testRequest.buttonPressMode = SDLButtonPressModeShort;
expect(testRequest.moduleType).to(equal(SDLModuleTypeClimate));
+ expect(testRequest.moduleId).to(equal(@"123"));
expect(testRequest.buttonName).to(equal(SDLButtonNameAC));
expect(testRequest.buttonPressMode).to(equal(SDLButtonPressModeShort));
@@ -36,7 +38,9 @@ describe(@"Getter/Setter Tests", ^ {
@{SDLRPCParameterNameParameters:
@{SDLRPCParameterNameModuleType : SDLModuleTypeClimate,
SDLRPCParameterNameButtonName : SDLButtonNameAC,
- SDLRPCParameterNameButtonPressMode : SDLButtonPressModeShort},
+ SDLRPCParameterNameButtonPressMode : SDLButtonPressModeShort,
+ SDLRPCParameterNameModuleId:@"123"
+ },
SDLRPCParameterNameOperationName:SDLRPCFunctionNameButtonPress}} mutableCopy];
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -44,6 +48,7 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testRequest.moduleType).to(equal(SDLModuleTypeClimate));
+ expect(testRequest.moduleId).to(equal(@"123"));
expect(testRequest.buttonName).to(equal(SDLButtonNameAC));
expect(testRequest.buttonPressMode).to(equal(SDLButtonPressModeShort));
});
@@ -53,12 +58,14 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.buttonName).to(equal(SDLButtonNameAC));
expect(testRequest.moduleType).to(equal(SDLModuleTypeClimate));
+ expect(testRequest.moduleId).to(beNil());
});
it(@"Should return nil if not set", ^ {
SDLButtonPress* testRequest = [[SDLButtonPress alloc] init];
expect(testRequest.moduleType).to(beNil());
+ expect(testRequest.moduleId).to(beNil());
expect(testRequest.buttonName).to(beNil());
expect(testRequest.buttonPressMode).to(beNil());
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateWindowSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateWindowSpec.m
new file mode 100644
index 000000000..c1698c380
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLCreateWindowSpec.m
@@ -0,0 +1,65 @@
+//
+// SDLCreateWindowSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLCreateWindow.h"
+#import "SDLWindowType.h"
+#import "SDLPredefinedWindows.h"
+
+QuickSpecBegin(SDLCreateWindowSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block SDLWindowType testWindowType = nil;
+ __block NSString *testAssociatedServiceType = nil;
+ __block NSString *testWindowName = nil;
+ __block SDLPredefinedWindows testWindowID;
+ __block NSUInteger testDuplicateUpdatesFromWindowID = 8;
+
+
+ beforeEach(^{
+ testWindowID = SDLPredefinedWindowsDefaultWindow;
+ testWindowType = SDLWindowTypeMain;
+ testAssociatedServiceType = @"SDLWINDOW";
+ testWindowName = @"MAINWINDOW";
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLCreateWindow *testRPC = [[SDLCreateWindow alloc] init];
+ testRPC.windowID = @(testWindowID);
+ testRPC.windowName = testWindowName;
+ testRPC.type = testWindowType;
+ testRPC.associatedServiceType = testAssociatedServiceType;
+ testRPC.duplicateUpdatesFromWindowID = @(testDuplicateUpdatesFromWindowID);
+
+ expect(testRPC.windowID).to(equal(testWindowID));
+ expect(testRPC.windowName).to(equal(testWindowName));
+ expect(testRPC.type).to(equal(testWindowType));
+ expect(testRPC.associatedServiceType).to(equal(testAssociatedServiceType));
+ expect(testRPC.duplicateUpdatesFromWindowID).to(equal(testDuplicateUpdatesFromWindowID));
+ });
+
+ it(@"Should create correctrly", ^ {
+ SDLCreateWindow *testRPC = [[SDLCreateWindow alloc] initWithId: (int)testWindowID windowName:testWindowName windowType:testWindowType];
+
+ expect(testRPC.windowID).to(equal(testWindowID));
+ expect(testRPC.windowName).to(equal(testWindowName));
+ expect(testRPC.type).to(equal(testWindowType));
+ expect(testRPC.associatedServiceType).to(beNil());
+ expect(testRPC.duplicateUpdatesFromWindowID).to(beNil());
+ });
+
+ it(@"Should create correctrly", ^ {
+ SDLCreateWindow *testRPC = [[SDLCreateWindow alloc] initWithId:(int)testWindowID windowName:testWindowName windowType:testWindowType associatedServiceType:testAssociatedServiceType duplicateUpdatesFromWindowID:testDuplicateUpdatesFromWindowID];
+
+ expect(testRPC.windowID).to(equal(testWindowID));
+ expect(testRPC.windowName).to(equal(testWindowName));
+ expect(testRPC.type).to(equal(testWindowType));
+ expect(testRPC.associatedServiceType).to(equal(testAssociatedServiceType));
+ expect(testRPC.duplicateUpdatesFromWindowID).to(equal(testDuplicateUpdatesFromWindowID));
+ });
+
+});
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteWindowSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteWindowSpec.m
new file mode 100644
index 000000000..d1f6c2877
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLDeleteWindowSpec.m
@@ -0,0 +1,32 @@
+//
+// SDLDeleteWindowSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLDeleteWindow.h"
+
+QuickSpecBegin(SDLDeleteWindowSpec)
+
+
+describe(@"Getter/Setter Tests", ^ {
+ __block NSUInteger testWindowID = 4;
+
+ it(@"Should set and get correctly", ^ {
+ SDLDeleteWindow *testRPC = [[SDLDeleteWindow alloc] init];
+ testRPC.windowID = @(testWindowID);
+
+ expect(testRPC.windowID).to(equal(testWindowID));
+ });
+
+ it(@"Should create correctrly", ^ {
+ SDLDeleteWindow *testRPC = [[SDLDeleteWindow alloc] initWithId:testWindowID];
+
+ expect(testRPC.windowID).to(equal(testWindowID));
+ });
+
+
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataConsentSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataConsentSpec.m
new file mode 100644
index 000000000..bc9d19774
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataConsentSpec.m
@@ -0,0 +1,61 @@
+//
+// SDLGetInteriorVehicleDataConsentSpec.m
+// SmartDeviceLinkTests
+//
+// Created by standa1 on 7/29/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLGetInteriorVehicleDataConsent.h"
+#import "SDLModuleType.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+QuickSpecBegin(SDLGetInteriorVehicleDataConsentSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ it(@"Should set and get correctly", ^ {
+ SDLGetInteriorVehicleDataConsent *testRequest = [[SDLGetInteriorVehicleDataConsent alloc] init];
+ testRequest.moduleType = SDLModuleTypeRadio;
+ testRequest.moduleIds = @[@"123", @"456"];
+
+ expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
+ expect(testRequest.moduleIds).to(equal(@[@"123", @"456"]));
+ });
+
+ it(@"Should get correctly when initialized with a dictionary", ^ {
+ NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest:
+ @{SDLRPCParameterNameParameters:
+ @{SDLRPCParameterNameModuleType : SDLModuleTypeRadio,
+ SDLRPCParameterNameModuleIds: @[@"123", @"456"]},
+ SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetInteriorVehicleData}} mutableCopy];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLGetInteriorVehicleDataConsent *testRequest = [[SDLGetInteriorVehicleDataConsent alloc] initWithDictionary:dict];
+#pragma clang diagnostic pop
+
+ expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
+ expect(testRequest.moduleIds).to(equal(@[@"123", @"456"]));
+ });
+
+ it(@"Should get correctly when initialized with module type and module ids", ^ {
+ SDLGetInteriorVehicleDataConsent *testRequest = [[SDLGetInteriorVehicleDataConsent alloc] initWithModuleType:SDLModuleTypeRadio moduleIds:@[@"123", @"456"]];
+
+ expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
+ expect(testRequest.moduleIds).to(equal(@[@"123", @"456"]));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLGetInteriorVehicleDataConsent *testRequest = [[SDLGetInteriorVehicleDataConsent alloc] init];
+
+ expect(testRequest.moduleType).to(beNil());
+ expect(testRequest.moduleIds).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m
index d3ed4c409..9801a0e1d 100755
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetInteriorVehicleDataSpec.m
@@ -20,15 +20,18 @@ describe(@"Getter/Setter Tests", ^ {
SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] init];
testRequest.moduleType = SDLModuleTypeRadio;
testRequest.subscribe = @YES;
+ testRequest.moduleId = @"123";
expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
expect(testRequest.subscribe).to(equal(@YES));
+ expect(testRequest.moduleId).to(equal(@"123"));
});
it(@"Should get correctly when initialized with a dictionary", ^ {
NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest:
@{SDLRPCParameterNameParameters:
@{SDLRPCParameterNameModuleType : SDLModuleTypeRadio,
+ SDLRPCParameterNameModuleId: @"123",
SDLRPCParameterNameSubscribe : @YES},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetInteriorVehicleData}} mutableCopy];
#pragma clang diagnostic push
@@ -38,12 +41,14 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
expect(testRequest.subscribe).to(equal(@YES));
+ expect(testRequest.moduleId).to(equal(@"123"));
});
it(@"Should get correctly when initialized with module type", ^ {
SDLGetInteriorVehicleData* testRequest = [[SDLGetInteriorVehicleData alloc] initWithModuleType:SDLModuleTypeRadio];
expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
+ expect(testRequest.moduleId).to(beNil());
});
it(@"Should get correctly when initialized with module type and subscribe", ^ {
@@ -51,6 +56,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
expect(testRequest.subscribe).to(equal(@YES));
+ expect(testRequest.moduleId).to(beNil());
});
it(@"Should get correctly when initialized with module type and unsubscribe", ^ {
@@ -58,6 +64,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
expect(testRequest.subscribe).to(equal(@NO));
+ expect(testRequest.moduleId).to(beNil());
});
@@ -66,6 +73,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.moduleType).to(beNil());
expect(testRequest.subscribe).to(beNil());
+ expect(testRequest.moduleId).to(beNil());
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m
index eab7f6210..bcf32d76c 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLGetVehicleDataSpec.m
@@ -290,6 +290,18 @@ describe(@"initializers", ^{
expect(testRequest.turnSignal).to(equal(@YES));
expect(testRequest.wiperStatus).to(equal(@YES));
});
+
+ context(@"Should set and get Generic Network Signal Data", ^{
+ SDLGetVehicleData *testRequest = [[SDLGetVehicleData alloc] init];
+
+ [testRequest setOEMCustomVehicleData:@"OEMCustomVehicleData" withVehicleDataState:NO];
+ [testRequest setOEMCustomVehicleData:@"OEMCustomVehicleData1" withVehicleDataState:YES];
+
+ expect([testRequest getOEMCustomVehicleData:@"OEMCustomVehicleData"]).to(beFalse());
+ expect([testRequest getOEMCustomVehicleData:@"OEMCustomVehicleData1"]).to(beTrue());
+
+ });
+
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReleaseInteriorVehicleDataModuleSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReleaseInteriorVehicleDataModuleSpec.m
new file mode 100644
index 000000000..6f98c4f28
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLReleaseInteriorVehicleDataModuleSpec.m
@@ -0,0 +1,61 @@
+//
+// SDLReleaseInteriorVehicleDataModuleSpec.m
+// SmartDeviceLinkTests
+//
+// Created by standa1 on 7/29/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLReleaseInteriorVehicleDataModule.h"
+#import "SDLModuleType.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+QuickSpecBegin(SDLReleaseInteriorVehicleDataModuleSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ it(@"Should set and get correctly", ^ {
+ SDLReleaseInteriorVehicleDataModule *testRequest = [[SDLReleaseInteriorVehicleDataModule alloc] init];
+ testRequest.moduleType = SDLModuleTypeRadio;
+ testRequest.moduleId = @"123";
+
+ expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
+ expect(testRequest.moduleId).to(equal(@"123"));
+ });
+
+ it(@"Should get correctly when initialized with a dictionary", ^ {
+ NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameRequest:
+ @{SDLRPCParameterNameParameters:
+ @{SDLRPCParameterNameModuleType: SDLModuleTypeRadio,
+ SDLRPCParameterNameModuleId: @"123"},
+ SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetInteriorVehicleData}} mutableCopy];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLReleaseInteriorVehicleDataModule *testRequest = [[SDLReleaseInteriorVehicleDataModule alloc] initWithDictionary:dict];
+#pragma clang diagnostic pop
+
+ expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
+ expect(testRequest.moduleId).to(equal(@"123"));
+ });
+
+ it(@"Should get correctly when initialized with module type and module ids", ^ {
+ SDLReleaseInteriorVehicleDataModule *testRequest = [[SDLReleaseInteriorVehicleDataModule alloc] initWithModuleType:SDLModuleTypeRadio moduleId:@"123"];
+
+ expect(testRequest.moduleType).to(equal(SDLModuleTypeRadio));
+ expect(testRequest.moduleId).to(equal(@"123"));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLReleaseInteriorVehicleDataModule *testRequest = [[SDLReleaseInteriorVehicleDataModule alloc] init];
+
+ expect(testRequest.moduleType).to(beNil());
+ expect(testRequest.moduleId).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m
index b12672582..e875e411c 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSetGlobalPropertiesSpec.m
@@ -15,6 +15,7 @@
#import "SDLSetGlobalProperties.h"
#import "SDLTTSChunk.h"
#import "SDLVrHelpItem.h"
+#import "SDLSeatLocation.h"
QuickSpecBegin(SDLSetGlobalPropertiesSpec)
@@ -24,6 +25,7 @@ SDLTTSChunk* chunk2 = [[SDLTTSChunk alloc] init];
SDLVRHelpItem* help = [[SDLVRHelpItem alloc] init];
SDLImage* image = [[SDLImage alloc] init];
SDLKeyboardProperties* keyboard = [[SDLKeyboardProperties alloc] init];
+SDLSeatLocation *seatLocation = [[SDLSeatLocation alloc] init];
describe(@"Getter/Setter Tests", ^ {
it(@"Should set and get correctly", ^ {
@@ -36,6 +38,7 @@ describe(@"Getter/Setter Tests", ^ {
testRequest.menuTitle = @"TheNewMenu";
testRequest.menuIcon = image;
testRequest.keyboardProperties = keyboard;
+ testRequest.userLocation = seatLocation;
expect(testRequest.helpPrompt).to(equal([@[chunk1] mutableCopy]));
expect(testRequest.timeoutPrompt).to(equal([@[chunk2] mutableCopy]));
@@ -44,6 +47,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.menuTitle).to(equal(@"TheNewMenu"));
expect(testRequest.menuIcon).to(equal(image));
expect(testRequest.keyboardProperties).to(equal(keyboard));
+ expect(testRequest.userLocation).to(equal(seatLocation));
});
it(@"Should get correctly when initialized", ^ {
@@ -54,6 +58,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLRPCParameterNameVRHelpTitle:@"vr",
SDLRPCParameterNameVRHelp:[@[help] mutableCopy],
SDLRPCParameterNameMenuTitle:@"TheNewMenu",
+ SDLRPCParameterNameUserLocation: seatLocation,
SDLRPCParameterNameMenuIcon:image,
SDLRPCParameterNameKeyboardProperties:keyboard},
SDLRPCParameterNameOperationName:SDLRPCFunctionNameSetGlobalProperties}} mutableCopy];
@@ -69,6 +74,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.menuTitle).to(equal(@"TheNewMenu"));
expect(testRequest.menuIcon).to(equal(image));
expect(testRequest.keyboardProperties).to(equal(keyboard));
+ expect(testRequest.userLocation).to(equal(seatLocation));
});
it(@"Should return nil if not set", ^ {
@@ -81,6 +87,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testRequest.menuTitle).to(beNil());
expect(testRequest.menuIcon).to(beNil());
expect(testRequest.keyboardProperties).to(beNil());
+ expect(testRequest.userLocation).to(beNil());
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m
index b4d677936..b69336d23 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLSubscribeVehicleDataSpec.m
@@ -290,6 +290,17 @@ describe(@"initializers", ^{
expect(testRequest.wiperStatus).to(equal(@YES));
#pragma clang diagnostic pop
});
+
+ context(@"Should set and get Generic Network Signal Data", ^{
+ SDLSubscribeVehicleData *testRequest = [[SDLSubscribeVehicleData alloc] init];
+
+ [testRequest setOEMCustomVehicleData:@"customVehicleData" withVehicleDataState:NO];
+ [testRequest setOEMCustomVehicleData:@"customVehicleData1" withVehicleDataState:YES];
+
+ expect([testRequest getOEMCustomVehicleData:@"customVehicleData"]).to(beFalse());
+ expect([testRequest getOEMCustomVehicleData:@"customVehicleData1"]).to(beTrue());
+
+ });
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m
index adb9307bd..9795f6a29 100644
--- a/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/RequestSpecs/SDLUnsubscribeVehicleDataSpec.m
@@ -288,6 +288,17 @@ describe(@"initializers", ^{
expect(testRequest.wiperStatus).to(equal(@YES));
#pragma clang diagnostic pop
});
+
+ context(@"Should set and get Generic Network Signal Data", ^{
+ SDLUnsubscribeVehicleData *testRequest = [[SDLUnsubscribeVehicleData alloc] init];
+
+ [testRequest setOEMCustomVehicleData:@"customVehicleData" withVehicleDataState:NO];
+ [testRequest setOEMCustomVehicleData:@"customVehicleData1" withVehicleDataState:YES];
+
+ expect([testRequest getOEMCustomVehicleData:@"customVehicleData"]).to(beFalse());
+ expect([testRequest getOEMCustomVehicleData:@"customVehicleData1"]).to(beTrue());
+
+ });
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateWindowResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateWindowResponseSpec.m
new file mode 100644
index 000000000..c51268106
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLCreateWindowResponseSpec.m
@@ -0,0 +1,12 @@
+//
+// SDLCreateWindowResponseSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLCreateWindowResponse.h"
+
+QuickSpecBegin(SDLCreateWindowResponseSpec)
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteWindowResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteWindowResponseSpec.m
new file mode 100644
index 000000000..61ee2e374
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLDeleteWindowResponseSpec.m
@@ -0,0 +1,12 @@
+//
+// SDLDeleteWindowResponseSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLDeleteWindowResponse.h"
+
+QuickSpecBegin(SDLDeleteWindowResponseSpec)
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataConsentResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataConsentResponseSpec.m
new file mode 100644
index 000000000..479220441
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetInteriorVehicleDataConsentResponseSpec.m
@@ -0,0 +1,58 @@
+//
+// SDLGetInteriorVehicleDataConsent.m
+// SmartDeviceLinkTests
+//
+// Created by standa1 on 7/29/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLGetInteriorVehicleDataConsentResponse.h"
+#import "SDLModuleData.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLRPCFunctionNames.h"
+
+QuickSpecBegin(SDLGetInteriorVehicleDataConsentResponseSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block NSArray<NSNumber<SDLBool> *> *allowed = nil;
+
+ beforeEach(^{
+ allowed = @[@YES, @NO];
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLGetInteriorVehicleDataConsentResponse *testResponse = [[SDLGetInteriorVehicleDataConsentResponse alloc] init];
+
+ testResponse.allowed = allowed;
+
+ expect(testResponse.allowed).to(equal(allowed));
+ });
+
+
+
+ it(@"Should get correctly when initialized", ^ {
+ NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameResponse:
+ @{SDLRPCParameterNameParameters:
+ @{SDLRPCParameterNameAllowed:allowed},
+ SDLRPCParameterNameOperationName:SDLRPCFunctionNameGetInteriorVehicleData}} mutableCopy];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLGetInteriorVehicleDataConsentResponse *testResponse = [[SDLGetInteriorVehicleDataConsentResponse alloc] initWithDictionary:dict];
+#pragma clang diagnostic pop
+
+ expect(testResponse.allowed).to(equal(allowed));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLGetInteriorVehicleDataConsentResponse *testResponse = [[SDLGetInteriorVehicleDataConsentResponse alloc] init];
+
+ expect(testResponse.allowed).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m
index ed1db8343..72df4207b 100644
--- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLGetVehicleDataResponseSpec.m
@@ -220,6 +220,14 @@ describe(@"Getter/Setter Tests", ^ {
expect(testResponse.vin).to(beNil());
expect(testResponse.wiperStatus).to(beNil());
});
+
+ it(@"Should set and get Generic Network Signal Data", ^{
+ SDLGetVehicleDataResponse *testRequest = [[SDLGetVehicleDataResponse alloc] init];
+
+ [testRequest setOEMCustomVehicleData:@"customVehicleData" withVehicleDataState:@"oemVehicleData"];
+
+ expect([testRequest getOEMCustomVehicleData:@"customVehicleData"]).to(equal(@"oemVehicleData"));
+ });
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m
index 7d03501a5..16eb19315 100644
--- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLRegisterAppInterfaceResponseSpec.m
@@ -37,10 +37,13 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
testResponse.language = SDLLanguageEsMx;
testResponse.hmiDisplayLanguage = SDLLanguageRuRu;
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
testResponse.displayCapabilities = info;
testResponse.buttonCapabilities = @[button];
testResponse.softButtonCapabilities = @[softButton];
testResponse.presetBankCapabilities = presetBank;
+#pragma clang diagnostic pop
testResponse.hmiZoneCapabilities = @[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront];
testResponse.speechCapabilities = @[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence];
testResponse.vrCapabilities = @[SDLVRCapabilitiesText];
@@ -61,10 +64,13 @@ describe(@"Getter/Setter Tests", ^ {
expect(testResponse.sdlMsgVersion).to(equal(sdlVersion));
expect(testResponse.language).to(equal(SDLLanguageEsMx));
expect(testResponse.hmiDisplayLanguage).to(equal(SDLLanguageRuRu));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
expect(testResponse.displayCapabilities).to(equal(info));
expect(testResponse.buttonCapabilities).to(equal(@[button]));
expect(testResponse.softButtonCapabilities).to(equal(@[softButton]));
expect(testResponse.presetBankCapabilities).to(equal(presetBank));
+#pragma clang diagnostic pop
expect(testResponse.hmiZoneCapabilities).to(equal(@[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront]));
expect(testResponse.speechCapabilities).to(equal(@[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence]));
expect(testResponse.vrCapabilities).to(equal(@[SDLVRCapabilitiesText]));
@@ -124,10 +130,15 @@ describe(@"Getter/Setter Tests", ^ {
expect(testResponse.sdlMsgVersion).to(equal([[SDLMsgVersion alloc] initWithMajorVersion:6 minorVersion:0 patchVersion:0]));
expect(testResponse.language).to(equal(SDLLanguageEsMx));
expect(testResponse.hmiDisplayLanguage).to(equal(SDLLanguageRuRu));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
expect(testResponse.displayCapabilities).to(equal(info));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
expect(testResponse.buttonCapabilities).to(equal(@[button]));
expect(testResponse.softButtonCapabilities).to(equal(@[softButton]));
expect(testResponse.presetBankCapabilities).to(equal(presetBank));
+#pragma clang diagnostic pop
expect(testResponse.hmiZoneCapabilities).to(equal(@[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront]));
expect(testResponse.speechCapabilities).to(equal(@[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence]));
expect(testResponse.vrCapabilities).to(equal(@[SDLVRCapabilitiesText]));
@@ -154,10 +165,13 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testResponse.language).to(equal(SDLLanguageEsMx));
expect(testResponse.hmiDisplayLanguage).to(equal(SDLLanguageRuRu));
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
expect(testResponse.displayCapabilities).to(equal(info));
expect(testResponse.buttonCapabilities).to(equal(@[button]));
expect(testResponse.softButtonCapabilities).to(equal(@[softButton]));
expect(testResponse.presetBankCapabilities).to(equal(presetBank));
+#pragma clang diagnostic pop
expect(testResponse.hmiZoneCapabilities).to(equal(@[SDLHMIZoneCapabilitiesBack, SDLHMIZoneCapabilitiesFront]));
expect(testResponse.speechCapabilities).to(equal(@[SDLSpeechCapabilitiesSAPIPhonemes, SDLSpeechCapabilitiesSilence]));
expect(testResponse.vrCapabilities).to(equal(@[SDLVRCapabilitiesText]));
@@ -182,10 +196,13 @@ describe(@"Getter/Setter Tests", ^ {
expect(testResponse.sdlMsgVersion).to(beNil());
expect(testResponse.language).to(beNil());
expect(testResponse.hmiDisplayLanguage).to(beNil());
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
expect(testResponse.displayCapabilities).to(beNil());
expect(testResponse.buttonCapabilities).to(beNil());
expect(testResponse.softButtonCapabilities).to(beNil());
expect(testResponse.presetBankCapabilities).to(beNil());
+#pragma clang diagnostic pop
expect(testResponse.hmiZoneCapabilities).to(beNil());
expect(testResponse.speechCapabilities).to(beNil());
expect(testResponse.vrCapabilities).to(beNil());
@@ -236,10 +253,13 @@ describe(@"Getter/Setter Tests", ^ {
expectAction(^{ [testResponse sdlMsgVersion]; }).to(raiseException());
expectAction(^{ [testResponse language]; }).to(raiseException());
expectAction(^{ [testResponse hmiDisplayLanguage]; }).to(raiseException());
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
expectAction(^{ [testResponse displayCapabilities]; }).to(raiseException());
expectAction(^{ [testResponse buttonCapabilities]; }).to(raiseException());
expectAction(^{ [testResponse softButtonCapabilities]; }).to(raiseException());
expectAction(^{ [testResponse presetBankCapabilities]; }).to(raiseException());
+#pragma clang diagnostic pop
expectAction(^{ [testResponse hmiZoneCapabilities]; }).to(raiseException());
expectAction(^{ [testResponse speechCapabilities]; }).to(raiseException());
expectAction(^{ [testResponse vrCapabilities]; }).to(raiseException());
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReleaseInteriorVehicleDataModuleResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReleaseInteriorVehicleDataModuleResponseSpec.m
new file mode 100644
index 000000000..463f6c6fd
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLReleaseInteriorVehicleDataModuleResponseSpec.m
@@ -0,0 +1,19 @@
+//
+// SDLReleaseInteriorVehicleDataModuleResponseSpec.m
+// SmartDeviceLinkTests
+//
+// Created by standa1 on 7/29/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLReleaseInteriorVehicleDataModuleResponse.h"
+#import "SDLRPCParameterNames.h"
+
+QuickSpecBegin(SDLReleaseInteriorVehicleDataModuleResponseSpec)
+
+QuickSpecEnd
+
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m
index 6b1f4303b..1b8dc5b6d 100644
--- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLSubscribeVehicleDataResponseSpec.m
@@ -12,11 +12,14 @@
#import "SDLRPCFunctionNames.h"
#import "SDLSubscribeVehicleDataResponse.h"
#import "SDLVehicleDataResult.h"
+#import "SDLVehicleDataResultCode.h"
QuickSpecBegin(SDLSubscribeVehicleDataResponseSpec)
SDLVehicleDataResult* vehicleDataResult = [[SDLVehicleDataResult alloc] init];
+SDLVehicleDataResult* customOEMvehicleDataResult = [[SDLVehicleDataResult alloc] initWithCustomOEMDataType:@"customOEMVehicleData" resultCode:SDLVehicleDataResultCodeSuccess];
+
describe(@"Getter/Setter Tests", ^ {
it(@"Should set and get correctly", ^ {
@@ -185,6 +188,14 @@ describe(@"Getter/Setter Tests", ^ {
expect(testResponse.turnSignal).to(beNil());
expect(testResponse.wiperStatus).to(beNil());
});
+
+ it(@"Should set and get Generic Network Signal Data", ^{
+ SDLSubscribeVehicleDataResponse *testRequest = [[SDLSubscribeVehicleDataResponse alloc] init];
+
+ [testRequest setOEMCustomVehicleData:@"customOEMVehicleData" withVehicleDataState:customOEMvehicleDataResult];
+
+ expect([testRequest getOEMCustomVehicleData:@"customOEMVehicleData"]).to(equal(customOEMvehicleDataResult));
+ });
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m
index 8e91afc1d..3f6302e4b 100644
--- a/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/ResponseSpecs/SDLUnsubscribeVehicleDataResponseSpec.m
@@ -12,11 +12,12 @@
#import "SDLRPCParameterNames.h"
#import "SDLRPCFunctionNames.h"
#import "SDLVehicleDataResult.h"
-
+#import "SDLVehicleDataResultCode.h"
QuickSpecBegin(SDLUnsubscribeVehicleDataResponseSpec)
SDLVehicleDataResult* vehicleDataResult = [[SDLVehicleDataResult alloc] init];
+SDLVehicleDataResult* customOEMvehicleDataResult = [[SDLVehicleDataResult alloc] initWithCustomOEMDataType:@"customOEMVehicleData" resultCode:SDLVehicleDataResultCodeSuccess];
describe(@"Getter/Setter Tests", ^ {
it(@"Should set and get correctly", ^ {
@@ -186,6 +187,14 @@ describe(@"Getter/Setter Tests", ^ {
expect(testResponse.turnSignal).to(beNil());
expect(testResponse.cloudAppVehicleID).to(beNil());
});
+
+ it(@"Should set and get Generic Network Signal Data", ^{
+ SDLUnsubscribeVehicleDataResponse *testRequest = [[SDLUnsubscribeVehicleDataResponse alloc] init];
+
+ [testRequest setOEMCustomVehicleData:@"customOEMVehicleData" withVehicleDataState:customOEMvehicleDataResult];
+
+ expect([testRequest getOEMCustomVehicleData:@"customOEMVehicleData"]).to(equal(customOEMvehicleDataResult));
+ });
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m
index d4ba87009..d23b64eba 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLAudioControlCapabilitiesSpec.m
@@ -15,10 +15,28 @@
QuickSpecBegin( SDLAudioControlCapabilitiesSpec)
describe(@"Getter/Setter Tests", ^ {
+ __block SDLModuleInfo *testModuleInfo = nil;
+ __block SDLGrid *testGird = nil;
+
+ beforeEach(^{
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ testModuleInfo = [[SDLModuleInfo alloc] init];
+ testModuleInfo.moduleId = @"123";
+ testModuleInfo.allowMultipleAccess = @YES;
+ testModuleInfo.serviceArea = testGird;
+ testModuleInfo.location = testGird;
+ });
+
it(@"Should set and get correctly", ^ {
SDLAudioControlCapabilities* testStruct = [[SDLAudioControlCapabilities alloc] init];
testStruct.moduleName = @"module";
+ testStruct.moduleInfo = testModuleInfo;
testStruct.sourceAvailable = @(YES);
testStruct.keepContextAvailable = @YES;
testStruct.volumeAvailable = @(NO);
@@ -26,6 +44,7 @@ describe(@"Getter/Setter Tests", ^ {
testStruct.equalizerMaxChannelId = @56;
expect(testStruct.moduleName).to(equal(@"module"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.keepContextAvailable).to(equal(@YES));
expect(testStruct.sourceAvailable).to(equal(@(YES)));
expect(testStruct.volumeAvailable).to(equal(@(NO)));
@@ -34,9 +53,13 @@ describe(@"Getter/Setter Tests", ^ {
});
it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLAudioControlCapabilities* testStruct = [[SDLAudioControlCapabilities alloc] initWithModuleName:@"module"];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"module"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.sourceAvailable).to(beNil());
expect(testStruct.keepContextAvailable).to(beNil());
expect(testStruct.volumeAvailable).to(beNil());
@@ -45,9 +68,40 @@ describe(@"Getter/Setter Tests", ^ {
});
it(@"Should set and get correctly", ^ {
+ SDLAudioControlCapabilities* testStruct = [[SDLAudioControlCapabilities alloc] initWithModuleName:@"module" moduleInfo:testModuleInfo];
+
+ expect(testStruct.moduleName).to(equal(@"module"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
+ expect(testStruct.sourceAvailable).to(beNil());
+ expect(testStruct.keepContextAvailable).to(beNil());
+ expect(testStruct.volumeAvailable).to(beNil());
+ expect(testStruct.equalizerAvailable).to(beNil());
+ expect(testStruct.equalizerMaxChannelId).to(beNil());
+ });
+
+ it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLAudioControlCapabilities* testStruct = [[SDLAudioControlCapabilities alloc] initWithModuleName:@"module" sourceAvailable:@NO keepContextAvailable:@NO volumeAvailable:@YES equalizerAvailable:@NO equalizerMaxChannelID:@34];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"module"));
+ expect(testStruct.moduleInfo).to(beNil());
+ expect(testStruct.sourceAvailable).to(equal(@(NO)));
+ expect(testStruct.keepContextAvailable).to(equal(@NO));
+ expect(testStruct.volumeAvailable).to(equal(@(YES)));
+ expect(testStruct.equalizerAvailable).to(equal(@(NO)));
+ expect(testStruct.equalizerMaxChannelId).to(equal(@34));
+ });
+
+ it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLAudioControlCapabilities* testStruct = [[SDLAudioControlCapabilities alloc] initWithModuleName:@"module" moduleInfo:testModuleInfo sourceAvailable:@NO keepContextAvailable:@NO volumeAvailable:@YES equalizerAvailable:@NO equalizerMaxChannelID:@34];
+#pragma clang diagnostic pop
+
+ expect(testStruct.moduleName).to(equal(@"module"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.sourceAvailable).to(equal(@(NO)));
expect(testStruct.keepContextAvailable).to(equal(@NO));
expect(testStruct.volumeAvailable).to(equal(@(YES)));
@@ -55,8 +109,10 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.equalizerMaxChannelId).to(equal(@34));
});
+
it(@"Should get correctly when initialized", ^ {
NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"module",
+ SDLRPCParameterNameModuleInfo:testModuleInfo,
SDLRPCParameterNameSourceAvailable:@(NO),
SDLRPCParameterNameKeepContextAvailable: @YES,
SDLRPCParameterNameVolumeAvailable:@(YES),
@@ -69,6 +125,7 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"module"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.sourceAvailable).to(equal(@(NO)));
expect(testStruct.keepContextAvailable).to(equal(@YES));
expect(testStruct.volumeAvailable).to(equal(@(YES)));
@@ -81,6 +138,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLAudioControlCapabilities* testStruct = [[SDLAudioControlCapabilities alloc] init];
expect(testStruct.moduleName).to(beNil());
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.sourceAvailable).to(beNil());
expect(testStruct.keepContextAvailable).to(beNil());
expect(testStruct.volumeAvailable).to(beNil());
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m
index f60e67998..eb3f8eea5 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLButtonCapabilitiesSpec.m
@@ -16,6 +16,23 @@
QuickSpecBegin(SDLButtonCapabilitiesSpec)
describe(@"Getter/Setter Tests", ^ {
+ __block SDLModuleInfo *testModuleInfo = nil;
+ __block SDLGrid *testGird = nil;
+
+ beforeEach(^{
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ testModuleInfo = [[SDLModuleInfo alloc] init];
+ testModuleInfo.moduleId = @"123";
+ testModuleInfo.allowMultipleAccess = @YES;
+ testModuleInfo.serviceArea = testGird;
+ testModuleInfo.location = testGird;
+ });
+
it(@"Should set and get correctly", ^ {
SDLButtonCapabilities* testStruct = [[SDLButtonCapabilities alloc] init];
@@ -25,6 +42,7 @@ describe(@"Getter/Setter Tests", ^ {
testStruct.upDownAvailable = @NO;
expect(testStruct.name).to(equal(SDLButtonNameTuneUp));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.shortPressAvailable).to(equal(@YES));
expect(testStruct.longPressAvailable).to(equal(@YES));
expect(testStruct.upDownAvailable).to(equal(@NO));
@@ -32,6 +50,7 @@ describe(@"Getter/Setter Tests", ^ {
it(@"Should get correctly when initialized", ^ {
NSMutableDictionary* dict = [@{SDLRPCParameterNameName:SDLButtonNameCustomButton,
+ SDLRPCParameterNameModuleInfo:testModuleInfo,
SDLRPCParameterNameShortPressAvailable:@YES,
SDLRPCParameterNameLongPressAvailable:@YES,
SDLRPCParameterNameUpDownAvailable:@NO} mutableCopy];
@@ -41,6 +60,7 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testStruct.name).to(equal(SDLButtonNameCustomButton));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.shortPressAvailable).to(equal(@YES));
expect(testStruct.longPressAvailable).to(equal(@YES));
expect(testStruct.upDownAvailable).to(equal(@NO));
@@ -50,6 +70,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLButtonCapabilities* testStruct = [[SDLButtonCapabilities alloc] init];
expect(testStruct.name).to(beNil());
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.shortPressAvailable).to(beNil());
expect(testStruct.longPressAvailable).to(beNil());
expect(testStruct.upDownAvailable).to(beNil());
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m
index 41b919542..ce3b93301 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLClimateControlCapabilitiesSpec.m
@@ -17,10 +17,28 @@
QuickSpecBegin(SDLClimateControlCapabilitiesSpec)
describe(@"Getter/Setter Tests", ^ {
+ __block SDLModuleInfo *testModuleInfo = nil;
+ __block SDLGrid *testGird = nil;
+
+ beforeEach(^{
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ testModuleInfo = [[SDLModuleInfo alloc] init];
+ testModuleInfo.moduleId = @"123";
+ testModuleInfo.allowMultipleAccess = @YES;
+ testModuleInfo.serviceArea = testGird;
+ testModuleInfo.location = testGird;
+ });
+
it(@"Should set and get correctly", ^ {
SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] init];
testStruct.moduleName = @"Name";
+ testStruct.moduleInfo = testModuleInfo;
testStruct.fanSpeedAvailable = @YES;
testStruct.desiredTemperatureAvailable = @NO;
testStruct.acEnableAvailable = @NO;
@@ -39,6 +57,7 @@ describe(@"Getter/Setter Tests", ^ {
testStruct.climateEnableAvailable = @(NO);
expect(testStruct.moduleName).to(equal(@"Name"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.fanSpeedAvailable).to(equal(@YES));
expect(testStruct.desiredTemperatureAvailable).to(equal(@NO));
expect(testStruct.acEnableAvailable).to(equal(@NO));
@@ -60,6 +79,7 @@ describe(@"Getter/Setter Tests", ^ {
it(@"Should get correctly when initialized", ^ {
NSMutableDictionary<NSString *, id> *dict = [@{SDLRPCParameterNameModuleName:@"Name",
+ SDLRPCParameterNameModuleInfo:testModuleInfo,
SDLRPCParameterNameFanSpeedAvailable:@YES,
SDLRPCParameterNameDesiredTemperatureAvailable:@NO,
SDLRPCParameterNameACEnableAvailable:@NO,
@@ -83,6 +103,7 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"Name"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.fanSpeedAvailable).to(equal(@YES));
expect(testStruct.desiredTemperatureAvailable).to(equal(@NO));
expect(testStruct.acEnableAvailable).to(equal(@NO));
@@ -107,6 +128,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] initWithModuleName:@"Name" fanSpeedAvailable:YES desiredTemperatureAvailable:NO acEnableAvailable:NO acMaxEnableAvailable:YES circulateAirAvailable:NO autoModeEnableAvailable:NO dualModeEnableAvailable:NO defrostZoneAvailable:YES ventilationModeAvailable:YES];
expect(testStruct.moduleName).to(equal(@"Name"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.fanSpeedAvailable).to(equal(@YES));
expect(testStruct.desiredTemperatureAvailable).to(equal(@NO));
expect(testStruct.acEnableAvailable).to(equal(@NO));
@@ -128,8 +150,10 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] initWithModuleName:@"Name" fanSpeedAvailable:YES desiredTemperatureAvailable:NO acEnableAvailable:NO acMaxEnableAvailable:YES circulateAirAvailable:NO autoModeEnableAvailable:NO dualModeEnableAvailable:NO defrostZoneAvailable:YES ventilationModeAvailable:YES heatedSteeringWheelAvailable:YES heatedWindshieldAvailable:NO heatedRearWindowAvailable:YES heatedMirrorsAvailable:NO];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"Name"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.fanSpeedAvailable).to(equal(@YES));
expect(testStruct.desiredTemperatureAvailable).to(equal(@NO));
expect(testStruct.acEnableAvailable).to(equal(@NO));
@@ -170,6 +194,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLClimateControlCapabilities* testStruct = [[SDLClimateControlCapabilities alloc] init];
expect(testStruct.moduleName).to(beNil());
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.fanSpeedAvailable).to(beNil());
expect(testStruct.desiredTemperatureAvailable).to(beNil());
expect(testStruct.acEnableAvailable).to(beNil());
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitySpec.m
new file mode 100644
index 000000000..4cd68a799
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLDisplayCapabilitySpec.m
@@ -0,0 +1,90 @@
+//
+// SDLDisplayCapabilitySpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLRPCParameterNames.h"
+#import "SDLWindowTypeCapabilities.h"
+#import "SDLWindowCapability.h"
+#import "SDLDisplayCapability.h"
+#import "SDLTextField.h"
+#import "SDLImageField.h"
+#import "SDLImageType.h"
+#import "SDLButtonCapabilities.h"
+#import "SDLSoftButtonCapabilities.h"
+
+QuickSpecBegin(SDLDisplayCapabilitySpec)
+
+describe(@"Getter/Setter Tests", ^ {
+
+
+ __block SDLWindowCapability* testWindowCapability = nil;
+ __block SDLWindowTypeCapabilities* testWindowTypeCapabilities = nil;
+ __block SDLTextField *testTextField = nil;
+ __block SDLImageField *testImageField = nil;
+ __block SDLButtonCapabilities *testButtonCapabilities = nil;
+ __block SDLSoftButtonCapabilities *testSoftButtonscapabilities = nil;
+ __block SDLImageType testImageType = nil;
+ __block NSString *testDisplayName = nil;
+ __block NSString *testTextName = nil;
+ __block NSString *testImageName = nil;
+ __block int testMaximunNumberOfWindows = 4;
+
+ beforeEach(^{
+ testImageType = SDLImageTypeDynamic;
+ testDisplayName = @"Display Name";
+ testTextName = @"test Text field";
+ testImageName = @"test Image field";
+
+ testWindowTypeCapabilities = [[SDLWindowTypeCapabilities alloc] initWithType:testImageType maximumNumberOfWindows:testMaximunNumberOfWindows];
+
+ testTextField = [[SDLTextField alloc] init];
+ testTextField.name = testTextName;
+
+ testImageField = [[SDLImageField alloc] init];
+ testImageField.name = testImageName;
+
+ testButtonCapabilities = [[SDLButtonCapabilities alloc] init];
+ testButtonCapabilities.name = SDLButtonNameOk;
+ testButtonCapabilities.shortPressAvailable = @YES;
+ testButtonCapabilities.longPressAvailable = @YES;
+ testButtonCapabilities.upDownAvailable = @YES;
+
+ testSoftButtonscapabilities = [[SDLSoftButtonCapabilities alloc] init];
+ testSoftButtonscapabilities.imageSupported = @YES;
+
+ testWindowCapability = [[SDLWindowCapability alloc] init];
+ testWindowCapability.windowID = @444;
+ testWindowCapability.numCustomPresetsAvailable = @10;
+ testWindowCapability.textFields = @[testTextField];
+ testWindowCapability.imageFields = @[testImageField];
+ testWindowCapability.imageTypeSupported = @[testImageType];
+ testWindowCapability.buttonCapabilities = @[testButtonCapabilities];
+ testWindowCapability.softButtonCapabilities = @[testSoftButtonscapabilities];
+
+ });
+
+
+ it(@"Should set and get correctly", ^ {
+ SDLDisplayCapability* testStruct = [[SDLDisplayCapability alloc] init];
+ testStruct.displayName = testDisplayName;
+ testStruct.windowCapabilities = @[testWindowCapability];
+ testStruct.windowTypeSupported = @[testWindowTypeCapabilities];
+
+ expect(testStruct.displayName).to(equal(testDisplayName));
+ expect(testStruct.windowTypeSupported.firstObject.type).to(equal(testImageType));
+ expect(testStruct.windowTypeSupported.firstObject.maximumNumberOfWindows).to(equal(testMaximunNumberOfWindows));
+ expect(testStruct.windowCapabilities.firstObject.windowID).to(equal(444));
+ expect(testStruct.windowCapabilities.firstObject.textFields.firstObject.name).to(equal(testTextName));
+ expect(testStruct.windowCapabilities.firstObject.imageFields.firstObject.name).to(equal(testImageName));
+ expect(testStruct.windowCapabilities.firstObject.numCustomPresetsAvailable).to(equal(@10));
+ expect(testStruct.windowCapabilities.firstObject.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.windowCapabilities.firstObject.buttonCapabilities.firstObject.shortPressAvailable).to(equal(@YES));
+ expect(testStruct.windowCapabilities.firstObject.buttonCapabilities.firstObject.longPressAvailable).to(equal(@YES));
+ expect(testStruct.windowCapabilities.firstObject.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m
index 7b766f176..9906477d4 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLHMISettingsControlCapabilitiesSpec.m
@@ -15,33 +15,83 @@
QuickSpecBegin(SDLHMISettingsControlCapabilitiesSpec)
describe(@"Getter/Setter Tests", ^ {
+ __block SDLModuleInfo *testModuleInfo = nil;
+ __block SDLGrid *testGird = nil;
+
+ beforeEach(^{
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ testModuleInfo = [[SDLModuleInfo alloc] init];
+ testModuleInfo.moduleId = @"123";
+ testModuleInfo.allowMultipleAccess = @YES;
+ testModuleInfo.serviceArea = testGird;
+ testModuleInfo.location = testGird;
+ });
+
it(@"Should set and get correctly", ^ {
SDLHMISettingsControlCapabilities* testStruct = [[SDLHMISettingsControlCapabilities alloc] init];
testStruct.moduleName = @"displayMode";
+ testStruct.moduleInfo = testModuleInfo;
testStruct.distanceUnitAvailable = @(NO);
testStruct.temperatureUnitAvailable = @(NO);
testStruct.displayModeUnitAvailable = @(YES);
expect(testStruct.moduleName).to(equal(@"displayMode"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.distanceUnitAvailable).to(equal(@(NO)));
expect(testStruct.temperatureUnitAvailable).to(equal(@(NO)));
expect(testStruct.displayModeUnitAvailable).to(equal(@(YES)));
});
it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLHMISettingsControlCapabilities* testStruct = [[SDLHMISettingsControlCapabilities alloc] initWithModuleName:@"displayMode"];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"displayMode"));
+ expect(testStruct.moduleInfo).to(beNil());
+ expect(testStruct.distanceUnitAvailable).to(beNil());
+ expect(testStruct.temperatureUnitAvailable).to(beNil());
+ expect(testStruct.displayModeUnitAvailable).to(beNil());
+ });
+
+ it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLHMISettingsControlCapabilities* testStruct = [[SDLHMISettingsControlCapabilities alloc] initWithModuleName:@"displayMode" moduleInfo:testModuleInfo];
+#pragma clang diagnostic pop
+
+ expect(testStruct.moduleName).to(equal(@"displayMode"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.distanceUnitAvailable).to(beNil());
expect(testStruct.temperatureUnitAvailable).to(beNil());
expect(testStruct.displayModeUnitAvailable).to(beNil());
});
it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLHMISettingsControlCapabilities* testStruct = [[SDLHMISettingsControlCapabilities alloc] initWithModuleName:@"displayMode" distanceUnitAvailable:NO temperatureUnitAvailable:YES displayModeUnitAvailable:NO];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"displayMode"));
+ expect(testStruct.moduleInfo).to(beNil());
+ expect(testStruct.distanceUnitAvailable).to(equal(@(NO)));
+ expect(testStruct.temperatureUnitAvailable).to(equal(@(YES)));
+ expect(testStruct.displayModeUnitAvailable).to(equal(@(NO)));
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLHMISettingsControlCapabilities* testStruct = [[SDLHMISettingsControlCapabilities alloc] initWithModuleName:@"displayMode" moduleInfo:testModuleInfo distanceUnitAvailable:NO temperatureUnitAvailable:YES displayModeUnitAvailable:NO];
+
+ expect(testStruct.moduleName).to(equal(@"displayMode"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.distanceUnitAvailable).to(equal(@(NO)));
expect(testStruct.temperatureUnitAvailable).to(equal(@(YES)));
expect(testStruct.displayModeUnitAvailable).to(equal(@(NO)));
@@ -49,6 +99,7 @@ describe(@"Getter/Setter Tests", ^ {
it(@"Should get correctly when initialized", ^ {
NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"temperatureUnit",
+ SDLRPCParameterNameModuleInfo:testModuleInfo,
SDLRPCParameterNameTemperatureUnitAvailable:@(YES),
SDLRPCParameterNameDistanceUnitAvailable:@(YES),
SDLRPCParameterNameDisplayModeUnitAvailable:@(NO)
@@ -59,6 +110,7 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"temperatureUnit"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.distanceUnitAvailable).to(equal(@(YES)));
expect(testStruct.temperatureUnitAvailable).to(equal(@(YES)));
expect(testStruct.displayModeUnitAvailable).to(equal(@(NO)));
@@ -69,6 +121,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLHMISettingsControlCapabilities* testStruct = [[SDLHMISettingsControlCapabilities alloc] init];
expect(testStruct.moduleName).to(beNil());
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.distanceUnitAvailable).to(beNil());
expect(testStruct.temperatureUnitAvailable).to(beNil());
expect(testStruct.displayModeUnitAvailable).to(beNil());
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m
index 7531a4813..404dc2aeb 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLLightControlCapabilitiesSpec.m
@@ -17,27 +17,60 @@ QuickSpecBegin( SDLLightControlCapabilitiesSpec)
SDLLightCapabilities* somelightCapabilities = [[SDLLightCapabilities alloc] init];
describe(@"Getter/Setter Tests", ^ {
+ __block SDLModuleInfo *testModuleInfo = nil;
+ __block SDLGrid *testGird = nil;
+
+ beforeEach(^{
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ testModuleInfo = [[SDLModuleInfo alloc] init];
+ testModuleInfo.moduleId = @"123";
+ testModuleInfo.allowMultipleAccess = @YES;
+ testModuleInfo.serviceArea = testGird;
+ testModuleInfo.location = testGird;
+ });
+
it(@"Should set and get correctly", ^ {
SDLLightControlCapabilities* testStruct = [[SDLLightControlCapabilities alloc] init];
testStruct.moduleName = @"moduleName";
+ testStruct.moduleInfo = testModuleInfo;
testStruct.supportedLights = [@[somelightCapabilities] copy];
expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.supportedLights).to(equal([@[somelightCapabilities] copy]));
});
it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLLightControlCapabilities* testStruct = [[SDLLightControlCapabilities alloc] initWithModuleName:@"moduleName" supportedLights:[@[somelightCapabilities] copy]];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.supportedLights).to(equal([@[somelightCapabilities] copy]));
});
+ it(@"Should set and get correctly", ^ {
+ SDLLightControlCapabilities* testStruct = [[SDLLightControlCapabilities alloc] initWithModuleName:@"moduleName" moduleInfo:testModuleInfo supportedLights:[@[somelightCapabilities] copy]];
+
+ expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
+ expect(testStruct.supportedLights).to(equal([@[somelightCapabilities] copy]));
+
+ });
+
it(@"Should get correctly when initialized", ^ {
NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"moduleName",
+ SDLRPCParameterNameModuleInfo:testModuleInfo,
SDLRPCParameterNameSupportedLights:[@[somelightCapabilities] copy]
} mutableCopy];
#pragma clang diagnostic push
@@ -46,6 +79,7 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.supportedLights).to(equal([@[somelightCapabilities] copy]));
});
@@ -53,6 +87,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLLightControlCapabilities* testStruct = [[SDLLightControlCapabilities alloc] init];
expect(testStruct.moduleName).to(beNil());
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.supportedLights).to(beNil());
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m
index 10789bd9c..5a4ce340f 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLModuleDataSpec.m
@@ -27,6 +27,7 @@ describe(@"Initialization tests", ^{
__block SDLLightControlData* someLightData = [[SDLLightControlData alloc] init];
__block SDLHMISettingsControlData* someHMISettingsData = [[SDLHMISettingsControlData alloc] init];
__block SDLSeatControlData* someSeatData = [[SDLSeatControlData alloc] init];
+ __block NSString *someModuleId = @"123";
it(@"should properly initialize init", ^{
SDLModuleData* testStruct = [[SDLModuleData alloc] init];
@@ -38,7 +39,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.audioControlData).to(beNil());
expect(testStruct.hmiSettingsControlData).to(beNil());
expect(testStruct.lightControlData).to(beNil());
-
+ expect(testStruct.moduleId).to(beNil());
});
it(@"should properly initialize initWithDictionary", ^{
@@ -49,7 +50,8 @@ describe(@"Initialization tests", ^{
SDLRPCParameterNameSeatControlData:someSeatData,
SDLRPCParameterNameAudioControlData:someAudioData,
SDLRPCParameterNameLightControlData:someLightData,
- SDLRPCParameterNameHmiSettingsControlData:someHMISettingsData} mutableCopy];
+ SDLRPCParameterNameHmiSettingsControlData:someHMISettingsData,
+ SDLRPCParameterNameModuleId:someModuleId} mutableCopy];
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLModuleData* testStruct = [[SDLModuleData alloc] initWithDictionary:dict];
@@ -62,7 +64,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.audioControlData).to(equal(someAudioData));
expect(testStruct.hmiSettingsControlData).to(equal(someHMISettingsData));
expect(testStruct.lightControlData).to(equal(someLightData));
-
+ expect(testStruct.moduleId).to(equal(someModuleId));
});
it(@"Should set and get correctly", ^{
@@ -74,6 +76,7 @@ describe(@"Initialization tests", ^{
testStruct.audioControlData = someAudioData;
testStruct.lightControlData = someLightData;
testStruct.hmiSettingsControlData = someHMISettingsData;
+ testStruct.moduleId = someModuleId;
expect(testStruct.moduleType).to(equal(SDLModuleTypeRadio));
expect(testStruct.seatControlData).to(equal(someSeatData));
@@ -82,6 +85,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.audioControlData).to(equal(someAudioData));
expect(testStruct.hmiSettingsControlData).to(equal(someHMISettingsData));
expect(testStruct.lightControlData).to(equal(someLightData));
+ expect(testStruct.moduleId).to(equal(someModuleId));
});
it(@"Should get correctly when initialized with RadioControlData", ^ {
@@ -91,6 +95,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.radioControlData).to(equal(someRadioData));
expect(testStruct.climateControlData).to(beNil());
expect(testStruct.seatControlData).to(beNil());
+ expect(testStruct.moduleId).to(beNil());
});
it(@"Should get correctly when initialized with ClimateControlData", ^ {
@@ -100,6 +105,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.climateControlData).to(equal(someClimateData));
expect(testStruct.radioControlData).to(beNil());
expect(testStruct.seatControlData).to(beNil());
+ expect(testStruct.moduleId).to(beNil());
});
it(@"Should get correctly when initialized with ClimateControlData", ^ {
@@ -109,6 +115,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.seatControlData).to(equal(someSeatData));
expect(testStruct.radioControlData).to(beNil());
expect(testStruct.climateControlData).to(beNil());
+ expect(testStruct.moduleId).to(beNil());
});
it(@"Should get correctly when initialized with ClimateControlData", ^ {
@@ -120,6 +127,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.audioControlData).to(beNil());
expect(testStruct.lightControlData).to(beNil());
expect(testStruct.hmiSettingsControlData).to(equal(someHMISettingsData));
+ expect(testStruct.moduleId).to(beNil());
});
it(@"Should get correctly when initialized with ClimateControlData", ^ {
@@ -131,6 +139,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.audioControlData).to(beNil());
expect(testStruct.lightControlData).to(equal(someLightData));
expect(testStruct.hmiSettingsControlData).to(beNil());
+ expect(testStruct.moduleId).to(beNil());
});
it(@"Should get correctly when initialized with ClimateControlData", ^ {
@@ -142,6 +151,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.audioControlData).to(equal(someAudioData));
expect(testStruct.lightControlData).to(beNil());
expect(testStruct.hmiSettingsControlData).to(beNil());
+ expect(testStruct.moduleId).to(beNil());
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m
index e68ee0af2..3ec5b48c7 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLRadioControlCapabilitiesSpec.m
@@ -14,11 +14,28 @@
QuickSpecBegin(SDLRadioControlCapabilitiesSpec)
describe(@"Initialization tests", ^{
+ __block SDLModuleInfo *testModuleInfo = nil;
+ __block SDLGrid *testGird = nil;
+ beforeEach(^{
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ testModuleInfo = [[SDLModuleInfo alloc] init];
+ testModuleInfo.moduleId = @"123";
+ testModuleInfo.allowMultipleAccess = @YES;
+ testModuleInfo.serviceArea = testGird;
+ testModuleInfo.location = testGird;
+ });
+
it(@"should properly initialize init", ^{
SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] init];
expect(testStruct.moduleName).to(beNil());
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.radioEnableAvailable).to(beNil());
expect(testStruct.radioBandAvailable).to(beNil());
expect(testStruct.radioFrequencyAvailable).to(beNil());
@@ -43,6 +60,7 @@ describe(@"Initialization tests", ^{
it(@"should properly initialize initWithDictionary", ^{
NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName : @"someName",
+ SDLRPCParameterNameModuleInfo: testModuleInfo,
SDLRPCParameterNameRadioEnableAvailable : @YES,
SDLRPCParameterNameRadioBandAvailable : @YES,
SDLRPCParameterNameRadioFrequencyAvailable : @YES,
@@ -55,7 +73,7 @@ describe(@"Initialization tests", ^{
SDLRPCParameterNameSignalChangeThresholdAvailable : @NO,
SDLRPCParameterNameHDRadioEnableAvailable : @YES,
SDLRPCParameterNameSiriusXMRadioAvailable : @NO,
- SDLRPCParameterNameSISDataAvailable:@YES
+ SDLRPCParameterNameSISDataAvailable: @YES
} mutableCopy];
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -63,6 +81,7 @@ describe(@"Initialization tests", ^{
#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"someName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.radioEnableAvailable).to(equal(@YES));
expect(testStruct.radioBandAvailable).to(equal(@YES));
expect(testStruct.radioFrequencyAvailable).to(equal(@YES));
@@ -88,6 +107,7 @@ describe(@"Initialization tests", ^{
SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] init];
testStruct.moduleName = @"someName";
+ testStruct.moduleInfo = testModuleInfo;
testStruct.radioEnableAvailable = @YES;
testStruct.radioBandAvailable = @YES;
testStruct.radioFrequencyAvailable = @YES;
@@ -108,6 +128,7 @@ describe(@"Initialization tests", ^{
testStruct.sisDataAvailable = @YES;
expect(testStruct.moduleName).to(equal(@"someName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.radioEnableAvailable).to(equal(@YES));
expect(testStruct.radioBandAvailable).to(equal(@YES));
expect(testStruct.radioFrequencyAvailable).to(equal(@YES));
@@ -154,6 +175,7 @@ describe(@"Initialization tests", ^{
SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] initWithModuleName:@"someName" radioEnableAvailable:YES radioBandAvailable:NO radioFrequencyAvailable:YES hdChannelAvailable:NO rdsDataAvailable:NO availableHDsAvailable:NO stateAvailable:YES signalStrengthAvailable:YES signalChangeThresholdAvailable:NO];
expect(testStruct.moduleName).to(equal(@"someName"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.radioEnableAvailable).to(equal(@YES));
expect(testStruct.radioBandAvailable).to(equal(@NO));
expect(testStruct.radioFrequencyAvailable).to(equal(@YES));
@@ -171,11 +193,14 @@ describe(@"Initialization tests", ^{
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
it(@"Should get correctly when initialized with Module Name and other radio control capabilite's parameters", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLRadioControlCapabilities* testStruct = [[SDLRadioControlCapabilities alloc] initWithModuleName:@"someName" radioEnableAvailable:YES radioBandAvailable:NO radioFrequencyAvailable:YES hdChannelAvailable:NO rdsDataAvailable:NO availableHDsAvailable:NO stateAvailable:YES signalStrengthAvailable:YES signalChangeThresholdAvailable:NO hdRadioEnableAvailable:YES siriusXMRadioAvailable:YES sisDataAvailable:YES];
#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"someName"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.radioEnableAvailable).to(equal(@YES));
expect(testStruct.radioBandAvailable).to(equal(@NO));
expect(testStruct.radioFrequencyAvailable).to(equal(@YES));
@@ -195,6 +220,7 @@ describe(@"Initialization tests", ^{
expect(testStruct.sisDataAvailable).to(equal(@YES));
});
+
});
QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m
index bb320be41..31912578d 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatControlCapabilitiesSpec.m
@@ -16,10 +16,28 @@
QuickSpecBegin(SDLSeatControlCapabilitiesSpec)
describe(@"Getter/Setter Tests", ^ {
+ __block SDLModuleInfo *testModuleInfo = nil;
+ __block SDLGrid *testGird = nil;
+
+ beforeEach(^{
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ testModuleInfo = [[SDLModuleInfo alloc] init];
+ testModuleInfo.moduleId = @"123";
+ testModuleInfo.allowMultipleAccess = @YES;
+ testModuleInfo.serviceArea = testGird;
+ testModuleInfo.location = testGird;
+ });
+
it(@"Should set and get correctly", ^ {
SDLSeatControlCapabilities* testStruct = [[SDLSeatControlCapabilities alloc] init];
testStruct.moduleName = @"moduleName";
+ testStruct.moduleInfo = testModuleInfo;
testStruct.heatingEnabledAvailable = @YES;
testStruct.coolingEnabledAvailable = @NO;
testStruct.heatingLevelAvailable = @YES;
@@ -37,6 +55,7 @@ describe(@"Getter/Setter Tests", ^ {
testStruct.memoryAvailable = @NO;
expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.heatingEnabledAvailable).to(equal(@YES));
expect(testStruct.coolingEnabledAvailable).to(equal(@NO));
expect(testStruct.heatingLevelAvailable).to(equal(@YES));
@@ -56,9 +75,13 @@ describe(@"Getter/Setter Tests", ^ {
});
it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLSeatControlCapabilities* testStruct = [[SDLSeatControlCapabilities alloc] initWithName:@"moduleName" heatingEnabledAvailable:YES coolingEnabledAvailable:NO heatingLevelAvailable:YES coolingLevelAvailable:NO horizontalPositionAvailable:NO verticalPositionAvailable:NO frontVerticalPositionAvailable:NO backVerticalPositionAvailable:NO backTiltAngleAvailable:YES headSupportHorizontalPositionAvailable:NO headSupportVerticalPositionAvailable:YES massageEnabledAvailable:NO massageModeAvailable:YES massageCushionFirmnessAvailable:NO memoryAvailable:YES];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.heatingEnabledAvailable).to(equal(@YES));
expect(testStruct.coolingEnabledAvailable).to(equal(@NO));
expect(testStruct.heatingLevelAvailable).to(equal(@YES));
@@ -78,9 +101,13 @@ describe(@"Getter/Setter Tests", ^ {
});
it(@"Should set and get correctly", ^ {
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLSeatControlCapabilities* testStruct = [[SDLSeatControlCapabilities alloc] initWithName:@"moduleName"];
+#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.heatingEnabledAvailable).to(beNil());
expect(testStruct.heatingEnabledAvailable).to(beNil());
expect(testStruct.heatingLevelAvailable).to(beNil());
@@ -98,9 +125,56 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.memoryAvailable).to(beNil());
});
+
+ it(@"Should set and get correctly", ^ {
+ SDLSeatControlCapabilities* testStruct = [[SDLSeatControlCapabilities alloc] initWithName:@"moduleName" moduleInfo:testModuleInfo];
+
+ expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
+ expect(testStruct.heatingEnabledAvailable).to(beNil());
+ expect(testStruct.heatingEnabledAvailable).to(beNil());
+ expect(testStruct.heatingLevelAvailable).to(beNil());
+ expect(testStruct.coolingLevelAvailable).to(beNil());
+ expect(testStruct.horizontalPositionAvailable).to(beNil());
+ expect(testStruct.verticalPositionAvailable).to(beNil());
+ expect(testStruct.frontVerticalPositionAvailable).to(beNil());
+ expect(testStruct.backVerticalPositionAvailable).to(beNil());
+ expect(testStruct.backTiltAngleAvailable).to(beNil());
+ expect(testStruct.headSupportHorizontalPositionAvailable).to(beNil());
+ expect(testStruct.headSupportVerticalPositionAvailable).to(beNil());
+ expect(testStruct.massageEnabledAvailable).to(beNil());
+ expect(testStruct.massageModeAvailable).to(beNil());
+ expect(testStruct.massageCushionFirmnessAvailable).to(beNil());
+ expect(testStruct.memoryAvailable).to(beNil());
+
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLSeatControlCapabilities* testStruct = [[SDLSeatControlCapabilities alloc] initWithName:@"moduleName" moduleInfo:testModuleInfo heatingEnabledAvailable:YES coolingEnabledAvailable:NO heatingLevelAvailable:YES coolingLevelAvailable:NO horizontalPositionAvailable:NO verticalPositionAvailable:NO frontVerticalPositionAvailable:NO backVerticalPositionAvailable:NO backTiltAngleAvailable:YES headSupportHorizontalPositionAvailable:NO headSupportVerticalPositionAvailable:YES massageEnabledAvailable:NO massageModeAvailable:YES massageCushionFirmnessAvailable:NO memoryAvailable:YES];
+
+ expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
+ expect(testStruct.heatingEnabledAvailable).to(equal(@YES));
+ expect(testStruct.coolingEnabledAvailable).to(equal(@NO));
+ expect(testStruct.heatingLevelAvailable).to(equal(@YES));
+ expect(testStruct.coolingLevelAvailable).to(equal(@NO));
+ expect(testStruct.horizontalPositionAvailable).to(equal(@NO));
+ expect(testStruct.verticalPositionAvailable).to(equal(@NO));
+ expect(testStruct.frontVerticalPositionAvailable).to(equal(@NO));
+ expect(testStruct.backVerticalPositionAvailable).to(equal(@NO));
+ expect(testStruct.backTiltAngleAvailable).to(equal(@YES));
+ expect(testStruct.headSupportHorizontalPositionAvailable).to(equal(@NO));
+ expect(testStruct.headSupportVerticalPositionAvailable).to(equal(@YES));
+ expect(testStruct.massageEnabledAvailable).to(equal(@NO));
+ expect(testStruct.massageModeAvailable).to(equal(@YES));
+ expect(testStruct.massageCushionFirmnessAvailable).to(equal(@NO));
+ expect(testStruct.memoryAvailable).to(equal(@YES));
+
+ });
it(@"Should get correctly when initialized", ^ {
NSMutableDictionary* dict = [@{SDLRPCParameterNameModuleName:@"moduleName",
+ SDLRPCParameterNameModuleInfo:testModuleInfo,
SDLRPCParameterNameHeatingEnabledAvailable:(@YES),
SDLRPCParameterNameCoolingEnabledAvailable:@YES,
SDLRPCParameterNameHeatingLevelAvailable:@YES,
@@ -123,6 +197,7 @@ describe(@"Getter/Setter Tests", ^ {
#pragma clang diagnostic pop
expect(testStruct.moduleName).to(equal(@"moduleName"));
+ expect(testStruct.moduleInfo).to(equal(testModuleInfo));
expect(testStruct.heatingEnabledAvailable).to(equal(@YES));
expect(testStruct.coolingEnabledAvailable).to(equal(@YES));
expect(testStruct.heatingLevelAvailable).to(equal(@YES));
@@ -144,6 +219,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLSeatControlCapabilities* testStruct = [[SDLSeatControlCapabilities alloc] init];
expect(testStruct.moduleName).to(beNil());
+ expect(testStruct.moduleInfo).to(beNil());
expect(testStruct.heatingEnabledAvailable).to(beNil());
expect(testStruct.heatingEnabledAvailable).to(beNil());
expect(testStruct.heatingLevelAvailable).to(beNil());
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationCapabilitySpec.m
new file mode 100644
index 000000000..e238c5737
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationCapabilitySpec.m
@@ -0,0 +1,88 @@
+//
+// SDLSeatLocationCapabilitySpec.m
+// SmartDeviceLinkTests
+//
+// Created by standa1 on 7/29/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLSeatLocationCapability.h"
+#import "SDLGrid.h"
+#import "SDLRPCParameterNames.h"
+
+
+QuickSpecBegin(SDLSeatLocationCapabilitySpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block SDLGrid *testGird = nil;
+ __block SDLSeatLocation *driverSeat = nil;
+
+ beforeEach(^{
+ testGird = [[SDLGrid alloc] init];
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ driverSeat = [[SDLSeatLocation alloc] init];
+ driverSeat.grid = testGird;
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLSeatLocationCapability *testStruct = [[SDLSeatLocationCapability alloc] init];
+
+ testStruct.cols = @3;
+ testStruct.rows = @2;
+ testStruct.levels = @1;
+ testStruct.seats = @[driverSeat];
+
+ expect(testStruct.cols).to(equal(@3));
+ expect(testStruct.rows).to(equal(@2));
+ expect(testStruct.levels).to(equal(@1));
+ expect(testStruct.seats).to(equal(@[driverSeat]));
+ });
+
+ it(@"Should get correctly when initialized", ^ {
+ NSMutableDictionary* dict = [@{
+ SDLRPCParameterNameRows:@2,
+ SDLRPCParameterNameColumns:@3,
+ SDLRPCParameterNameLevels:@1,
+ SDLRPCParameterNameSeats:@[driverSeat]} mutableCopy];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLSeatLocationCapability *testStruct = [[SDLSeatLocationCapability alloc] initWithDictionary:dict];
+#pragma clang diagnostic pop
+
+ expect(testStruct.cols).to(equal(@3));
+ expect(testStruct.rows).to(equal(@2));
+ expect(testStruct.levels).to(equal(@1));
+ expect(testStruct.seats).to(equal(@[driverSeat]));
+ });
+
+ it(@"Should get correctly when initialized", ^ {
+ SDLSeatLocationCapability *testStruct = [[SDLSeatLocationCapability alloc] initWithSeats:@[driverSeat] cols:@3 rows:@2 levels:@1];
+
+ expect(testStruct.cols).to(equal(@3));
+ expect(testStruct.rows).to(equal(@2));
+ expect(testStruct.levels).to(equal(@1));
+ expect(testStruct.seats).to(equal(@[driverSeat]));
+ });
+
+
+ it(@"Should return nil if not set", ^ {
+ SDLSeatLocationCapability *testStruct = [[SDLSeatLocationCapability alloc] init];
+
+ expect(testStruct.cols).to(beNil());
+ expect(testStruct.rows).to(beNil());
+ expect(testStruct.levels).to(beNil());
+ expect(testStruct.seats).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationSpec.m
new file mode 100644
index 000000000..31234bbbe
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSeatLocationSpec.m
@@ -0,0 +1,58 @@
+//
+// SDLSeatLocationSpec.m
+// SmartDeviceLinkTests
+//
+// Created by standa1 on 7/29/19.
+// Copyright © 2019 smartdevicelink. All rights reserved.
+//
+
+#import <Foundation/Foundation.h>
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLSeatLocation.h"
+#import "SDLRPCParameterNames.h"
+
+
+QuickSpecBegin(SDLSeatLocationSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+ __block SDLGrid *testGird = nil;
+
+ beforeEach(^{
+ testGird = [[SDLGrid alloc] init];
+ testGird.col = @0;
+ testGird.row = @0;
+ testGird.level = @0;
+ testGird.rowspan = @2;
+ testGird.colspan = @3;
+ testGird.levelspan = @1;
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLSeatLocation *testStruct = [[SDLSeatLocation alloc] init];
+
+ testStruct.grid = testGird;
+
+ expect(testStruct.grid).to(equal(testGird));
+ });
+
+ it(@"Should get correctly when initialized", ^ {
+ NSMutableDictionary* dict = [@{SDLRPCParameterNameGrid:testGird} mutableCopy];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated-declarations"
+ SDLSeatLocation *testStruct = [[SDLSeatLocation alloc] initWithDictionary:dict];
+#pragma clang diagnostic pop
+
+ expect(testStruct.grid).to(equal(testGird));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLSeatLocation *testStruct = [[SDLSeatLocation alloc] init];
+
+ expect(testStruct.grid).to(beNil());
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m
index 42286b97b..b937eb3e1 100755
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLSystemCapabilitySpec.m
@@ -16,6 +16,7 @@
#import "SDLVideoStreamingCodec.h"
#import "SDLVideoStreamingFormat.h"
#import "SDLVideoStreamingProtocol.h"
+#import "SDLSeatLocationCapability.h"
#import "SDLRPCParameterNames.h"
@@ -27,6 +28,7 @@ describe(@"Getter/Setter Tests", ^ {
__block SDLPhoneCapability *testPhoneCapability = nil;
__block SDLRemoteControlCapabilities *testRemoteControlCapabilities = nil;
__block SDLVideoStreamingCapability *testVideoStreamingCapability = nil;
+ __block SDLSeatLocationCapability *testSeatLocationCapability = nil;
beforeEach(^{
testAppServicesCapabilities = [[SDLAppServicesCapabilities alloc] initWithAppServices:nil];
@@ -34,6 +36,7 @@ describe(@"Getter/Setter Tests", ^ {
testPhoneCapability = [[SDLPhoneCapability alloc] initWithDialNumber:YES];
testRemoteControlCapabilities = [[SDLRemoteControlCapabilities alloc] initWithClimateControlCapabilities:nil radioControlCapabilities:nil buttonCapabilities:nil seatControlCapabilities:nil audioControlCapabilities:nil hmiSettingsControlCapabilities:nil lightControlCapabilities:nil];
testVideoStreamingCapability = [[SDLVideoStreamingCapability alloc] initWithPreferredResolution:[[SDLImageResolution alloc] initWithWidth:50 height:50] maxBitrate:5 supportedFormats:@[] hapticDataSupported:false];
+ testSeatLocationCapability = [[SDLSeatLocationCapability alloc] init];
});
it(@"Should set and get correctly", ^ {
@@ -44,6 +47,7 @@ describe(@"Getter/Setter Tests", ^ {
testStruct.phoneCapability = testPhoneCapability;
testStruct.videoStreamingCapability = testVideoStreamingCapability;
testStruct.remoteControlCapability = testRemoteControlCapabilities;
+ testStruct.seatLocationCapability = testSeatLocationCapability;
expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeNavigation));
expect(testStruct.appServicesCapabilities).to(equal(testAppServicesCapabilities));
@@ -51,6 +55,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(equal(testPhoneCapability));
expect(testStruct.videoStreamingCapability).to(equal(testVideoStreamingCapability));
expect(testStruct.remoteControlCapability).to(equal(testRemoteControlCapabilities));
+ expect(testStruct.seatLocationCapability).to(equal(testSeatLocationCapability));
});
it(@"Should get correctly when initialized with a dictionary", ^ {
@@ -60,7 +65,8 @@ describe(@"Getter/Setter Tests", ^ {
SDLRPCParameterNameNavigationCapability:testNavigationCapability,
SDLRPCParameterNamePhoneCapability:testPhoneCapability,
SDLRPCParameterNameRemoteControlCapability:testRemoteControlCapabilities,
- SDLRPCParameterNameVideoStreamingCapability:testVideoStreamingCapability
+ SDLRPCParameterNameVideoStreamingCapability:testVideoStreamingCapability,
+ SDLRPCParameterNameSeatLocationCapability:testSeatLocationCapability
};
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
@@ -73,6 +79,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(equal(testPhoneCapability));
expect(testStruct.remoteControlCapability).to(equal(testRemoteControlCapabilities));
expect(testStruct.videoStreamingCapability).to(equal(testVideoStreamingCapability));
+ expect(testStruct.seatLocationCapability).to(equal(testSeatLocationCapability));
});
it(@"Should return nil if not set", ^ {
@@ -84,6 +91,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(beNil());
expect(testStruct.videoStreamingCapability).to(beNil());
expect(testStruct.remoteControlCapability).to(beNil());
+ expect(testStruct.seatLocationCapability).to(beNil());
});
it(@"should initialize correctly with initWithAppServicesCapabilities:", ^{
@@ -95,6 +103,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(beNil());
expect(testStruct.remoteControlCapability).to(beNil());
expect(testStruct.videoStreamingCapability).to(beNil());
+ expect(testStruct.seatLocationCapability).to(beNil());
});
it(@"should initialize correctly with initWithPhoneCapability:", ^{
@@ -107,6 +116,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(equal(testPhoneStruct));
expect(testStruct.remoteControlCapability).to(beNil());
expect(testStruct.videoStreamingCapability).to(beNil());
+ expect(testStruct.seatLocationCapability).to(beNil());
});
it(@"should initialize correctly with initWithNavigationCapability:", ^{
@@ -119,6 +129,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(beNil());
expect(testStruct.remoteControlCapability).to(beNil());
expect(testStruct.videoStreamingCapability).to(beNil());
+ expect(testStruct.seatLocationCapability).to(beNil());
});
it(@"should initialize correctly with initWithVideoStreamingCapability:", ^{
@@ -148,6 +159,7 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(beNil());
expect(testStruct.remoteControlCapability).to(beNil());
expect(testStruct.videoStreamingCapability).to(equal(testVidStruct));
+ expect(testStruct.seatLocationCapability).to(beNil());
});
it(@"should initialize correctly with initWithRemoteControlCapability:", ^{
@@ -159,6 +171,19 @@ describe(@"Getter/Setter Tests", ^ {
expect(testStruct.phoneCapability).to(beNil());
expect(testStruct.remoteControlCapability).to(equal(testRemoteControlCapabilities));
expect(testStruct.videoStreamingCapability).to(beNil());
+ expect(testStruct.seatLocationCapability).to(beNil());
+ });
+
+ it(@"should initialize correctly with initWithSeatLocationCapability:", ^{
+ SDLSystemCapability *testStruct = [[SDLSystemCapability alloc] initWithSeatLocationCapability:testSeatLocationCapability];
+
+ expect(testStruct.systemCapabilityType).to(equal(SDLSystemCapabilityTypeSeatLocation));
+ expect(testStruct.appServicesCapabilities).to(beNil());
+ expect(testStruct.navigationCapability).to(beNil());
+ expect(testStruct.phoneCapability).to(beNil());
+ expect(testStruct.remoteControlCapability).to(beNil());
+ expect(testStruct.videoStreamingCapability).to(beNil());
+ expect(testStruct.seatLocationCapability).to(equal(testSeatLocationCapability));
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateConfigurationSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateConfigurationSpec.m
new file mode 100644
index 000000000..68b782b13
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTemplateConfigurationSpec.m
@@ -0,0 +1,56 @@
+//
+// SDLTemplateConfigurationSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLTemplateConfiguration.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLTemplateColorScheme.h"
+
+
+QuickSpecBegin(SDLTemplateConfigurationSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+
+ __block SDLTemplateColorScheme *dayScheme = nil;
+ __block SDLTemplateColorScheme *nightScheme = nil;
+ __block NSString *testTemplateName = nil;
+
+ beforeEach(^{
+ dayScheme = [[SDLTemplateColorScheme alloc] initWithPrimaryColor:[UIColor blueColor] secondaryColor:[UIColor blackColor] backgroundColor:[UIColor whiteColor]];
+ nightScheme = [[SDLTemplateColorScheme alloc] initWithPrimaryColor:[UIColor blueColor] secondaryColor:[UIColor purpleColor] backgroundColor:[UIColor blackColor]];
+ testTemplateName = @"Template Name";
+ });
+
+ it(@"Should get correctly when initialized DESIGNATED", ^ {
+ SDLTemplateConfiguration* testStruct = [[SDLTemplateConfiguration alloc] initWithTemplate:testTemplateName];
+ expect(testStruct.template).to(equal(testTemplateName));
+ });
+ it(@"Should get correctly when initialized", ^ {
+ SDLTemplateConfiguration* testStruct = [[SDLTemplateConfiguration alloc] initWithTemplate:testTemplateName dayColorScheme:dayScheme nightColorScheme:nightScheme];
+ expect(testStruct.template).to(equal(testTemplateName));
+ expect(testStruct.dayColorScheme).to(equal(dayScheme));
+ expect(testStruct.nightColorScheme).to(equal(nightScheme));
+ });
+
+ it(@"Should return nil if not set", ^ {
+ SDLTemplateConfiguration* testStruct = [[SDLTemplateConfiguration alloc] initWithTemplate:testTemplateName];
+
+ expect(testStruct.dayColorScheme).to(beNil());
+ expect(testStruct.nightColorScheme).to(beNil());
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLTemplateConfiguration* testStruct = [[SDLTemplateConfiguration alloc] initWithTemplate:testTemplateName];
+
+ testStruct.dayColorScheme = dayScheme;
+ testStruct.nightColorScheme = nightScheme;
+
+ expect(testStruct.dayColorScheme).to(equal(dayScheme));
+ expect(testStruct.nightColorScheme).to(equal(nightScheme));
+ });
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m
index b2cbcda17..4a37c508f 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLTouchCoordSpec.m
@@ -8,8 +8,9 @@
#import <Quick/Quick.h>
#import <Nimble/Nimble.h>
-#import "SDLTouchCoord.h"
#import "SDLRPCParameterNames.h"
+#import "SDLTouchCoord.h"
+
QuickSpecBegin(SDLTouchCoordSpec)
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m
index 8a504b85b..a07efa5a3 100644
--- a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLVehicleDataResultSpec.m
@@ -16,25 +16,44 @@
QuickSpecBegin(SDLVehicleDataResultSpec)
describe(@"Getter/Setter Tests", ^ {
- it(@"Should set and get correctly", ^ {
+ it(@"should correctly initialize with init", ^ {
SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] init];
testStruct.dataType = SDLVehicleDataTypeAirbagStatus;
+ testStruct.customOEMDataType = @"CustomOEMData";
testStruct.resultCode = SDLVehicleDataResultCodeDisallowed;
expect(testStruct.dataType).to(equal(SDLVehicleDataTypeAirbagStatus));
+ expect(testStruct.customOEMDataType).to(equal(@"CustomOEMData"));
+ expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDisallowed));
+ });
+
+ it(@"should correctly initialize with initWithDataType", ^ {
+ SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] initWithDataType:SDLVehicleDataTypeAirbagStatus resultCode:SDLVehicleDataResultCodeDisallowed];
+
+ expect(testStruct.dataType).to(equal(SDLVehicleDataTypeAirbagStatus));
+ expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDisallowed));
+ });
+
+ it(@"should correctly initialize with initWithCustomOEMDataType", ^ {
+ SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] initWithCustomOEMDataType:@"CustomOEMData" resultCode:SDLVehicleDataResultCodeDisallowed];
+
+ expect(testStruct.customOEMDataType).to(equal(@"CustomOEMData"));
expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDisallowed));
});
it(@"Should get correctly when initialized", ^ {
- NSMutableDictionary* dict = [@{SDLRPCParameterNameDataType:SDLVehicleDataTypeAirbagStatus,
- SDLRPCParameterNameResultCode:SDLVehicleDataResultCodeDisallowed} mutableCopy];
+ NSDictionary* dict = [@{SDLRPCParameterNameDataType:SDLVehicleDataTypeAirbagStatus,
+ SDLRPCParameterNameResultCode:SDLVehicleDataResultCodeDisallowed,
+ SDLRPCParameterNameOEMCustomDataType:@"CustomOEMData"
+ } mutableCopy];
#pragma clang diagnostic push
#pragma clang diagnostic ignored "-Wdeprecated-declarations"
SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] initWithDictionary:dict];
#pragma clang diagnostic pop
expect(testStruct.dataType).to(equal(SDLVehicleDataTypeAirbagStatus));
+ expect(testStruct.customOEMDataType).to(equal(@"CustomOEMData"));
expect(testStruct.resultCode).to(equal(SDLVehicleDataResultCodeDisallowed));
});
@@ -42,6 +61,7 @@ describe(@"Getter/Setter Tests", ^ {
SDLVehicleDataResult* testStruct = [[SDLVehicleDataResult alloc] init];
expect(testStruct.dataType).to(beNil());
+ expect(testStruct.customOEMDataType).to(beNil());
expect(testStruct.resultCode).to(beNil());
});
});
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m
new file mode 100644
index 000000000..0589337ce
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowCapabilitySpec.m
@@ -0,0 +1,72 @@
+//
+// SDLWindowCapabilitySpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLWindowCapability.h"
+#import "SDLRPCParameterNames.h"
+#import "SDLTextField.h"
+#import "SDLTextFieldName.h"
+#import "SDLImageField.h"
+#import "SDLImageType.h"
+#import "SDLButtonCapabilities.h"
+#import "SDLSoftButtonCapabilities.h"
+
+QuickSpecBegin(SDLWindowCapabilitySpec)
+
+describe(@"Getter/Setter Tests", ^ {
+
+ __block SDLTextField* testTextField = nil;
+ __block SDLImageField *testImageField = nil;
+ __block SDLButtonCapabilities *testButtonCapabilities = nil;
+ __block SDLSoftButtonCapabilities *testSoftButtonscapabilities = nil;
+ __block SDLImageType testImageType = nil;
+ __block NSString *testTextName = nil;
+ __block NSString *testImageName = nil;
+
+ beforeEach(^{
+ testImageType = SDLImageTypeDynamic;
+ testTextName = @"test Text field";
+ testImageName = @"test Image field";
+
+ testTextField = [[SDLTextField alloc] init];
+ testTextField.name = SDLTextFieldNameTertiaryText;
+ testImageField = [[SDLImageField alloc] init];
+ testImageField.name = testImageName;
+
+ testButtonCapabilities = [[SDLButtonCapabilities alloc] init];
+ testButtonCapabilities.name = SDLButtonNameOk;
+ testButtonCapabilities.shortPressAvailable = @YES;
+ testButtonCapabilities.longPressAvailable = @YES;
+ testButtonCapabilities.upDownAvailable = @YES;
+
+ testSoftButtonscapabilities = [[SDLSoftButtonCapabilities alloc] init];
+ testSoftButtonscapabilities.imageSupported = @YES;
+ });
+
+ it(@"Should set and get correctly", ^ {
+ SDLWindowCapability* testStruct = testStruct = [[SDLWindowCapability alloc] init];
+ testStruct.windowID = @444;
+ testStruct.numCustomPresetsAvailable = @10;
+ testStruct.textFields = @[testTextField];
+ testStruct.imageFields = @[testImageField];
+ testStruct.imageTypeSupported = @[testImageType];
+ testStruct.buttonCapabilities = @[testButtonCapabilities];
+ testStruct.softButtonCapabilities = @[testSoftButtonscapabilities];
+
+ expect(testStruct.windowID).to(equal(@444));
+ expect(testStruct.textFields.firstObject.name).to(equal(SDLTextFieldNameTertiaryText));
+ expect(testStruct.imageFields.firstObject.name).to(equal(testImageName));
+ expect(testStruct.numCustomPresetsAvailable).to(equal(@10));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.buttonCapabilities.firstObject.shortPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.longPressAvailable).to(equal(@YES));
+ expect(testStruct.buttonCapabilities.firstObject.name).to(equal(SDLButtonNameOk));
+ expect(testStruct.softButtonCapabilities.firstObject.imageSupported).to(equal(@YES));
+ });
+
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowTypeCapabilitiesSpec.m b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowTypeCapabilitiesSpec.m
new file mode 100644
index 000000000..f05db2cbe
--- /dev/null
+++ b/SmartDeviceLinkTests/RPCSpecs/StructSpecs/SDLWindowTypeCapabilitiesSpec.m
@@ -0,0 +1,24 @@
+//
+// SDLWindowTypeCapabilitiesSpec.m
+// SmartDeviceLinkTests
+
+#import <Quick/Quick.h>
+#import <Nimble/Nimble.h>
+
+#import "SDLRPCParameterNames.h"
+#import "SDLWindowTypeCapabilities.h"
+#import "SDLWindowType.h"
+
+QuickSpecBegin(SDLWindowTypeCapabilitiesSpec)
+
+describe(@"Getter/Setter Tests", ^ {
+
+ it(@"Should get correctly when initialized DESIGNATED", ^ {
+ SDLWindowTypeCapabilities* testStruct = [[SDLWindowTypeCapabilities alloc] initWithType:SDLWindowTypeMain maximumNumberOfWindows:4];
+ expect(testStruct.type).to(equal(SDLWindowTypeMain));
+ expect(testStruct.maximumNumberOfWindows).to(equal(@4));
+ });
+
+});
+
+QuickSpecEnd
diff --git a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
index 2354e8f29..d9f324b80 100644
--- a/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
+++ b/SmartDeviceLinkTests/SDLSystemCapabilityManagerSpec.m
@@ -122,11 +122,14 @@ describe(@"System capability manager", ^{
testPCMStreamCapability = audioPassThruCapability;
testRegisterAppInterfaceResponse = [[SDLRegisterAppInterfaceResponse alloc] init];
+#pragma clang diagnostic push
+#pragma clang diagnostic ignored "-Wdeprecated"
testRegisterAppInterfaceResponse.displayCapabilities = testDisplayCapabilities;
testRegisterAppInterfaceResponse.hmiCapabilities = testHMICapabilities;
testRegisterAppInterfaceResponse.softButtonCapabilities = testSoftButtonCapabilities;
testRegisterAppInterfaceResponse.buttonCapabilities = testButtonCapabilities;
testRegisterAppInterfaceResponse.presetBankCapabilities = testPresetBankCapabilities;
+#pragma clang diagnostic pop
testRegisterAppInterfaceResponse.hmiZoneCapabilities = testHMIZoneCapabilities;
testRegisterAppInterfaceResponse.speechCapabilities = testSpeechCapabilities;
testRegisterAppInterfaceResponse.prerecordedSpeech = testPrerecordedSpeechCapabilities;