summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorBrettyWhite <geekman3454@protonmail.com>2019-08-01 16:46:38 -0400
committerBrettyWhite <geekman3454@protonmail.com>2019-08-01 16:46:38 -0400
commitac3fd13e25901030a925c1b72a654e20d8bbc4f2 (patch)
tree4c871f524e1fa1e61c8fcf2c2e2136616545b1ca
parent4e429a8c8446a95930c1177b800eb53cc0a636f7 (diff)
downloadsdl_android-ac3fd13e25901030a925c1b72a654e20d8bbc4f2.tar.gz
start of crm
-rwxr-xr-xandroid/hello_sdl_android/src/main/java/com/sdl/hellosdlandroid/SdlService.java8
-rw-r--r--android/sdl_android/src/main/java/com/smartdevicelink/managers/SdlManagerListener.java16
-rw-r--r--base/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java125
l---------baseAndroid/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java1
4 files changed, 150 insertions, 0 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 9ad06490a..3204a825c 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
@@ -15,6 +15,7 @@ import com.smartdevicelink.managers.CompletionListener;
import com.smartdevicelink.managers.SdlManager;
import com.smartdevicelink.managers.SdlManagerListener;
import com.smartdevicelink.managers.file.filetypes.SdlArtwork;
+import com.smartdevicelink.managers.lifecycle.LifecycleConfigurationUpdate;
import com.smartdevicelink.managers.screen.choiceset.ChoiceCell;
import com.smartdevicelink.managers.screen.choiceset.ChoiceSet;
import com.smartdevicelink.managers.screen.choiceset.ChoiceSetSelectionListener;
@@ -32,6 +33,7 @@ import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.FileType;
import com.smartdevicelink.proxy.rpc.enums.HMILevel;
import com.smartdevicelink.proxy.rpc.enums.InteractionMode;
+import com.smartdevicelink.proxy.rpc.enums.Language;
import com.smartdevicelink.proxy.rpc.enums.MenuLayout;
import com.smartdevicelink.proxy.rpc.enums.TriggerSource;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
@@ -188,6 +190,12 @@ public class SdlService extends Service {
@Override
public void onError(String info, Exception e) {
}
+
+ @Override
+ public LifecycleConfigurationUpdate managerShouldUpdateLifecycle(Language language){
+
+ return null;
+ }
};
// Create App Icon, this is set in the SdlManager builder
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 5a59604cc..d27ac27b5 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
@@ -32,6 +32,9 @@
package com.smartdevicelink.managers;
+import com.smartdevicelink.managers.lifecycle.LifecycleConfigurationUpdate;
+import com.smartdevicelink.proxy.rpc.enums.Language;
+
public interface SdlManagerListener extends BaseSdlManagerListener{
/**
@@ -50,4 +53,17 @@ public interface SdlManagerListener extends BaseSdlManagerListener{
* @param e the exception
*/
void onError(String info, Exception e);
+
+ /**
+ * Called when the SDL manager detected a language mismatch. In case of a language mismatch the
+ * manager should change the apps registration by updating the lifecycle configuration to the
+ * specified language. If the app can support the specified language it should return an Object
+ * of LifecycleConfigurationUpdate, otherwise it should return null to indicate that the language
+ * is not supported.
+ *
+ * @param language The language 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);
}
diff --git a/base/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java b/base/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java
new file mode 100644
index 000000000..4dbd48874
--- /dev/null
+++ b/base/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java
@@ -0,0 +1,125 @@
+/*
+ * Copyright (c) 2019 Livio, Inc.
+ * All rights reserved.
+ *
+ * Redistribution and use in source and binary forms, with or without
+ * modification, are permitted provided that the following conditions are met:
+ *
+ * Redistributions of source code must retain the above copyright notice, this
+ * list of conditions and the following disclaimer.
+ *
+ * Redistributions in binary form must reproduce the above copyright notice,
+ * this list of conditions and the following
+ * disclaimer in the documentation and/or other materials provided with the
+ * distribution.
+ *
+ * Neither the name of the Livio Inc. nor the names of its contributors
+ * may be used to endorse or promote products derived from this software
+ * without specific prior written permission.
+ *
+ * THIS SOFTWARE IS PROVIDED BY THE COPYRIGHT HOLDERS AND CONTRIBUTORS "AS IS"
+ * AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
+ * IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
+ * ARE DISCLAIMED. IN NO EVENT SHALL THE COPYRIGHT HOLDER OR CONTRIBUTORS BE
+ * LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
+ * CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
+ * SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
+ * INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
+ * CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
+ * ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
+ * POSSIBILITY OF SUCH DAMAGE.
+ *
+ * Created by brettywhite on 8/1/19 3:11 PM
+ *
+ */
+
+package com.smartdevicelink.managers.lifecycle;
+
+import android.support.annotation.Nullable;
+
+import com.smartdevicelink.proxy.rpc.TTSChunk;
+
+import java.util.List;
+
+/**
+ * Configuration update options for SDLManager. This class can be used to update the lifecycle configuration in
+ * cases the language of the head unit changes or does not match the app language.
+ */
+public class LifecycleConfigurationUpdate {
+
+ private String appName, shortAppName;
+ private List<TTSChunk> ttsName;
+ private List<String> voiceRecognitionCommandNames;
+
+ // default constructor
+ LifecycleConfigurationUpdate(){}
+
+ /**
+ * Initializes and returns a newly allocated lifecycle configuration update object with the specified app data.
+ * @param appName The full name of the app to that the configuration should be updated to.
+ * @param shortAppName An abbreviated application name that will be used on the app launching screen if the full one would be truncated.
+ * @param ttsName A Text to Speech String for voice recognition of the mobile application name.
+ * @param voiceRecognitionCommandNames Additional voice recognition commands. May not interfere with any other app name or global commands.
+ */
+ LifecycleConfigurationUpdate(@Nullable String appName, @Nullable String shortAppName, @Nullable List<TTSChunk> ttsName, @Nullable List<String> voiceRecognitionCommandNames){
+ setAppName(appName);
+ setShortAppName(shortAppName);
+ setTtsName(ttsName);
+ setVoiceRecognitionCommandNames(voiceRecognitionCommandNames);
+ }
+
+ // SETTERS AND GETTERS
+
+ /**
+ * The full name of the app to that the configuration should be updated to.
+ */
+ public void setAppName(String appName) {
+ this.appName = appName;
+ }
+
+ /**
+ * The full name of the app to that the configuration should be updated to.
+ */
+ public String getAppName() {
+ return appName;
+ }
+
+ /**
+ * An abbreviated application name that will be used on the app launching screen if the full one would be truncated.
+ */
+ public void setShortAppName(String shortAppName) {
+ this.shortAppName = shortAppName;
+ }
+
+ /**
+ * An abbreviated application name that will be used on the app launching screen if the full one would be truncated.
+ */
+ public String getShortAppName() {
+ return shortAppName;
+ }
+
+ /**
+ * A Text to Speech String for voice recognition of the mobile application name.
+ */
+ public void setTtsName(List<TTSChunk> ttsName) {
+ this.ttsName = ttsName;
+ }
+
+ /**
+ * A Text to Speech String for voice recognition of the mobile application name.
+ */
+ public List<TTSChunk> getTtsName() {
+ return ttsName;
+ }
+
+ public void setVoiceRecognitionCommandNames(List<String> voiceRecognitionCommandNames) {
+ this.voiceRecognitionCommandNames = voiceRecognitionCommandNames;
+ }
+
+ /**
+ * Additional voice recognition commands. May not interfere with any other app name or global commands.
+ */
+ public List<String> getVoiceRecognitionCommandNames() {
+ return voiceRecognitionCommandNames;
+ }
+}
diff --git a/baseAndroid/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java b/baseAndroid/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java
new file mode 120000
index 000000000..62dacca1e
--- /dev/null
+++ b/baseAndroid/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java
@@ -0,0 +1 @@
+../../../../../../../../base/src/main/java/com/smartdevicelink/managers/lifecycle/LifecycleConfigurationUpdate.java \ No newline at end of file