diff options
author | BrettyWhite <geekman3454@protonmail.com> | 2019-08-01 16:46:38 -0400 |
---|---|---|
committer | BrettyWhite <geekman3454@protonmail.com> | 2019-08-01 16:46:38 -0400 |
commit | ac3fd13e25901030a925c1b72a654e20d8bbc4f2 (patch) | |
tree | 4c871f524e1fa1e61c8fcf2c2e2136616545b1ca | |
parent | 4e429a8c8446a95930c1177b800eb53cc0a636f7 (diff) | |
download | sdl_android-ac3fd13e25901030a925c1b72a654e20d8bbc4f2.tar.gz |
start of crm
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 |