diff options
author | Sho Amano <samano@xevo.com> | 2017-09-01 14:55:04 +0900 |
---|---|---|
committer | Sho Amano <samano@xevo.com> | 2017-09-01 23:05:24 +0900 |
commit | 91892b4823aaf38dd40bbe1c903609f827473374 (patch) | |
tree | c195fcaddc6da1ae29843d773cf2b4d5afc35393 | |
parent | e2b82991823fdfbe1cf9c10bc288ac0cd38d09a6 (diff) | |
download | sdl_android-91892b4823aaf38dd40bbe1c903609f827473374.tar.gz |
Pass rejected params up to SdlProxyBase
10 files changed, 39 insertions, 22 deletions
diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java index f8cae95f4..1055f5deb 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/protocol/WiProProtocolTests.java @@ -16,6 +16,7 @@ import junit.framework.Assert; import java.io.ByteArrayOutputStream; import java.lang.reflect.Method; +import java.util.List; /** * This is a unit test class for the SmartDeviceLink library project class : @@ -37,7 +38,7 @@ public class WiProProtocolTests extends AndroidTestCase { @Override public void onProtocolSessionStarted(SessionType sessionType,byte sessionID, byte version, String correlationID, int hashID,boolean isEncrypted){} @Override - public void onProtocolSessionNACKed(SessionType sessionType,byte sessionID, byte version, String correlationID) {} + public void onProtocolSessionNACKed(SessionType sessionType,byte sessionID, byte version, String correlationID, List<String> rejectedParams) {} @Override public void onProtocolSessionEnded(SessionType sessionType,byte sessionID, String correlationID) {} @Override @@ -76,7 +77,7 @@ public class WiProProtocolTests extends AndroidTestCase { @Override public void onProtocolSessionStarted(SessionType sessionType,byte sessionID, byte version, String correlationID, int hashID,boolean isEncrypted){} @Override - public void onProtocolSessionNACKed(SessionType sessionType,byte sessionID, byte version, String correlationID) {} + public void onProtocolSessionNACKed(SessionType sessionType,byte sessionID, byte version, String correlationID, List<String> rejectedParams) {} @Override public void onProtocolSessionEnded(SessionType sessionType,byte sessionID, String correlationID) {} @Override diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/security/SdlSecurityBaseTest.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/security/SdlSecurityBaseTest.java index 56a482804..2bf6136fa 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/security/SdlSecurityBaseTest.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/security/SdlSecurityBaseTest.java @@ -74,7 +74,7 @@ public class SdlSecurityBaseTest extends AndroidTestCase { } @Override public void onProtocolSessionStartedNACKed(SessionType sessionType, - byte sessionID, byte version, String correlationID) { + byte sessionID, byte version, String correlationID, List<String> rejectedParams) { } @Override diff --git a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java index e05091c44..80126c67c 100644 --- a/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java +++ b/sdl_android/src/androidTest/java/com/smartdevicelink/test/streaming/AbstractPacketizerTests.java @@ -6,6 +6,7 @@ import java.io.IOException; import java.io.InputStream; import java.net.URL; import java.net.URLConnection; +import java.util.List; import junit.framework.TestCase; @@ -118,7 +119,7 @@ class MockInterfaceBroker implements ISdlConnectionListener { } @Override public void onProtocolSessionStartedNACKed(SessionType sessionType, - byte sessionID, byte version, String correlationID) { + byte sessionID, byte version, String correlationID, List<String> rejectedParams) { } @Override diff --git a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/ISdlConnectionListener.java b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/ISdlConnectionListener.java index f4b4c43d9..16350da4b 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/ISdlConnectionListener.java +++ b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/ISdlConnectionListener.java @@ -3,6 +3,8 @@ package com.smartdevicelink.SdlConnection; import com.smartdevicelink.protocol.ProtocolMessage;
import com.smartdevicelink.protocol.enums.SessionType;
+import java.util.List;
+
public interface ISdlConnectionListener {
public void onTransportDisconnected(String info);
@@ -12,7 +14,7 @@ public interface ISdlConnectionListener { public void onProtocolMessageReceived(ProtocolMessage msg);
public void onProtocolSessionStartedNACKed(SessionType sessionType,
- byte sessionID, byte version, String correlationID);
+ byte sessionID, byte version, String correlationID, List<String> rejectedParams);
public void onProtocolSessionStarted(SessionType sessionType,
byte sessionID, byte version, String correlationID, int hashID, boolean isEncrypted);
diff --git a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlConnection.java b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlConnection.java index 272c1878d..b346884aa 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlConnection.java +++ b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlConnection.java @@ -1,6 +1,7 @@ package com.smartdevicelink.SdlConnection;
+import java.util.List;
import java.util.concurrent.CopyOnWriteArrayList;
import android.content.ComponentName;
@@ -263,8 +264,9 @@ public class SdlConnection implements IProtocolListener, ITransportListener { @Override
public void onProtocolSessionNACKed(SessionType sessionType,
- byte sessionID, byte version, String correlationID) {
- _connectionListener.onProtocolSessionStartedNACKed(sessionType, sessionID, version, correlationID);
+ byte sessionID, byte version, String correlationID, List<String> rejectedParams) {
+ _connectionListener.onProtocolSessionStartedNACKed(sessionType,
+ sessionID, version, correlationID, rejectedParams);
}
@Override
@@ -433,10 +435,11 @@ public class SdlConnection implements IProtocolListener, ITransportListener { @Override
public void onProtocolSessionStartedNACKed(SessionType sessionType,
- byte sessionID, byte version, String correlationID) {
+ byte sessionID, byte version, String correlationID, List<String> rejectedParams) {
SdlSession session = findSessionById(sessionID);
if (session != null) {
- session.onProtocolSessionStartedNACKed(sessionType, sessionID, version, correlationID);
+ session.onProtocolSessionStartedNACKed(sessionType,
+ sessionID, version, correlationID, rejectedParams);
}
}
diff --git a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java index 9a11ee133..aa293a7ed 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java +++ b/sdl_android/src/main/java/com/smartdevicelink/SdlConnection/SdlSession.java @@ -559,8 +559,9 @@ public class SdlSession implements ISdlConnectionListener, IHeartbeatMonitorList @Override
public void onProtocolSessionStartedNACKed(SessionType sessionType,
- byte sessionID, byte version, String correlationID) {
- this.sessionListener.onProtocolSessionStartedNACKed(sessionType, sessionID, version, correlationID);
+ byte sessionID, byte version, String correlationID, List<String> rejectedParams) {
+ this.sessionListener.onProtocolSessionStartedNACKed(sessionType,
+ sessionID, version, correlationID, rejectedParams);
if(serviceListeners != null && serviceListeners.containsKey(sessionType)){
CopyOnWriteArrayList<ISdlServiceListener> listeners = serviceListeners.get(sessionType);
for(ISdlServiceListener listener:listeners){
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/AbstractProtocol.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/AbstractProtocol.java index 7fe5f4435..bb8c7fb6c 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/protocol/AbstractProtocol.java +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/AbstractProtocol.java @@ -3,6 +3,8 @@ package com.smartdevicelink.protocol; import com.smartdevicelink.protocol.WiProProtocol.MessageFrameAssembler;
import com.smartdevicelink.protocol.enums.SessionType;
+import java.util.List;
+
public abstract class AbstractProtocol {
private static final String SDL_LIB_TRACE_KEY = "42baba60-eb57-11df-98cf-0800200c9a66";
@@ -129,8 +131,8 @@ public abstract class AbstractProtocol { }
protected void handleProtocolSessionNACKed(SessionType sessionType,
- byte sessionID, byte version, String correlationID) {
- _protocolListener.onProtocolSessionNACKed(sessionType, sessionID, version, correlationID);
+ byte sessionID, byte version, String correlationID, List<String> rejectedParams) {
+ _protocolListener.onProtocolSessionNACKed(sessionType, sessionID, version, correlationID, rejectedParams);
}
// This method handles protocol errors. A callback is sent to the protocol
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/IProtocolListener.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/IProtocolListener.java index b54ff66c8..04397b935 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/protocol/IProtocolListener.java +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/IProtocolListener.java @@ -2,6 +2,8 @@ package com.smartdevicelink.protocol; import com.smartdevicelink.protocol.enums.*;
+import java.util.List;
+
public interface IProtocolListener {
// Called to indicate that these bytes are to be sent as part of a message.
// This call includes the part of the message.
@@ -14,7 +16,8 @@ public interface IProtocolListener { // Called to indicate that a protocol session has been started (from either side)
void onProtocolSessionStarted(SessionType sessionType, byte sessionID, byte version, String correlationID, int hashID, boolean isEncrypted);
- void onProtocolSessionNACKed(SessionType sessionType, byte sessionID, byte version, String correlationID);
+ void onProtocolSessionNACKed(SessionType sessionType, byte sessionID, byte version,
+ String correlationID, List<String> rejectedParams);
// Called to indicate that a protocol session has ended (from either side)
void onProtocolSessionEnded(SessionType sessionType, byte sessionID, String correlationID /*, String info, Exception ex*/);
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java index fa3ab3a32..c6fa078db 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java +++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/WiProProtocol.java @@ -497,6 +497,7 @@ public class WiProProtocol extends AbstractProtocol { }
handleProtocolSessionStarted(serviceType,(byte) packet.getSessionId(), getMajorVersionByte(), "", hashID, packet.isEncrypted());
} else if (frameInfo == FrameDataControlFrameType.StartSessionNACK.getValue()) {
+ List<String> rejectedParams = null;
if(packet.version >= 5){
String rejectedTag = null;
if(serviceType.equals(SessionType.RPC)){
@@ -506,11 +507,10 @@ public class WiProProtocol extends AbstractProtocol { }else if(serviceType.equals(SessionType.NAV)){
rejectedTag = ControlFrameTags.Video.StartServiceNAK.REJECTED_PARAMS;
}
- List<String> rejectedParams = (List<String>) packet.getTag(rejectedTag);
- // TODO: Pass these back
+ rejectedParams = (List<String>) packet.getTag(rejectedTag);
}
if (serviceType.eq(SessionType.NAV) || serviceType.eq(SessionType.PCM)) {
- handleProtocolSessionNACKed(serviceType, (byte)packet.getSessionId(), getMajorVersionByte(), "");
+ handleProtocolSessionNACKed(serviceType, (byte)packet.getSessionId(), getMajorVersionByte(), "", rejectedParams);
} else {
handleProtocolError("Got StartSessionNACK for protocol sessionID=" + packet.getSessionId(), null);
}
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 5f68136c9..d7c178fd9 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java @@ -134,8 +134,10 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> private boolean navServiceStartResponseReceived = false;
private boolean navServiceStartResponse = false;
+ private List<String> navServiceStartRejectedParams = null;
private boolean pcmServiceStartResponseReceived = false;
private boolean pcmServiceStartResponse = false;
+ private List<String> pcmServiceStartRejectedParams = null;
private boolean navServiceEndResponseReceived = false;
private boolean navServiceEndResponse = false;
private boolean pcmServiceEndResponseReceived = false;
@@ -355,7 +357,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> @Override
public void onProtocolSessionStartedNACKed(SessionType sessionType,
- byte sessionID, byte version, String correlationID) {
+ byte sessionID, byte version, String correlationID, List<String> rejectedParams) {
OnServiceNACKed message = new OnServiceNACKed(sessionType);
queueInternalMessage(message);
@@ -367,7 +369,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> updateBroadcastIntent(sendIntent, "COMMENT2", " NACK ServiceType: " + sessionType.getName());
sendBroadcastIntent(sendIntent);
- NavServiceStartedNACK();
+ NavServiceStartedNACK(rejectedParams);
}
else if (sessionType.eq(SessionType.PCM)) {
Intent sendIntent = createBroadcastIntent();
@@ -376,7 +378,7 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> updateBroadcastIntent(sendIntent, "COMMENT2", " NACK ServiceType: " + sessionType.getName());
sendBroadcastIntent(sendIntent);
- AudioServiceStartedNACK();
+ AudioServiceStartedNACK(rejectedParams);
}
}
@@ -3835,9 +3837,10 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> navServiceStartResponse = true;
}
- private void NavServiceStartedNACK() {
+ private void NavServiceStartedNACK(List<String> rejectedParams) {
navServiceStartResponseReceived = true;
navServiceStartResponse = false;
+ navServiceStartRejectedParams = rejectedParams;
}
private void AudioServiceStarted() {
@@ -3849,9 +3852,10 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> rpcProtectedResponseReceived = true;
rpcProtectedStartResponse = true;
}
- private void AudioServiceStartedNACK() {
+ private void AudioServiceStartedNACK(List<String> rejectedParams) {
pcmServiceStartResponseReceived = true;
pcmServiceStartResponse = false;
+ pcmServiceStartRejectedParams = rejectedParams;
}
private void NavServiceEnded() {
|