summaryrefslogtreecommitdiff
path: root/sdl_android/src/main/java/com/smartdevicelink/proxy
diff options
context:
space:
mode:
authorAustin Kirk <askirk@umich.edu>2017-08-08 16:42:43 -0400
committerAustin Kirk <askirk@umich.edu>2017-08-08 17:04:28 -0400
commit466da65ee277d16b9537b5855a5ffed03f9f15a9 (patch)
tree2c9f792bf99ee292497d93079c33691c95bfa561 /sdl_android/src/main/java/com/smartdevicelink/proxy
parentdd2dfcff6be877351c22e0eae56bebb58818b815 (diff)
downloadsdl_android-466da65ee277d16b9537b5855a5ffed03f9f15a9.tar.gz
Adding Bson features of evolution proposal and Service Listeners
- Testing with core still needs to be done
Diffstat (limited to 'sdl_android/src/main/java/com/smartdevicelink/proxy')
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java71
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/ISdlServiceListener.java11
2 files changed, 77 insertions, 5 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
index 08a3fba58..efaff9496 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
@@ -58,6 +58,7 @@ import com.smartdevicelink.proxy.callbacks.OnServiceNACKed;
import com.smartdevicelink.proxy.interfaces.IProxyListenerALM;
import com.smartdevicelink.proxy.interfaces.IProxyListenerBase;
import com.smartdevicelink.proxy.interfaces.IPutFileResponseListener;
+import com.smartdevicelink.proxy.interfaces.ISdlServiceListener;
import com.smartdevicelink.proxy.rpc.*;
import com.smartdevicelink.proxy.rpc.enums.AppHMIType;
import com.smartdevicelink.proxy.rpc.enums.AudioStreamingState;
@@ -83,6 +84,8 @@ import com.smartdevicelink.proxy.rpc.enums.SpeechCapabilities;
import com.smartdevicelink.proxy.rpc.enums.SystemContext;
import com.smartdevicelink.proxy.rpc.enums.TextAlignment;
import com.smartdevicelink.proxy.rpc.enums.UpdateMode;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingCodec;
+import com.smartdevicelink.proxy.rpc.enums.VideoStreamingProtocol;
import com.smartdevicelink.proxy.rpc.enums.VrCapabilities;
import com.smartdevicelink.proxy.rpc.listeners.OnPutFileUpdateListener;
import com.smartdevicelink.proxy.rpc.listeners.OnRPCNotificationListener;
@@ -333,9 +336,9 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
RPCProtectedServiceStarted();
}
} else if (sessionType.eq(SessionType.NAV)) {
- NavServiceStarted();
+ NavServiceStarted(isEncrypted);
} else if (sessionType.eq(SessionType.PCM)) {
- AudioServiceStarted();
+ AudioServiceStarted(isEncrypted);
} else if (sessionType.eq(SessionType.RPC)){
cycleProxy(SdlDisconnectedReason.RPC_SESSION_ENDED);
}
@@ -3509,7 +3512,19 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
}
public ScheduledExecutorService createScheduler(){
return Executors.newSingleThreadScheduledExecutor();
- }
+ }
+
+ public void startService(SessionType serviceType, boolean isEncrypted){
+ sdlSession.startService(serviceType, sdlSession.getSessionId(), isEncrypted);
+ }
+
+ public void endService(SessionType serviceType){
+ sdlSession.endService(serviceType, sdlSession.getSessionId());
+ }
+
+ public void setVideoConfig(ImageResolution desiredResolution, VideoStreamingFormat desiredFormat){
+ sdlSession.setVideoConfig(desiredResolution, desiredFormat);
+ }
/**
*Opens the video service (serviceType 11) and subsequently streams raw H264 video from an InputStream provided by the app
@@ -3806,19 +3821,31 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
sdlSession.drainEncoder(endOfStream);
}
- private void NavServiceStarted() {
+ private void NavServiceStarted(boolean isEncrypted) {
navServiceStartResponseReceived = true;
navServiceStartResponse = true;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.NAV)){
+ sdlSession.getServiceListeners().get(SessionType.NAV).onServiceStarted(sdlSession, SessionType.NAV, isEncrypted);
+ }
}
private void NavServiceStartedNACK() {
navServiceStartResponseReceived = true;
navServiceStartResponse = false;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.NAV)){
+ sdlSession.getServiceListeners().get(SessionType.NAV).onServiceError(sdlSession, SessionType.NAV, "Start NAV Service NACK'ed");
+ }
}
- private void AudioServiceStarted() {
+ private void AudioServiceStarted(boolean isEncrypted) {
pcmServiceStartResponseReceived = true;
pcmServiceStartResponse = true;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.PCM)){
+ sdlSession.getServiceListeners().get(SessionType.PCM).onServiceStarted(sdlSession, SessionType.PCM, isEncrypted);
+ }
}
private void RPCProtectedServiceStarted() {
@@ -3828,26 +3855,46 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
private void AudioServiceStartedNACK() {
pcmServiceStartResponseReceived = true;
pcmServiceStartResponse = false;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.PCM)){
+ sdlSession.getServiceListeners().get(SessionType.PCM).onServiceError(sdlSession, SessionType.PCM, "Start PCM Service NACK'ed");
+ }
}
private void NavServiceEnded() {
navServiceEndResponseReceived = true;
navServiceEndResponse = true;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.NAV)){
+ sdlSession.getServiceListeners().get(SessionType.NAV).onServiceEnded(sdlSession, SessionType.NAV);
+ }
}
private void NavServiceEndedNACK() {
navServiceEndResponseReceived = true;
navServiceEndResponse = false;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.NAV)){
+ sdlSession.getServiceListeners().get(SessionType.NAV).onServiceError(sdlSession, SessionType.NAV, "End NAV Service NACK'ed");
+ }
}
private void AudioServiceEnded() {
pcmServiceEndResponseReceived = true;
pcmServiceEndResponse = true;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.PCM)){
+ sdlSession.getServiceListeners().get(SessionType.PCM).onServiceEnded(sdlSession, SessionType.PCM);
+ }
}
private void AudioServiceEndedNACK() {
pcmServiceEndResponseReceived = true;
pcmServiceEndResponse = false;
+
+ if(sdlSession.getServiceListeners().containsKey(SessionType.PCM)){
+ sdlSession.getServiceListeners().get(SessionType.PCM).onServiceError(sdlSession, SessionType.PCM, "End PCM Service NACK'ed");
+ }
}
public void setAppService(Service mService)
@@ -5563,6 +5610,20 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
return sdlSession.isServiceProtected(sType);
}
+
+ public void setServiceListener(SessionType serviceType, ISdlServiceListener sdlServiceListener){
+ if(serviceType != null && sdlSession != null && sdlServiceListener != null){
+ sdlSession.setServiceListener(serviceType, sdlServiceListener);
+ }
+ }
+
+ public ImageResolution getAcceptedVideoResolution(){
+ return sdlSession.getAcceptedVideoResolution();
+ }
+
+ public VideoStreamingFormat getAcceptedVideoFormat(){
+ return sdlSession.getAcceptedVideoFormat();
+ }
public IProxyListenerBase getProxyListener()
{
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/ISdlServiceListener.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/ISdlServiceListener.java
new file mode 100644
index 000000000..db5179a73
--- /dev/null
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/interfaces/ISdlServiceListener.java
@@ -0,0 +1,11 @@
+package com.smartdevicelink.proxy.interfaces;
+
+
+import com.smartdevicelink.SdlConnection.SdlSession;
+import com.smartdevicelink.protocol.enums.SessionType;
+
+public interface ISdlServiceListener {
+ public void onServiceStarted(SdlSession session, SessionType type, boolean isEncrypted);
+ public void onServiceEnded(SdlSession session, SessionType type);
+ public void onServiceError(SdlSession session, SessionType type, String reason);
+}