summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorDahiya, Anil (A.) <adahiya@ford.com>2015-04-17 15:51:17 -0400
committerDahiya, Anil (A.) <adahiya@ford.com>2015-04-24 10:26:58 -0400
commitfb50f09ba30086aa8b2bd6f94f78957a17ad9c85 (patch)
tree1773083c2426920887ff137d460ce7113f569a41
parent0304e8ba1c6ec7fd86b210d87e2509f8556055ea (diff)
downloadsdl_android-fb50f09ba30086aa8b2bd6f94f78957a17ad9c85.tar.gz
Changes for returning OnServiceEnded notification
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java18
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/InternalProxyMessage.java1
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/OnServiceEnded.java21
-rw-r--r--sdl_android_lib/src/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java5
4 files changed, 44 insertions, 1 deletions
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java b/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java
index 788474f85..82a63a24c 100644
--- a/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/SdlProxyBase.java
@@ -52,6 +52,7 @@ import com.smartdevicelink.protocol.heartbeat.HeartbeatMonitor;
import com.smartdevicelink.proxy.callbacks.InternalProxyMessage;
import com.smartdevicelink.proxy.callbacks.OnError;
import com.smartdevicelink.proxy.callbacks.OnProxyClosed;
+import com.smartdevicelink.proxy.callbacks.OnServiceEnded;
import com.smartdevicelink.proxy.interfaces.IProxyListenerALM;
import com.smartdevicelink.proxy.interfaces.IProxyListenerBase;
import com.smartdevicelink.proxy.rpc.*;
@@ -306,6 +307,9 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
@Override
public void onProtocolSessionEnded(SessionType sessionType,
byte sessionID, String correlationID) {
+ OnServiceEnded message = new OnServiceEnded(sessionType);
+ queueInternalMessage(message);
+
if (sessionType.eq(SessionType.NAV)) {
Intent sendIntent = createBroadcastIntent();
@@ -1412,6 +1416,20 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
} else {
_proxyListener.onError(msg.getInfo(), msg.getException());
}
+ } else if (message.getFunctionName().equals(InternalProxyMessage.OnServiceEnded)) {
+ final OnServiceEnded msg = (OnServiceEnded)message;
+ if (_callbackToUIThread) {
+ // Run in UI thread
+ _mainUIHandler.post(new Runnable() {
+ @Override
+ public void run() {
+ _proxyListener.onServiceEnded(msg);
+ }
+ });
+ } else {
+ _proxyListener.onServiceEnded(msg);
+ }
+
/**************Start Legacy Specific Call-backs************/
} else if (message.getFunctionName().equals(InternalProxyMessage.OnProxyOpened)) {
if (_callbackToUIThread) {
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/InternalProxyMessage.java b/sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/InternalProxyMessage.java
index 8e24b4c16..c23679e09 100644
--- a/sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/InternalProxyMessage.java
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/InternalProxyMessage.java
@@ -5,6 +5,7 @@ public class InternalProxyMessage {
public static final String OnProxyError = "OnProxyError";
public static final String OnProxyOpened = "OnProxyOpened";
public static final String OnProxyClosed = "OnProxyClosed";
+ public static final String OnServiceEnded = "OnServiceEnded";
public InternalProxyMessage(String functionName) {
//this(functionName, null, null);
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/OnServiceEnded.java b/sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/OnServiceEnded.java
new file mode 100644
index 000000000..d69802e0f
--- /dev/null
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/callbacks/OnServiceEnded.java
@@ -0,0 +1,21 @@
+package com.smartdevicelink.proxy.callbacks;
+
+import com.smartdevicelink.protocol.enums.SessionType;
+
+public class OnServiceEnded extends InternalProxyMessage {
+ private SessionType sessionType;
+
+ public OnServiceEnded() {
+ super(InternalProxyMessage.OnServiceEnded);
+ }
+
+ public OnServiceEnded(SessionType sessionType) {
+ super(InternalProxyMessage.OnServiceEnded);
+ this.sessionType = sessionType;
+ }
+
+ public SessionType getSessionType() {
+ return this.sessionType;
+ }
+
+}
diff --git a/sdl_android_lib/src/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java b/sdl_android_lib/src/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
index aaacf1665..2eb751abf 100644
--- a/sdl_android_lib/src/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
+++ b/sdl_android_lib/src/com/smartdevicelink/proxy/interfaces/IProxyListenerBase.java
@@ -1,5 +1,6 @@
package com.smartdevicelink.proxy.interfaces;
+import com.smartdevicelink.proxy.callbacks.OnServiceEnded;
import com.smartdevicelink.proxy.rpc.AddCommandResponse;
import com.smartdevicelink.proxy.rpc.AddSubMenuResponse;
import com.smartdevicelink.proxy.rpc.AlertResponse;
@@ -74,7 +75,9 @@ public interface IProxyListenerBase {
* @param e - The exception that occurred.
*/
public void onProxyClosed(String info, Exception e, SdlDisconnectedReason reason);
-
+
+ public void onServiceEnded(OnServiceEnded serviceEnded);
+
/**
* onProxyError() being called indicates that the SDL Proxy experenced an error.
*