SDL_Android/SmartDeviceLinkAndroidProxy - added the correct version of the proxy
[profile/ivi/smartdevicelink.git] / SDL_Android / SmartDeviceLinkProxyAndroid / src / com / smartdevicelink / proxy / rpc / OnButtonEvent.java
index 24411e0..026e1e6 100755 (executable)
-//
-// Copyright (c) 2013 Ford Motor Company
-//
-package com.smartdevicelink.proxy.rpc;
-
-import java.util.Hashtable;
-
-import com.smartdevicelink.proxy.RPCNotification;
-import com.smartdevicelink.proxy.constants.Names;
-import com.smartdevicelink.proxy.rpc.enums.ButtonEventMode;
-import com.smartdevicelink.proxy.rpc.enums.ButtonName;
-import com.smartdevicelink.util.DebugTool;
-
-public class OnButtonEvent extends RPCNotification {
-
-    public OnButtonEvent() {
-        super("OnButtonEvent");
-    }
-    public OnButtonEvent(Hashtable hash) {
-        super(hash);
-    }
-    public ButtonName getButtonName() {
-        Object obj = parameters.get(Names.buttonName);
-        if (obj instanceof ButtonName) {
-            return (ButtonName) obj;
-        } else if (obj instanceof String) {
-            ButtonName theCode = null;
-            try {
-                theCode = ButtonName.valueForString((String) obj);
-            } catch (Exception e) {
-               DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + Names.buttonName, e);
-            }
-            return theCode;
-        }
-        return null;
-    }
-    public void setButtonName( ButtonName buttonName ) {
-        if (buttonName != null) {
-            parameters.put(Names.buttonName, buttonName );
-        }
-    }
-    public ButtonEventMode getButtonEventMode() {
-        Object obj = parameters.get(Names.buttonEventMode);
-        if (obj instanceof ButtonEventMode) {
-            return (ButtonEventMode) obj;
-        } else if (obj instanceof String) {
-            ButtonEventMode theCode = null;
-            try {
-                theCode = ButtonEventMode.valueForString((String) obj);
-            } catch (Exception e) {
-               DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + Names.buttonEventMode, e);
-            }
-            return theCode;
-        }
-        return null;
-    }
-    public void setButtonEventMode( ButtonEventMode buttonEventMode ) {
-        if (buttonEventMode != null) {
-            parameters.put(Names.buttonEventMode, buttonEventMode );
-        }
-    }
-}
+package com.smartdevicelink.proxy.rpc;\r
+\r
+import java.util.Hashtable;\r
+\r
+import com.smartdevicelink.proxy.RPCNotification;\r
+import com.smartdevicelink.proxy.constants.Names;\r
+import com.smartdevicelink.proxy.rpc.enums.ButtonEventMode;\r
+import com.smartdevicelink.proxy.rpc.enums.ButtonName;\r
+import com.smartdevicelink.util.DebugTool;\r
+\r
+/**\r
+ * Notifies application that user has depressed or released a button to which\r
+ * the application has subscribed.</br> Further information about button events\r
+ * and button-presses can be found at {@linkplain SubscribeButton}.\r
+ * <p>\r
+ * </p>\r
+ * <b>HMI Status Requirements:</b>\r
+ * <ul>\r
+ * HMILevel:\r
+ * <ul>\r
+ * <li>The application will receive OnButtonEvent notifications for all\r
+ * subscribed buttons when HMILevel is FULL.</li>\r
+ * <li>The application will receive OnButtonEvent notifications for subscribed\r
+ * media buttons when HMILevel is LIMITED.</li>\r
+ * <li>Media buttons include SEEKLEFT, SEEKRIGHT, TUNEUP, TUNEDOWN, and\r
+ * PRESET_0-PRESET_9.</li>\r
+ * <li>The application will not receive OnButtonEvent notification when HMILevel\r
+ * is BACKGROUND.</li>\r
+ * </ul>\r
+ * AudioStreamingState:\r
+ * <ul>\r
+ * <li> Any </li>\r
+ * </ul>\r
+ * SystemContext:\r
+ * <ul>\r
+ * <li>MAIN, VR. In MENU, only PRESET buttons. In VR, pressing any subscribable\r
+ * button will cancel VR.</li>\r
+ * </ul>\r
+ * </ul>\r
+ * <p>\r
+ * <b>Parameter List:</b>\r
+ * <table  border="1" rules="all">\r
+ * <tr>\r
+ * <th>Name</th>\r
+ * <th>Type</th>\r
+ * <th>Description</th>\r
+ * <th>Req</th>\r
+ * <th>Notes</th>\r
+ * <th>Applink Ver Available</th>\r
+ * </tr>\r
+ * <tr>\r
+ * <td>buttonName</td>\r
+ * <td>{@linkplain ButtonName}</td>\r
+ * <td>Name of the button which triggered this event</td>\r
+ * <td></td>\r
+ * <td></td>\r
+ * <td>SmartDeviceLink 1.0</td>\r
+ * </tr>\r
+ * <tr>\r
+ * <td>buttonEventMode</td>\r
+ * <td>{@linkplain ButtonEventMode}</td>\r
+ * <td>Indicats button was depressed (DOWN) or released (UP)</td>\r
+ * <td></td>\r
+ * <td></td>\r
+ * <td>SmartDeviceLink 1.0</td>\r
+ * </tr>\r
+ * <tr>\r
+ * <td>customButtonID</td>\r
+ * <td>Integer</td>\r
+ * <td>If ButtonName is ¡°CUSTOM_BUTTON", this references the integer ID passed\r
+ * by a custom button. (e.g. softButton ID)</td>\r
+ * <td>N</td>\r
+ * <td>Minvalue=0 Maxvalue=65536</td>\r
+ * <td>SmartDeviceLink 2.0</td>\r
+ * </tr>\r
+ * </table>\r
+ * </p>\r
+ * \r
+ * @since SmartDeviceLink 1.0\r
+ * \r
+ * @see SubscribeButton\r
+ * @see UnsubscribeButton\r
+ * \r
+ * \r
+ */\r
+public class OnButtonEvent extends RPCNotification {\r
+       /**\r
+       *Constructs a newly allocated OnButtonEvent object\r
+       */\r
+    public OnButtonEvent() {\r
+        super("OnButtonEvent");\r
+    }\r
+    /**\r
+        * <p>\r
+        * Constructs a newly allocated OnButtonEvent object indicated by the\r
+        * Hashtable parameter\r
+        * </p>\r
+        * \r
+        * @param hash\r
+        *            The Hashtable to use\r
+     */    \r
+    public OnButtonEvent(Hashtable hash) {\r
+        super(hash);\r
+    }\r
+    /**\r
+     * <p>Returns <i>{@linkplain ButtonName}</i> the button's name</p>\r
+     * @return ButtonName Name of the button\r
+     */    \r
+    public ButtonName getButtonName() {\r
+        Object obj = parameters.get(Names.buttonName);\r
+        if (obj instanceof ButtonName) {\r
+            return (ButtonName) obj;\r
+        } else if (obj instanceof String) {\r
+            ButtonName theCode = null;\r
+            try {\r
+                theCode = ButtonName.valueForString((String) obj);\r
+            } catch (Exception e) {\r
+               DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + Names.buttonName, e);\r
+            }\r
+            return theCode;\r
+        }\r
+        return null;\r
+    }\r
+    /**\r
+     * <p>Set the button's name</p>    \r
+     * @param buttonName name of the button\r
+     */    \r
+    public void setButtonName(ButtonName buttonName) {\r
+        if (buttonName != null) {\r
+            parameters.put(Names.buttonName, buttonName);\r
+        } else {\r
+               parameters.remove(Names.buttonName);\r
+        }\r
+    }\r
+    /**\r
+     * <p>Return <i>{@linkplain ButtonEventMode} indicates the button was depressed or released</i></p>\r
+     * @return ButtonEventMode the button depressed or released\r
+     */    \r
+    public ButtonEventMode getButtonEventMode() {\r
+        Object obj = parameters.get(Names.buttonEventMode);\r
+        if (obj instanceof ButtonEventMode) {\r
+            return (ButtonEventMode) obj;\r
+        } else if (obj instanceof String) {\r
+            ButtonEventMode theCode = null;\r
+            try {\r
+                theCode = ButtonEventMode.valueForString((String) obj);\r
+            } catch (Exception e) {\r
+               DebugTool.logError("Failed to parse " + getClass().getSimpleName() + "." + Names.buttonEventMode, e);\r
+            }\r
+            return theCode;\r
+        }\r
+        return null;\r
+    }\r
+    /**\r
+     * <p> Set the event mode of the button,pressed or released\r
+     * @param buttonEventMode indicates the button is pressed or released\r
+     * @see ButtonEventMode\r
+     */    \r
+    public void setButtonEventMode(ButtonEventMode buttonEventMode) {\r
+        if (buttonEventMode != null) {\r
+            parameters.put(Names.buttonEventMode, buttonEventMode);\r
+        } else {\r
+               parameters.remove(Names.buttonEventMode);\r
+       }\r
+    }\r
+    public void setCustomButtonID(Integer customButtonID) {\r
+       if (customButtonID != null) {\r
+               parameters.put(Names.customButtonID, customButtonID);\r
+       } else {\r
+               parameters.remove(Names.customButtonID);\r
+       }\r
+    }\r
+    public Integer getCustomButtonID() {\r
+       return (Integer) parameters.get(Names.customButtonID);\r
+    }\r
+}\r