summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorMikayla Ray <mikayla@livioconnect.com>2015-06-18 10:42:41 -0400
committerMikayla Ray <mikayla@livioconnect.com>2015-06-18 10:42:41 -0400
commitb840b391d229fff5dc86c04be102041a60e83b33 (patch)
treea5c00b4c5870c088610fd58cdc6d584b41d4d9bd
parente272dadfadce8fb0e7f34de22f8a7b23e11d6b37 (diff)
downloadsdl_android-feature/issue_211.tar.gz
Fixes #211 by consolidating the disconnect notification enum classes.feature/issue_211
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java2
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java41
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/AppInterfaceUnregisteredReason.java1
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/SdlDisconnectedReason.java102
4 files changed, 141 insertions, 5 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java b/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java
index 8053d870d..7bd625f0a 100644
--- a/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java
@@ -2616,7 +2616,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
if (_advancedLifecycleManagementEnabled) {
// This requires the proxy to be cycled
- cycleProxy(SdlDisconnectedReason.convertAppInterfaceUnregisteredReason(msg.getReason()));
+ cycleProxy(msg.getDisconnectedReason());
} else {
if (_callbackToUIThread) {
// Run in UI thread
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java
index 21cb9bc52..406100210 100644
--- a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/OnAppInterfaceUnregistered.java
@@ -5,6 +5,7 @@ import java.util.Hashtable;
import com.smartdevicelink.protocol.enums.FunctionID;
import com.smartdevicelink.proxy.RPCNotification;
import com.smartdevicelink.proxy.rpc.enums.AppInterfaceUnregisteredReason;
+import com.smartdevicelink.proxy.rpc.enums.SdlDisconnectedReason;
/**
* <p>Notifies an application that its interface registration has been terminated. This means that all SDL resources
@@ -40,6 +41,7 @@ import com.smartdevicelink.proxy.rpc.enums.AppInterfaceUnregisteredReason;
* @since SmartDeviceLink 1.0
* @see RegisterAppInterface
*/
+@SuppressWarnings("deprecation")
public class OnAppInterfaceUnregistered extends RPCNotification {
public static final String KEY_REASON = "reason";
/**
@@ -58,7 +60,10 @@ public class OnAppInterfaceUnregistered extends RPCNotification {
/**
* <p>Get the reason the registration was terminated</p>
* @return {@linkplain AppInterfaceUnregisteredReason} the reason the application's interface registration was terminated
+ *
+ * @see {@link #getDisconnectedReason()}
*/
+ @Deprecated
public AppInterfaceUnregisteredReason getReason() {
Object obj = parameters.get(KEY_REASON);
if (obj instanceof AppInterfaceUnregisteredReason) {
@@ -68,10 +73,30 @@ public class OnAppInterfaceUnregistered extends RPCNotification {
}
return null;
}
+
+ /**
+ * <p>Get the reason the registration was terminated</p>
+ * @return {@linkplain SdlDisconnectedReason} the reason the application's interface registration was terminated.
+ */
+ public SdlDisconnectedReason getDisconnectedReason() {
+ Object obj = parameters.get(KEY_REASON);
+ if (obj instanceof SdlDisconnectedReason) {
+ return (SdlDisconnectedReason) obj;
+ } else if (obj instanceof String) {
+ return SdlDisconnectedReason.valueForString((String) obj);
+ } else if (obj instanceof AppInterfaceUnregisteredReason) {
+ return SdlDisconnectedReason.convertAppInterfaceUnregisteredReason((AppInterfaceUnregisteredReason) obj);
+ }
+ return null;
+ }
+
/**
* <p>Set the reason application's interface was terminated</p>
* @param reason The reason application's interface registration was terminated
- */
+ *
+ * @see {@link #setDisconnectedReason()}
+ */
+ @Deprecated
public void setReason( AppInterfaceUnregisteredReason reason ) {
if (reason != null) {
parameters.put(KEY_REASON, reason );
@@ -79,4 +104,16 @@ public class OnAppInterfaceUnregistered extends RPCNotification {
parameters.remove(KEY_REASON);
}
}
-}
+
+ /**
+ * <p>Set the reason application's interface was terminated</p>
+ * @param reason The reason application's interface registration was terminated
+ */
+ public void setDisconnectedReason(SdlDisconnectedReason reason) {
+ if (reason != null) {
+ parameters.put(KEY_REASON, reason );
+ } else {
+ parameters.remove(KEY_REASON);
+ }
+ }
+} \ No newline at end of file
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/AppInterfaceUnregisteredReason.java b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/AppInterfaceUnregisteredReason.java
index 617fe9796..a80363e1b 100644
--- a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/AppInterfaceUnregisteredReason.java
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/AppInterfaceUnregisteredReason.java
@@ -6,6 +6,7 @@ package com.smartdevicelink.proxy.rpc.enums;
*
* @since SmartDeviceLink 1.0
*/
+@Deprecated
public enum AppInterfaceUnregisteredReason {
USER_EXIT,
/**
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/SdlDisconnectedReason.java b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/SdlDisconnectedReason.java
index ac1ba6ac1..7b507f7ae 100644
--- a/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/SdlDisconnectedReason.java
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/rpc/enums/SdlDisconnectedReason.java
@@ -1,16 +1,85 @@
package com.smartdevicelink.proxy.rpc.enums;
public enum SdlDisconnectedReason {
+
+ /**
+ * User ends the application.
+ *
+ * @since SmartDeviceLink 1.0
+ */
USER_EXIT,
+
+ /**
+ * Vehicle ignition turned off.
+ *
+ * @since SmartDeviceLink 1.0
+ */
IGNITION_OFF,
+
+ /**
+ * Bluetooth was turned off, causing termination of a necessary Bluetooth
+ * connection.
+ *
+ * @since SmartDeviceLink 1.0
+ */
BLUETOOTH_OFF,
+
+ /**
+ * USB was disconnected, causing termination of a necessary iAP connection.
+ *
+ * @since SmartDeviceLink 1.0
+ */
USB_DISCONNECTED,
+
+ /**
+ * Application attempted SmartDeviceLink RPC request while {@linkplain HMILevel}
+ * =NONE. App must have HMILevel other than NONE to issue RPC requests or
+ * get notifications or RPC responses.
+ *
+ * @since SmartDeviceLink 1.0
+ */
REQUEST_WHILE_IN_NONE_HMI_LEVEL,
+
+ /**
+ * Either too many -- or too many per unit of time -- requests were made by
+ * the application.
+ *
+ * @since SmartDeviceLink 1.0
+ */
TOO_MANY_REQUESTS,
+
+ /**
+ * The application has issued requests which cause driver distraction rules
+ * to be violated.
+ *
+ * @since SmartDeviceLink 1.0
+ */
DRIVER_DISTRACTION_VIOLATION,
+
+ /**
+ * The user has changed the language in effect on the SDL platform to a
+ * language that is incompatible with the language declared by the
+ * application in its RegisterAppInterface request.
+ *
+ * @since SmartDeviceLink 1.0
+ */
LANGUAGE_CHANGE,
+
+ /**
+ * The user performed a MASTER RESET on the SDL platform, causing removal
+ * of a necessary Bluetooth pairing.
+ *
+ * @since SmartDeviceLink 1.0
+ */
MASTER_RESET,
+
+ /**
+ * The user restored settings to FACTORY DEFAULTS on the SDL platform.
+ *
+ * @since SmartDeviceLink 1.0
+ */
FACTORY_DEFAULTS,
+
TRANSPORT_ERROR,
APPLICATION_REQUESTED_DISCONNECT,
DEFAULT,
@@ -20,7 +89,21 @@ public enum SdlDisconnectedReason {
BLUETOOTH_ADAPTER_ERROR,
SDL_REGISTRATION_ERROR,
APP_INTERFACE_UNREG,
- GENERIC_ERROR;
+ GENERIC_ERROR,
+
+ /**
+ * The app is not being authorized to be connected to SDL.
+ *
+ * @since SmartDeviceLink 2.0
+ */
+ APP_UNAUTHORIZED,
+
+ /**
+ * The app has committed a protocol violation.
+ *
+ * @since SmartDeviceLink 4.0
+ */
+ PROTOCOL_VIOLATION;
public static SdlDisconnectedReason valueForString(String value) {
try{
@@ -30,6 +113,15 @@ public enum SdlDisconnectedReason {
}
}
+ public static boolean isUnregisteredReason(SdlDisconnectedReason reason) {
+ if (reason == APP_UNAUTHORIZED || reason == PROTOCOL_VIOLATION) {
+ return true;
+ }
+
+ return false;
+ }
+
+ @Deprecated
public static SdlDisconnectedReason convertAppInterfaceUnregisteredReason(AppInterfaceUnregisteredReason reason) {
if(reason == null){
return null;
@@ -68,10 +160,16 @@ public enum SdlDisconnectedReason {
case FACTORY_DEFAULTS:
returnReason = SdlDisconnectedReason.FACTORY_DEFAULTS;
break;
+ case APP_UNAUTHORIZED:
+ returnReason = SdlDisconnectedReason.APP_UNAUTHORIZED;
+ break;
+ case PROTOCOL_VIOLATION:
+ returnReason = SdlDisconnectedReason.PROTOCOL_VIOLATION;
+ break;
default:
break;
}
return returnReason;
}
-}
+} \ No newline at end of file