summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorJoel Fischer <joeljfischer@gmail.com>2018-01-30 10:39:18 -0500
committerJoel Fischer <joeljfischer@gmail.com>2018-01-30 10:39:18 -0500
commitb127a6fe01ec19a2e61ef4ee0cdc47c646b06296 (patch)
treed23270476bb8447fcc8cfd9507adbe4ea5c18ea0
parent882aa24b31f92119f600a8fdc0b50dca7dec1d71 (diff)
downloadsdl_ios-b127a6fe01ec19a2e61ef4ee0cdc47c646b06296.tar.gz
Fix #851
* Add `additionalHMITypes` to SDLLifecycleConfiguration
-rw-r--r--SmartDeviceLink/SDLLifecycleConfiguration.h5
-rw-r--r--SmartDeviceLink/SDLLifecycleConfiguration.m1
-rw-r--r--SmartDeviceLink/SDLRegisterAppInterface.h8
-rw-r--r--SmartDeviceLink/SDLRegisterAppInterface.m34
-rw-r--r--SmartDeviceLinkTests/DevAPISpecs/SDLLifecycleConfigurationSpec.m5
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));