1 package com.smartdevicelink.proxy.rpc;
\r
3 import java.util.Hashtable;
\r
5 import com.smartdevicelink.proxy.RPCNotification;
\r
6 import com.smartdevicelink.proxy.constants.Names;
\r
7 import com.smartdevicelink.proxy.rpc.enums.Language;
\r
8 import com.smartdevicelink.util.DebugTool;
\r
11 * Provides information to what language the SmartDeviceLink HMI language was changed
\r
14 * <b>HMI Status Requirements:</b>
\r
20 * AudioStreamingState:
\r
30 * <b>Parameter List:</b>
\r
31 * <table border="1" rules="all">
\r
35 * <th>Description</th>
\r
38 * <th>Applink Ver Available</th>
\r
42 * <td>{@linkplain Language}</td>
\r
43 * <td>Current SMARTDEVICELINK voice engine (VR+TTS) language</td>
\r
46 * <td>SmartDeviceLink 2.0</td>
\r
49 * <td>hmiDisplayLanguage</td>
\r
50 * <td>{@linkplain Language}</td>
\r
51 * <td>Current display language</td>
\r
54 * <td>SmartDeviceLink 2.0</td>
\r
60 public class OnLanguageChange extends RPCNotification {
\r
62 *Constructs a newly allocated OnCommand object
\r
64 public OnLanguageChange() {
\r
65 super("OnLanguageChange");
\r
68 *<p>Constructs a newly allocated OnLanguageChange object indicated by the Hashtable parameter</p>
\r
69 *@param hash The Hashtable to use
\r
71 public OnLanguageChange(Hashtable hash) {
\r
75 * <p>Sets language that current SMARTDEVICELINK voice engine(VR+TTS) use</p>
\r
76 * @param language language that current SMARTDEVICELINK voice engine(VR+TTS) use
\r
78 public void setLanguage(Language language) {
\r
79 if (language != null) {
\r
80 parameters.put(Names.language, language);
\r
82 parameters.remove(Names.language);
\r
86 * <p>Returns language that current SMARTDEVICELINK voice engine(VR+TTS) use</p>
\r
87 * @return {@linkplain Language} language that current SMARTDEVICELINK voice engine(VR+TTS) use
\r
89 public Language getLanguage() {
\r
90 Object obj = parameters.get(Names.language);
\r
91 if (obj instanceof Language) {
\r
92 return (Language) obj;
\r
93 } else if (obj instanceof String) {
\r
94 Language theCode = null;
\r
96 theCode = Language.valueForString((String) obj);
\r
97 } catch (Exception e) {
\r
98 DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + Names.language, e);
\r
105 * <p>Sets language that current display use</p>
\r
106 * @param hmiDisplayLanguage language that current SMARTDEVICELINK voice engine(VR+TTS) use
\r
108 public void setHmiDisplayLanguage(Language hmiDisplayLanguage) {
\r
109 if (hmiDisplayLanguage != null) {
\r
110 parameters.put(Names.hmiDisplayLanguage, hmiDisplayLanguage);
\r
112 parameters.remove(Names.hmiDisplayLanguage);
\r
116 * <p>Returns language that current display use</p>
\r
117 * @return {@linkplain Language} language that current display use
\r
119 public Language getHmiDisplayLanguage() {
\r
120 Object obj = parameters.get(Names.hmiDisplayLanguage);
\r
121 if (obj instanceof Language) {
\r
122 return (Language) obj;
\r
123 } else if (obj instanceof String) {
\r
124 Language theCode = null;
\r
126 theCode = Language.valueForString((String) obj);
\r
127 } catch (Exception e) {
\r
128 DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + Names.hmiDisplayLanguage, e);
\r