summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorhannianqiao <hannianqiao@iauto.com>2020-01-16 10:09:20 +0800
committerhannianqiao <hannianqiao@iauto.com>2020-01-16 10:09:20 +0800
commit695b7c19185f5d0bfa68561de315a4c7194c2c0d (patch)
tree37df3049dc368f06022503bb79c99afbc13da8d1
parent3567addb8ec6aefcad31f2e4ae43f99b9336e59c (diff)
downloadsdl_android-695b7c19185f5d0bfa68561de315a4c7194c2c0d.tar.gz
hmiDisplayLanguage and vr/tts language set separately
-rwxr-xr-xandroid/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java28
-rw-r--r--android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java4
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java34
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManagerListener.java3
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/BaseSdlManager.java3
5 files changed, 58 insertions, 14 deletions
diff --git a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java
index 6b7e77c69..858c3ad12 100755
--- a/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java
+++ b/android/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java
@@ -198,20 +198,40 @@ public class SdlService extends Service {
}
@Override
- public LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language){
- String appName;
+ public LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language, Language hmiLanguage){
+ boolean isNeedUpdate = false;
+ String appName = APP_NAME;
+ String ttsName = APP_NAME;
switch (language) {
case ES_MX:
+ isNeedUpdate = true;
+ ttsName = APP_NAME_ES;
+ break;
+ case FR_CA:
+ isNeedUpdate = true;
+ ttsName = APP_NAME_FR;
+ break;
+ default:
+ break;
+ }
+ switch (hmiLanguage) {
+ case ES_MX:
+ isNeedUpdate = true;
appName = APP_NAME_ES;
break;
case FR_CA:
+ isNeedUpdate = true;
appName = APP_NAME_FR;
break;
default:
- return null;
+ break;
+ }
+ if (isNeedUpdate) {
+ return new LifecycleConfigurationUpdate(appName,null,TTSChunkFactory.createSimpleTTSChunks(ttsName), null);
+ } else {
+ return null;
}
- return new LifecycleConfigurationUpdate(appName,null,TTSChunkFactory.createSimpleTTSChunks(appName), null);
}
};
diff --git a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java
index 5c6656bf9..ec11b86a7 100644
--- a/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java
+++ b/android/sdl_android/src/androidTest/java/com/smartdevicelink/managers/SdlManagerTests.java
@@ -107,7 +107,7 @@ public class SdlManagerTests extends AndroidTestCase2 {
}
@Override
- public LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language){
+ public LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language, Language hmiLanguage){
return null;
}
};
@@ -118,6 +118,7 @@ public class SdlManagerTests extends AndroidTestCase2 {
builder.setAppTypes(appType);
builder.setTransportType(transport);
builder.setLanguage(Language.EN_US);
+ builder.setHMILanguage(Language.EN_US);
builder.setDayColorScheme(templateColorScheme);
builder.setNightColorScheme(templateColorScheme);
builder.setVrSynonyms(Test.GENERAL_VECTOR_STRING);
@@ -162,6 +163,7 @@ public class SdlManagerTests extends AndroidTestCase2 {
assertEquals("heyApp", sdlManager.getShortAppName());
assertEquals(appType, sdlManager.getAppTypes());
assertEquals(Language.EN_US, sdlManager.getHmiLanguage());
+ assertEquals(Language.EN_US, sdlManager.getLanguage());
assertEquals(transport, sdlManager.getTransport());
assertEquals(templateColorScheme, sdlManager.getDayColorScheme());
assertEquals(templateColorScheme, sdlManager.getNightColorScheme());
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java
index 41202fab6..6e6592e27 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManager.java
@@ -242,13 +242,14 @@ public class SdlManager extends BaseSdlManager{
@Override
protected void checkLifecycleConfiguration(){
final Language actualLanguage = this.getRegisterAppInterfaceResponse().getLanguage();
+ final Language actualHMILanguage = this.getRegisterAppInterfaceResponse().getHmiDisplayLanguage();
- if (actualLanguage != null && !actualLanguage.equals(hmiLanguage)) {
+ if ((actualLanguage != null && !actualLanguage.equals(language)) || (actualHMILanguage != null && !actualHMILanguage.equals(hmiLanguage))) {
- final LifecycleConfigurationUpdate lcu = managerListener.managerShouldUpdateLifecycle(actualLanguage);
+ final LifecycleConfigurationUpdate lcu = managerListener.managerShouldUpdateLifecycle(actualLanguage, actualHMILanguage);
if (lcu != null) {
- ChangeRegistration changeRegistration = new ChangeRegistration(actualLanguage, actualLanguage);
+ ChangeRegistration changeRegistration = new ChangeRegistration(actualLanguage, actualHMILanguage);
changeRegistration.setAppName(lcu.getAppName());
changeRegistration.setNgnMediaScreenAppName(lcu.getShortAppName());
changeRegistration.setTtsName(lcu.getTtsName());
@@ -258,7 +259,8 @@ public class SdlManager extends BaseSdlManager{
public void onResponse(int correlationId, RPCResponse response) {
if (response.getSuccess()){
// go through and change sdlManager properties that were changed via the LCU update
- hmiLanguage = actualLanguage;
+ hmiLanguage = actualHMILanguage;
+ language = actualLanguage;
if (lcu.getAppName() != null) {
appName = lcu.getAppName();
@@ -675,7 +677,7 @@ public class SdlManager extends BaseSdlManager{
}
}
- proxy = new SdlProxyBase(proxyBridge, context, appName, shortAppName, isMediaApp, hmiLanguage,
+ proxy = new SdlProxyBase(proxyBridge, context, appName, shortAppName, isMediaApp, language,
hmiLanguage, hmiTypes, appId, transport, vrSynonyms, ttsChunks, dayColorScheme,
nightColorScheme) {};
proxy.setMinimumProtocolVersion(minimumProtocolVersion);
@@ -999,10 +1001,19 @@ public class SdlManager extends BaseSdlManager{
}
/**
- * Sets the Language of the App
+ * Sets the VR+TTS Language of the App
+ * @param language the desired language to be used on the VR+TTS of the connected module
+ */
+ public Builder setLanguage(final Language language){
+ sdlManager.language = language;
+ return this;
+ }
+
+ /**
+ * Sets the display/HMI Language of the App
* @param hmiLanguage the desired language to be used on the display/HMI of the connected module
*/
- public Builder setLanguage(final Language hmiLanguage){
+ public Builder setHMILanguage(final Language hmiLanguage){
sdlManager.hmiLanguage = hmiLanguage;
return this;
}
@@ -1181,8 +1192,15 @@ public class SdlManager extends BaseSdlManager{
sdlManager.lockScreenConfig = new LockScreenConfig();
}
- if (sdlManager.hmiLanguage == null){
+ if (sdlManager.hmiLanguage == null && sdlManager.language == null){
sdlManager.hmiLanguage = Language.EN_US;
+ sdlManager.language = Language.EN_US;
+ } else if (sdlManager.hmiLanguage == null && sdlManager.language != null) {
+ sdlManager.hmiLanguage = sdlManager.language;
+ } else if (sdlManager.hmiLanguage != null && sdlManager.language == null) {
+ sdlManager.language = sdlManager.hmiLanguage;
+ } else {
+ // do nothing when language and hmiLanguage are set
}
if (sdlManager.minimumProtocolVersion == null){
diff --git a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManagerListener.java b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManagerListener.java
index d27ac27b5..96d13abab 100644
--- a/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManagerListener.java
+++ b/android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManagerListener.java
@@ -62,8 +62,9 @@ public interface SdlManagerListener extends BaseSdlManagerListener{
* is not supported.
*
* @param language The language of the connected head unit the manager is trying to update the configuration.
+ * @param hmiLanguage The hmiLanguage of the connected head unit the manager is trying to update the configuration.
* @return An object of LifecycleConfigurationUpdate if the head unit language is supported,
* otherwise null to indicate that the language is not supported.
*/
- LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language);
+ LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language, Language hmiLanguage);
}
diff --git a/base/src/main/java/com/smartdevicelink/managers/BaseSdlManager.java b/base/src/main/java/com/smartdevicelink/managers/BaseSdlManager.java
index 73a9c3dfd..f04a41205 100644
--- a/base/src/main/java/com/smartdevicelink/managers/BaseSdlManager.java
+++ b/base/src/main/java/com/smartdevicelink/managers/BaseSdlManager.java
@@ -68,6 +68,7 @@ abstract class BaseSdlManager {
String appId, appName, shortAppName;
boolean isMediaApp;
Language hmiLanguage;
+ Language language;
Vector<AppHMIType> hmiTypes;
BaseTransportConfig transport;
Vector<String> vrSynonyms;
@@ -93,6 +94,8 @@ abstract class BaseSdlManager {
protected Language getHmiLanguage() { return hmiLanguage; }
+ protected Language getLanguage() { return language; }
+
protected TemplateColorScheme getDayColorScheme() { return dayColorScheme; }
protected TemplateColorScheme getNightColorScheme() { return nightColorScheme; }