diff options
author | Joel Fischer <joeljfischer@gmail.com> | 2018-01-30 10:39:18 -0500 |
---|---|---|
committer | Joel Fischer <joeljfischer@gmail.com> | 2018-01-30 10:39:18 -0500 |
commit | b127a6fe01ec19a2e61ef4ee0cdc47c646b06296 (patch) | |
tree | d23270476bb8447fcc8cfd9507adbe4ea5c18ea0 | |
parent | 882aa24b31f92119f600a8fdc0b50dca7dec1d71 (diff) | |
download | sdl_ios-b127a6fe01ec19a2e61ef4ee0cdc47c646b06296.tar.gz |
Fix #851
* Add `additionalHMITypes` to SDLLifecycleConfiguration
-rw-r--r-- | SmartDeviceLink/SDLLifecycleConfiguration.h | 5 | ||||
-rw-r--r-- | SmartDeviceLink/SDLLifecycleConfiguration.m | 1 | ||||
-rw-r--r-- | SmartDeviceLink/SDLRegisterAppInterface.h | 8 | ||||
-rw-r--r-- | SmartDeviceLink/SDLRegisterAppInterface.m | 34 | ||||
-rw-r--r-- | SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m | 5 |
5 files changed, 41 insertions, 12 deletions
diff --git a/SmartDeviceLink/SDLLifecycleConfiguration.h b/SmartDeviceLink/SDLLifecycleConfiguration.h index 57c0470ac..9dc208a38 100644 --- a/SmartDeviceLink/SDLLifecycleConfiguration.h +++ b/SmartDeviceLink/SDLLifecycleConfiguration.h @@ -87,6 +87,11 @@ NS_ASSUME_NONNULL_BEGIN @property (strong, nonatomic, null_resettable) SDLAppHMIType appType; /** + Additional applicatiion types beyond `appType` + */ +@property (copy, nonatomic, nullable) NSArray<SDLAppHMIType> *additionalAppTypes; + +/** * The default language to use */ @property (strong, nonatomic) SDLLanguage language; diff --git a/SmartDeviceLink/SDLLifecycleConfiguration.m b/SmartDeviceLink/SDLLifecycleConfiguration.m index c5b9e7071..d2dfa190f 100644 --- a/SmartDeviceLink/SDLLifecycleConfiguration.m +++ b/SmartDeviceLink/SDLLifecycleConfiguration.m @@ -102,6 +102,7 @@ NS_ASSUME_NONNULL_BEGIN newConfig->_tcpDebugIPAddress = _tcpDebugIPAddress; newConfig->_tcpDebugPort = _tcpDebugPort; newConfig->_appType = _appType; + newConfig->_additionalAppTypes = _additionalAppTypes; newConfig->_language = _language; newConfig->_languagesSupported = _languagesSupported; newConfig->_appIcon = _appIcon; diff --git a/SmartDeviceLink/SDLRegisterAppInterface.h b/SmartDeviceLink/SDLRegisterAppInterface.h index 6201dfbfe..c86e23532 100644 --- a/SmartDeviceLink/SDLRegisterAppInterface.h +++ b/SmartDeviceLink/SDLRegisterAppInterface.h @@ -92,9 +92,13 @@ NS_ASSUME_NONNULL_BEGIN - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired; -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName __deprecated_msg(("use initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:")); -- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray<SDLTTSChunk *> *)ttsName vrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash; +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray<SDLAppHMIType> *)appTypes shortAppName:(nullable NSString *)shortAppName; + +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray<SDLTTSChunk *> *)ttsName vrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash __deprecated_msg(("use initWithAppName:appId:languageDesired:isMediaApp:appTypes:shortAppName:ttsName:vrSynonyms:hmiDisplayLanguageDesired:resumeHash:")); + +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray<SDLAppHMIType> *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray<SDLTTSChunk *> *)ttsName vrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash; /** * @abstract The version of the SDL interface diff --git a/SmartDeviceLink/SDLRegisterAppInterface.m b/SmartDeviceLink/SDLRegisterAppInterface.m index 12aab2283..6729176d2 100644 --- a/SmartDeviceLink/SDLRegisterAppInterface.m +++ b/SmartDeviceLink/SDLRegisterAppInterface.m @@ -25,7 +25,18 @@ NS_ASSUME_NONNULL_BEGIN } - (instancetype)initWithLifecycleConfiguration:(SDLLifecycleConfiguration *)lifecycleConfiguration { - return [self initWithAppName:lifecycleConfiguration.appName appId:lifecycleConfiguration.appId languageDesired:lifecycleConfiguration.language isMediaApp:lifecycleConfiguration.isMedia appType:lifecycleConfiguration.appType shortAppName:lifecycleConfiguration.shortAppName ttsName:lifecycleConfiguration.ttsName vrSynonyms:lifecycleConfiguration.voiceRecognitionCommandNames hmiDisplayLanguageDesired:lifecycleConfiguration.language resumeHash:lifecycleConfiguration.resumeHash]; + NSArray<SDLAppHMIType> *allHMITypes = [lifecycleConfiguration.additionalAppTypes arrayByAddingObject:lifecycleConfiguration.appType]; + + return [self initWithAppName:lifecycleConfiguration.appName + appId:lifecycleConfiguration.appId + languageDesired:lifecycleConfiguration.language + isMediaApp:lifecycleConfiguration.isMedia + appTypes:allHMITypes + shortAppName:lifecycleConfiguration.shortAppName + ttsName:lifecycleConfiguration.ttsName + vrSynonyms:lifecycleConfiguration.voiceRecognitionCommandNames + hmiDisplayLanguageDesired:lifecycleConfiguration.language + resumeHash:lifecycleConfiguration.resumeHash]; } - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired { @@ -44,28 +55,31 @@ NS_ASSUME_NONNULL_BEGIN self.correlationID = @1; return self; - } - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName { + return [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appTypes:@[appType] shortAppName:shortAppName]; +} + +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray<SDLAppHMIType> *)appTypes shortAppName:(nullable NSString *)shortAppName { self = [self initWithAppName:appName appId:appId languageDesired:languageDesired]; if (!self) { return nil; } - - self.isMediaApplication = @(isMediaApp); - if (appType != nil) { - self.appHMIType = [NSArray arrayWithObject:appType]; - } - + self.isMediaApplication = @(isMediaApp); + self.appHMIType = appTypes; self.ngnMediaScreenAppName = shortAppName; - + return self; } - (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appType:(SDLAppHMIType)appType shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray<SDLTTSChunk *> *)ttsName vrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash { - self = [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appType:appType shortAppName:shortAppName]; + return [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appTypes:@[appType] shortAppName:shortAppName ttsName:ttsName vrSynonyms:vrSynonyms hmiDisplayLanguageDesired:hmiDisplayLanguageDesired resumeHash:resumeHash]; +} + +- (instancetype)initWithAppName:(NSString *)appName appId:(NSString *)appId languageDesired:(SDLLanguage)languageDesired isMediaApp:(BOOL)isMediaApp appTypes:(NSArray<SDLAppHMIType> *)appTypes shortAppName:(nullable NSString *)shortAppName ttsName:(nullable NSArray<SDLTTSChunk *> *)ttsName vrSynonyms:(nullable NSArray<NSString *> *)vrSynonyms hmiDisplayLanguageDesired:(SDLLanguage)hmiDisplayLanguageDesired resumeHash:(nullable NSString *)resumeHash { + self = [self initWithAppName:appName appId:appId languageDesired:languageDesired isMediaApp:isMediaApp appTypes:appTypes shortAppName:shortAppName]; if (!self) { return nil; } diff --git a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m index 16be756f0..117d7e0ca 100644 --- a/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m +++ b/SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m @@ -30,6 +30,7 @@ describe(@"a lifecycle configuration", ^{ expect(testConfig.tcpDebugIPAddress).to(match(@"192.168.0.1")); expect(@(testConfig.tcpDebugPort)).to(equal(@12345)); expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeDefault])).to(equal(@YES)); + expect(testConfig.additionalAppTypes).to(beNil()); expect(@(testConfig.isMedia)).to(beFalsy()); expect(@([testConfig.language isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); expect(@([[testConfig.languagesSupported firstObject] isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); @@ -57,6 +58,7 @@ describe(@"a lifecycle configuration", ^{ someResumeHashString = @"testing"; testConfig.appType = SDLAppHMITypeMedia; + testConfig.additionalAppTypes = @[SDLAppHMITypeProjection]; testConfig.language = SDLLanguageArSa; testConfig.languagesSupported = @[SDLLanguageArSa, SDLLanguageEnAu, SDLLanguageEnUs]; testConfig.shortAppName = someShortAppName; @@ -72,6 +74,7 @@ describe(@"a lifecycle configuration", ^{ expect(testConfig.tcpDebugIPAddress).to(match(@"192.168.0.1")); expect(@(testConfig.tcpDebugPort)).to(equal(@12345)); expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeMedia])).to(equal(@YES)); + expect(testConfig.additionalAppTypes.firstObject).to(match(SDLAppHMITypeProjection)); expect(@(testConfig.isMedia)).to(beTruthy()); expect(@([testConfig.language isEqualToEnum:SDLLanguageArSa])).to(equal(@YES)); expect(testConfig.languagesSupported).to(haveCount(@3)); @@ -106,6 +109,7 @@ describe(@"a lifecycle configuration", ^{ expect(testConfig.tcpDebugIPAddress).to(match(someIPAddress)); expect(@(testConfig.tcpDebugPort)).to(equal(@(somePort))); expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeDefault])).to(equal(@YES)); + expect(testConfig.additionalAppTypes).to(beNil()); expect(@([testConfig.language isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); expect(@([[testConfig.languagesSupported firstObject] isEqualToEnum:SDLLanguageEnUs])).to(equal(@YES)); expect(testConfig.shortAppName).to(beNil()); @@ -146,6 +150,7 @@ describe(@"a lifecycle configuration", ^{ expect(testConfig.tcpDebugIPAddress).to(match(someIPAddress)); expect(@(testConfig.tcpDebugPort)).to(equal(@(somePort))); expect(@([testConfig.appType isEqualToEnum:SDLAppHMITypeMedia])).to(equal(@YES)); + expect(testConfig.additionalAppTypes).to(beNil()); expect(@(testConfig.isMedia)).to(beTruthy()); expect(@([testConfig.language isEqualToEnum:SDLLanguageArSa])).to(equal(@YES)); expect(testConfig.languagesSupported).to(haveCount(@3)); |