Skip to content

Commit

Permalink
Merge pull request #1444 from smartdevicelink/bugfix/issue-1441-remot…
Browse files Browse the repository at this point in the history
…econtrolcapabilities-incorrect-type

Fix some RemoteControlCapabilities parameters having the wrong type
  • Loading branch information
joeljfischer committed Oct 16, 2019
2 parents 401ebb3 + dbdff6c commit 9d5bafc
Showing 1 changed file with 26 additions and 4 deletions.
30 changes: 26 additions & 4 deletions SmartDeviceLink/SDLRemoteControlCapabilities.m
Expand Up @@ -80,19 +80,41 @@ - (void)setAudioControlCapabilities:(nullable NSArray<SDLAudioControlCapabilitie
}

- (void)setHmiSettingsControlCapabilities:(nullable NSArray<SDLHMISettingsControlCapabilities *> *)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<SDLHMISettingsControlCapabilities *> *)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<SDLLightControlCapabilities *> *)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<SDLLightControlCapabilities *> *)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
Expand Down

0 comments on commit 9d5bafc

Please sign in to comment.