SDL_Android/SmartDeviceLinkAndroidProxy - added the correct version of the proxy
[profile/ivi/smartdevicelink.git] / SDL_Android / SmartDeviceLinkProxyAndroid / src / com / smartdevicelink / proxy / rpc / OnLanguageChange.java
1 package com.smartdevicelink.proxy.rpc;\r
2 \r
3 import java.util.Hashtable;\r
4 \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
9 \r
10 /**\r
11  * Provides information to what language the SmartDeviceLink HMI language was changed\r
12  * <p>\r
13  * </p>\r
14  * <b>HMI Status Requirements:</b>\r
15  * <ul>\r
16  * HMILevel:\r
17  * <ul>\r
18  * <li>TBD</li>\r
19  * </ul>\r
20  * AudioStreamingState:\r
21  * <ul>\r
22  * <li>TBD</li>\r
23  * </ul>\r
24  * SystemContext:\r
25  * <ul>\r
26  * <li>TBD</li>\r
27  * </ul>\r
28  * </ul>\r
29  * <p>\r
30  * <b>Parameter List:</b>\r
31  * <table border="1" rules="all">\r
32  * <tr>\r
33  * <th>Name</th>\r
34  * <th>Type</th>\r
35  * <th>Description</th>\r
36  * <th>Req</th>\r
37  * <th>Notes</th>\r
38  * <th>Applink Ver Available</th>\r
39  * </tr>\r
40  * <tr>\r
41  * <td>language</td>\r
42  * <td>{@linkplain Language}</td>\r
43  * <td>Current SMARTDEVICELINK voice engine (VR+TTS) language</td>\r
44  * <td>Y</td>\r
45  * <td></td>\r
46  * <td>SmartDeviceLink 2.0</td>\r
47  * </tr>\r
48  * <tr>\r
49  * <td>hmiDisplayLanguage</td>\r
50  * <td>{@linkplain Language}</td>\r
51  * <td>Current display language</td>\r
52  * <td>Y</td>\r
53  * <td></td>\r
54  * <td>SmartDeviceLink 2.0</td>\r
55  * </tr>\r
56  * </table>\r
57  * </p>\r
58  *\r
59  */\r
60 public class OnLanguageChange extends RPCNotification {\r
61         /**\r
62         *Constructs a newly allocated OnCommand object\r
63         */    \r
64     public OnLanguageChange() {\r
65         super("OnLanguageChange");\r
66     }\r
67     /**\r
68      *<p>Constructs a newly allocated OnLanguageChange object indicated by the Hashtable parameter</p>\r
69      *@param hash The Hashtable to use\r
70      */\r
71     public OnLanguageChange(Hashtable hash) {\r
72         super(hash);\r
73     }\r
74     /**\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
77      */  \r
78     public void setLanguage(Language language) {\r
79         if (language != null) {\r
80             parameters.put(Names.language, language);\r
81         } else {\r
82                 parameters.remove(Names.language);\r
83         }\r
84     }\r
85     /**\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
88      */  \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
95             try {\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
99             }\r
100             return theCode;\r
101         }\r
102         return null;\r
103     }\r
104     /**\r
105      * <p>Sets language that current display use</p>    \r
106      * @param hmiDisplayLanguage language that current SMARTDEVICELINK voice engine(VR+TTS) use\r
107      */  \r
108     public void setHmiDisplayLanguage(Language hmiDisplayLanguage) {\r
109         if (hmiDisplayLanguage != null) {\r
110             parameters.put(Names.hmiDisplayLanguage, hmiDisplayLanguage);\r
111         } else {\r
112                 parameters.remove(Names.hmiDisplayLanguage);\r
113         }\r
114     }\r
115     /**\r
116      * <p>Returns language that current  display use</p>\r
117      * @return {@linkplain Language} language that current display use\r
118      */  \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
125             try {\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
129             }\r
130             return theCode;\r
131         }\r
132         return null;\r
133     }\r
134 }\r