diff options
author | Joey Grover <joeygrover@gmail.com> | 2018-10-17 11:09:28 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2018-10-17 11:09:28 -0400 |
commit | 1767363782e56b4ca8c6096eb36a1743b8917631 (patch) | |
tree | b75c2e7b4b6fa4bc112934513fb4259c119c1885 | |
parent | 2390977267c2943430bf89b89462f404c39fd844 (diff) | |
parent | edd399a4c75ca827b1c209f672af2c136292a8da (diff) | |
download | sdl_android-1767363782e56b4ca8c6096eb36a1743b8917631.tar.gz |
Merge branch 'bugfix/possible_npe' of https://github.com/XevoInc/sdl_android into release/4.7.0-rc1
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); } } |