diff --git a/SmartDeviceLink/SDLRemoteControlCapabilities.m b/SmartDeviceLink/SDLRemoteControlCapabilities.m index 80a1b3f4e..47b747aec 100644 --- a/SmartDeviceLink/SDLRemoteControlCapabilities.m +++ b/SmartDeviceLink/SDLRemoteControlCapabilities.m @@ -80,19 +80,41 @@ - (void)setAudioControlCapabilities:(nullable NSArray *)hmiSettingsControlCapabilities { - [self.store sdl_setObject:hmiSettingsControlCapabilities forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; + // TODO: This parameter should not be an array according to the spec, in a future major version change, this parameter's type should be altered + if (hmiSettingsControlCapabilities.count == 0) { + [self.store sdl_setObject:nil forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; + return; + } + + SDLHMISettingsControlCapabilities *capability = hmiSettingsControlCapabilities.firstObject; + + [self.store sdl_setObject:capability forName:SDLRPCParameterNameHmiSettingsControlCapabilities]; } - (nullable NSArray *)hmiSettingsControlCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameHmiSettingsControlCapabilities ofClass:SDLHMISettingsControlCapabilities.class error:nil]; + SDLHMISettingsControlCapabilities *capability = [self.store sdl_objectForName:SDLRPCParameterNameHmiSettingsControlCapabilities ofClass:SDLHMISettingsControlCapabilities.class error:nil]; + if (capability == nil) { return nil; } + + return @[capability]; } - (void)setLightControlCapabilities:(nullable NSArray *)lightControlCapabilities { - [self.store sdl_setObject:lightControlCapabilities forName:SDLRPCParameterNameLightControlCapabilities]; + // TODO: This parameter should not be an array according to the spec, in a future major version change, this parameter's type should be altered + if (lightControlCapabilities.count == 0) { + [self.store sdl_setObject:nil forName:SDLRPCParameterNameLightControlCapabilities]; + return; + } + + SDLLightControlCapabilities *capability = lightControlCapabilities.firstObject; + + [self.store sdl_setObject:capability forName:SDLRPCParameterNameLightControlCapabilities]; } - (nullable NSArray *)lightControlCapabilities { - return [self.store sdl_objectsForName:SDLRPCParameterNameLightControlCapabilities ofClass:SDLLightControlCapabilities.class error:nil]; + SDLLightControlCapabilities *capability = [self.store sdl_objectForName:SDLRPCParameterNameLightControlCapabilities ofClass:SDLLightControlCapabilities.class error:nil]; + if (capability == nil) { return nil; } + + return @[capability]; } @end