diff options
author | Takamitsu Yoshii <tyoshii@xevo.com> | 2018-11-12 12:14:20 +0900 |
---|---|---|
committer | Takamitsu Yoshii <tyoshii@xevo.com> | 2018-11-13 16:59:57 +0900 |
commit | a7c7454e6af1473516d5367e7279a9854a1aff60 (patch) | |
tree | 7de435d850d86e4bba1f22f0e43759ce71ba1ae6 | |
parent | 4741ad60a90dbcc9d2065b1cdd4954486773d9b5 (diff) | |
download | sdl_ios-a7c7454e6af1473516d5367e7279a9854a1aff60.tar.gz |
check class type to take care of language enum being “-1”
-rw-r--r-- | SmartDeviceLink/SDLLifecycleManager.m | 50 |
1 files changed, 26 insertions, 24 deletions
diff --git a/SmartDeviceLink/SDLLifecycleManager.m b/SmartDeviceLink/SDLLifecycleManager.m index c05ac986e..885f686a3 100644 --- a/SmartDeviceLink/SDLLifecycleManager.m +++ b/SmartDeviceLink/SDLLifecycleManager.m @@ -313,7 +313,7 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; BOOL delegateCanUpdateLifecycle = [self.delegate respondsToSelector:@selector(managerShouldUpdateLifecycleToLanguage:)]; // language mismatch? but actual language is a supported language? and delegate has implemented method? - if (![actualLanguage isEqualToEnum:desiredLanguage] && [supportedLanguages containsObject:actualLanguage] && delegateCanUpdateLifecycle) { + if ([actualLanguage isKindOfClass:[NSString class]] && ![actualLanguage isEqualToEnum:desiredLanguage] && [supportedLanguages containsObject:actualLanguage] && delegateCanUpdateLifecycle) { [self sdl_transitionToState:SDLLifecycleStateUpdatingConfiguration]; } else { [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; @@ -324,30 +324,32 @@ SDLLifecycleState *const SDLLifecycleStateReady = @"Ready"; // we can expect that the delegate has implemented the update method and the actual language is a supported language SDLLanguage actualLanguage = self.registerResponse.language; - SDLLifecycleConfigurationUpdate *configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage]; - - if (configUpdate) { - self.configuration.lifecycleConfig.language = actualLanguage; - if (configUpdate.appName) { - self.configuration.lifecycleConfig.appName = configUpdate.appName; - } - if (configUpdate.shortAppName) { - self.configuration.lifecycleConfig.shortAppName = configUpdate.shortAppName; - } - if (configUpdate.ttsName) { - self.configuration.lifecycleConfig.ttsName = configUpdate.ttsName; - } - if (configUpdate.voiceRecognitionCommandNames) { - self.configuration.lifecycleConfig.voiceRecognitionCommandNames = configUpdate.voiceRecognitionCommandNames; + if ([actualLanguage isKindOfClass:[NSString class]]) { + SDLLifecycleConfigurationUpdate *configUpdate = [self.delegate managerShouldUpdateLifecycleToLanguage:actualLanguage]; + + if (configUpdate) { + self.configuration.lifecycleConfig.language = actualLanguage; + if (configUpdate.appName) { + self.configuration.lifecycleConfig.appName = configUpdate.appName; + } + if (configUpdate.shortAppName) { + self.configuration.lifecycleConfig.shortAppName = configUpdate.shortAppName; + } + if (configUpdate.ttsName) { + self.configuration.lifecycleConfig.ttsName = configUpdate.ttsName; + } + if (configUpdate.voiceRecognitionCommandNames) { + self.configuration.lifecycleConfig.voiceRecognitionCommandNames = configUpdate.voiceRecognitionCommandNames; + } + + SDLChangeRegistration *changeRegistration = [[SDLChangeRegistration alloc] initWithLanguage:actualLanguage hmiDisplayLanguage:actualLanguage]; + changeRegistration.appName = configUpdate.appName; + changeRegistration.ngnMediaScreenAppName = configUpdate.shortAppName; + changeRegistration.ttsName = configUpdate.ttsName; + changeRegistration.vrSynonyms = configUpdate.voiceRecognitionCommandNames; + + [self sendConnectionManagerRequest:changeRegistration withResponseHandler:nil]; } - - SDLChangeRegistration *changeRegistration = [[SDLChangeRegistration alloc] initWithLanguage:actualLanguage hmiDisplayLanguage:actualLanguage]; - changeRegistration.appName = configUpdate.appName; - changeRegistration.ngnMediaScreenAppName = configUpdate.shortAppName; - changeRegistration.ttsName = configUpdate.ttsName; - changeRegistration.vrSynonyms = configUpdate.voiceRecognitionCommandNames; - - [self sendConnectionManagerRequest:changeRegistration withResponseHandler:nil]; } [self sdl_transitionToState:SDLLifecycleStateSettingUpManagers]; |