diff options
author | Joey Grover <joeygrover@gmail.com> | 2017-09-22 11:37:55 -0400 |
---|---|---|
committer | Joey Grover <joeygrover@gmail.com> | 2017-09-22 11:37:55 -0400 |
commit | cc7835ce8d71cdbe5ba72b7225ed616a5ea3c628 (patch) | |
tree | cff9e90f6ded12e952caecf25501f05ef84c7232 | |
parent | bad0e8fc6791fac95ccf2f0c26a74c5af29e24f1 (diff) | |
download | sdl_android-cc7835ce8d71cdbe5ba72b7225ed616a5ea3c628.tar.gz |
Cleaning up SdlProxyBase with SCM integration
Removed variables that are no longer needed as well as setting capabilities that change after the intial RAI response
-rw-r--r-- | sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java | 41 | ||||
-rw-r--r-- | sdl_android/src/main/java/com/smartdevicelink/proxy/SystemCapabilityManager.java | 37 |
2 files changed, 45 insertions, 33 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 6b6c562bc..33c785e4f 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SdlProxyBase.java @@ -201,17 +201,8 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> protected String _autoActivateIdReturned = null;
protected Language _sdlLanguage = null;
protected Language _hmiDisplayLanguage = null;
- protected DisplayCapabilities _displayCapabilities = null;
- protected List<ButtonCapabilities> _buttonCapabilities = null;
- protected List<SoftButtonCapabilities> _softButtonCapabilities = null;
- protected PresetBankCapabilities _presetBankCapabilities = null;
- protected List<HmiZoneCapabilities> _hmiZoneCapabilities = null;
- protected List<SpeechCapabilities> _speechCapabilities = null;
protected List<PrerecordedSpeech> _prerecordedSpeech = null;
- protected List<VrCapabilities> _vrCapabilities = null;
protected VehicleType _vehicleType = null;
- protected List<AudioPassThruCapabilities> _audioPassThruCapabilities = null;
- protected HMICapabilities _hmiCapabilities = null;
protected String _systemSoftwareVersion = null;
protected List<Integer> _diagModes = null;
protected Boolean firstTimeFull = true;
@@ -1873,20 +1864,11 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> //_autoActivateIdReturned = msg.getAutoActivateID();
/*Place holder for legacy support*/ _autoActivateIdReturned = "8675309";
- _buttonCapabilities = msg.getButtonCapabilities();
- _displayCapabilities = msg.getDisplayCapabilities();
- _softButtonCapabilities = msg.getSoftButtonCapabilities();
- _presetBankCapabilities = msg.getPresetBankCapabilities();
- _hmiZoneCapabilities = msg.getHmiZoneCapabilities();
- _speechCapabilities = msg.getSpeechCapabilities();
_prerecordedSpeech = msg.getPrerecordedSpeech();
_sdlLanguage = msg.getLanguage();
_hmiDisplayLanguage = msg.getHmiDisplayLanguage();
_sdlMsgVersion = msg.getSdlMsgVersion();
- _vrCapabilities = msg.getVrCapabilities();
_vehicleType = msg.getVehicleType();
- _audioPassThruCapabilities = msg.getAudioPassThruCapabilities();
- _hmiCapabilities = msg.getHmiCapabilities();
_systemSoftwareVersion = msg.getSystemSoftwareVersion();
_proxyVersionInfo = msg.getProxyVersionInfo();
@@ -2026,23 +2008,16 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> _appInterfaceRegisterd = true;
}
processRaiResponse(msg);
-
+ //Populate the system capability manager with the RAI response
+ _systemCapabilityManager.parseRAIResponse(msg);
+
//_autoActivateIdReturned = msg.getAutoActivateID();
/*Place holder for legacy support*/ _autoActivateIdReturned = "8675309";
- _buttonCapabilities = msg.getButtonCapabilities();
- _displayCapabilities = msg.getDisplayCapabilities();
- _softButtonCapabilities = msg.getSoftButtonCapabilities();
- _presetBankCapabilities = msg.getPresetBankCapabilities();
- _hmiZoneCapabilities = msg.getHmiZoneCapabilities();
- _speechCapabilities = msg.getSpeechCapabilities();
_prerecordedSpeech = msg.getPrerecordedSpeech();
_sdlLanguage = msg.getLanguage();
_hmiDisplayLanguage = msg.getHmiDisplayLanguage();
_sdlMsgVersion = msg.getSdlMsgVersion();
- _vrCapabilities = msg.getVrCapabilities();
_vehicleType = msg.getVehicleType();
- _audioPassThruCapabilities = msg.getAudioPassThruCapabilities();
- _hmiCapabilities = msg.getHmiCapabilities();
_systemSoftwareVersion = msg.getSystemSoftwareVersion();
_proxyVersionInfo = msg.getProxyVersionInfo();
@@ -2561,11 +2536,11 @@ public abstract class SdlProxyBase<proxyListenerType extends IProxyListenerBase> final SetDisplayLayoutResponse msg = new SetDisplayLayoutResponse(hash);
// successfully changed display layout - update layout capabilities
- if(msg.getSuccess()){
- _displayCapabilities = msg.getDisplayCapabilities();
- _buttonCapabilities = msg.getButtonCapabilities();
- _presetBankCapabilities = msg.getPresetBankCapabilities();
- _softButtonCapabilities = msg.getSoftButtonCapabilities();
+ if(msg.getSuccess() && _systemCapabilityManager!=null){
+ _systemCapabilityManager.setCapability(SystemCapabilityType.DISPLAY, msg.getDisplayCapabilities());
+ _systemCapabilityManager.setCapability(SystemCapabilityType.BUTTON, msg.getButtonCapabilities());
+ _systemCapabilityManager.setCapability(SystemCapabilityType.PRESET_BANK, msg.getPresetBankCapabilities());
+ _systemCapabilityManager.setCapability(SystemCapabilityType.SOFTBUTTON, msg.getSoftButtonCapabilities());
}
if (_callbackToUIThread) {
diff --git a/sdl_android/src/main/java/com/smartdevicelink/proxy/SystemCapabilityManager.java b/sdl_android/src/main/java/com/smartdevicelink/proxy/SystemCapabilityManager.java index d1e82356c..325a61c98 100644 --- a/sdl_android/src/main/java/com/smartdevicelink/proxy/SystemCapabilityManager.java +++ b/sdl_android/src/main/java/com/smartdevicelink/proxy/SystemCapabilityManager.java @@ -3,6 +3,7 @@ package com.smartdevicelink.proxy; import com.smartdevicelink.proxy.interfaces.OnSystemCapabilityListener; import com.smartdevicelink.proxy.rpc.GetSystemCapability; import com.smartdevicelink.proxy.rpc.GetSystemCapabilityResponse; +import com.smartdevicelink.proxy.rpc.HMICapabilities; import com.smartdevicelink.proxy.rpc.RegisterAppInterfaceResponse; import com.smartdevicelink.proxy.rpc.enums.Result; import com.smartdevicelink.proxy.rpc.enums.SystemCapabilityType; @@ -35,10 +36,46 @@ public class SystemCapabilityManager { cachedSystemCapabilities.put(SystemCapabilityType.PRESET_BANK, response.getPresetBankCapabilities()); cachedSystemCapabilities.put(SystemCapabilityType.SOFTBUTTON, response.getSoftButtonCapabilities()); cachedSystemCapabilities.put(SystemCapabilityType.SPEECH, response.getSpeechCapabilities()); + cachedSystemCapabilities.put(SystemCapabilityType.VOICE_RECOGNITION, response.getVrCapabilities()); } } /** + * Sets a capability in the cached map. This should only be done when an RPC is received and contains updates to the capability + * that is being cached in the SystemCapabilityManager. + * @param systemCapabilityType + * @param capability + */ + public void setCapability(SystemCapabilityType systemCapabilityType, Object capability){ + cachedSystemCapabilities.put(systemCapabilityType,capability); + } + + /** + * Ability to see if the connected module supports the given capability. Useful to check before + * attempting to query for capabilities that require asynchronous calls to initialize. + * @param type the SystemCapabilityType that is to be checked + * @return if that capability is supported with the current, connected module + */ + public boolean isCapabilitySupported(SystemCapabilityType type){ + if(cachedSystemCapabilities.containsKey(type)){ + return true; + }else if(cachedSystemCapabilities.containsKey(SystemCapabilityType.HMI)){ + HMICapabilities hmiCapabilities = ((HMICapabilities)cachedSystemCapabilities.get(SystemCapabilityType.HMI)); + switch (type) { + case NAVIGATION: + return hmiCapabilities.isNavigationAvailable(); + case PHONE_CALL: + return hmiCapabilities.isPhoneCallAvailable(); + case VIDEO_STREAMING: + return hmiCapabilities.isVideoStreamingAvailable(); + default: + return false; + } + }else{ + return false; + } + } + /** * @param systemCapabilityType Type of capability desired * @param scListener callback to execute upon retrieving capability */ |