summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorShinichi Watanabe <swatanabe@uievolution.com>2018-10-16 20:30:26 +0900
committerShinichi Watanabe <swatanabe@uievolution.com>2018-10-16 20:30:26 +0900
commitedd399a4c75ca827b1c209f672af2c136292a8da (patch)
tree39d6abbd48cdd5b8ae05200e2fbaa128ac9cd644
parentf1c3b9460584253c1326e7c0b3a0e6f5575e809e (diff)
downloadsdl_android-edd399a4c75ca827b1c209f672af2c136292a8da.tar.gz
Found a couple of NPEs while doing Video and Audio streaming with USB connected/disconnected. Also found a NPE while performing AudioPassThough.
This commit will address them.
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java6
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java6
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java10
-rw-r--r--sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java4
4 files changed, 18 insertions, 8 deletions
diff --git a/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java b/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java
index 4ca01ac5b..e3ef707f7 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/protocol/SdlProtocol.java
@@ -1139,18 +1139,18 @@ public class SdlProtocol {
//In the future we will actually compare the record but at this point we can assume only
//a single transport record per transport.
//TransportType type = disconnectedTransport.getType();
- if(disconnectedTransport.equals(getTransportForSession(SessionType.NAV))){
+ if(getTransportForSession(SessionType.NAV) != null && disconnectedTransport.equals(getTransportForSession(SessionType.NAV))){
//stopVideoStream();
iSdlProtocol.stopStream(SessionType.NAV);
activeTransports.remove(SessionType.NAV);
}
- if(disconnectedTransport.equals(getTransportForSession(SessionType.PCM))){
+ if(getTransportForSession(SessionType.PCM) != null && disconnectedTransport.equals(getTransportForSession(SessionType.PCM))){
//stopAudioStream();
iSdlProtocol.stopStream(SessionType.PCM);
activeTransports.remove(SessionType.PCM);
}
- if(disconnectedTransport.equals(getTransportForSession(SessionType.RPC))){
+ if(getTransportForSession(SessionType.RPC) != null && disconnectedTransport.equals(getTransportForSession(SessionType.RPC))){
//transportTypes.remove(type);
boolean primaryTransportAvailable = false;
if(requestedPrimaryTransports != null && requestedPrimaryTransports.size() > 1){
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java
index 2d9ab77d7..f23fac781 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/RPCStruct.java
@@ -103,8 +103,10 @@ public class RPCStruct {
parameters = store;
}
- for(Object value:parameters.values()){
- internalFormat(rpcVersion, value);
+ if (parameters != null) {
+ for(Object value:parameters.values()){
+ internalFormat(rpcVersion, value);
+ }
}
}
}
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 e0674724f..c4ef3293c 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java
@@ -7493,7 +7493,15 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase>
ImageResolution resolution = null;
if(protocolVersion!= null && protocolVersion.getMajor()>=5){ //At this point we should already have the capability
VideoStreamingCapability capability = (VideoStreamingCapability)_systemCapabilityManager.getCapability(SystemCapabilityType.VIDEO_STREAMING);
- resolution = capability.getPreferredResolution();
+ if (capability != null) {
+ resolution = capability.getPreferredResolution();
+ } else {
+ // Try fallback; though it may not be needed.
+ DisplayCapabilities dispCap = (DisplayCapabilities) _systemCapabilityManager.getCapability(SystemCapabilityType.DISPLAY);
+ if (dispCap != null) {
+ resolution = (dispCap.getScreenParams().getImageResolution());
+ }
+ }
}else {
DisplayCapabilities dispCap = (DisplayCapabilities) _systemCapabilityManager.getCapability(SystemCapabilityType.DISPLAY);
if (dispCap != null) {
diff --git a/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java b/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java
index cee0650e3..dba80d1c9 100644
--- a/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java
+++ b/sdl_android/src/main/java/com/smartdevicelink/util/SdlAppInfo.java
@@ -69,11 +69,11 @@ public class SdlAppInfo {
Bundle metadata = resolveInfo.serviceInfo.metaData;
- if(metadata.containsKey(SDL_ROUTER_VERSION_METADATA)){
+ if(metadata != null && metadata.containsKey(SDL_ROUTER_VERSION_METADATA)){
this.routerServiceVersion = metadata.getInt(SDL_ROUTER_VERSION_METADATA);
}
- if(metadata.containsKey(SDL_CUSTOM_ROUTER_METADATA)){
+ if(metadata != null && metadata.containsKey(SDL_CUSTOM_ROUTER_METADATA)){
this.isCustomRouterService = metadata.getBoolean(SDL_CUSTOM_ROUTER_METADATA);
}
}