Releases: smartdevicelink/sdl_java_suite
Releases · smartdevicelink/sdl_java_suite
v4.3.1
Hotfix
- Removed
debuggable=“true”from manifest that was preventing apps from moving to production
v4.3.0
4.3.0 Release Notes
API New Features & Breaking Changes
- The library has now moved to Android Studio as its default IDE. All files and folders have been moved to align with proper Android Studio project structure.
- The target API level is now
19instead of18. Apps will also need to target this version or higher to continue using this library. Java 7is now used to compile the library and its features can be used moving forward.
Enhancements
- Multiplexing bluetooth, legacy bluetooth, and TCP transport has been improved in performance by switching to buffer reads vs single byte read from transport.
- Trusted router service checking feature is now adjustable by developers.
- More unit tests were created.
- Router service will now check to make sure the app that propagated it has permissions to use bluetooth.
- Packet streaming classes will now use the agreed upon MTU instead of the hardcoded 1024 when the stream is not encrypted.
- App IDs sent between the client apps and the router service are now Strings instead of Longs to support longer IDs.
Bug Fixes
- Fixed issue with AOA transport not clearing old accessory reference after disconnect
- Fixed missing setting of error state in multiplexing bluetooth transport
- Fixed potential OOMs when corrupted packets are recieved in:
SdlPsmWiProProtocolBinaryFrameHeader
- Fixed possible NPEs in:
SdlRouterServicewhen checking for correct processMultiplexingBluetoothTransportduring reads and writesSdlConnectionduring session registrationSdlProxyBasewhen clearing RPC response and notification listeners during closeTransportBrokerwhen sending a message to router serviceSdlBroadcastReceiverduring check for running router serviceHttpRequestTaskthat happens when a server can't be reachedSdlSecurityBasewhen a security lib would become initialized after the base has been reset.
- Added synchronization to a cancel call in the
MultiplexTransport - Refactor code in
SdlBroadcastReceiverto protect against a potential SecurityException - Added try/catch around bluetooth system calls that can fail in Android classes
- Added try/catch when attempting to build
LocalRouterServiceobject from parcel when parcel could be corrupt - Fixed version checking flow in the router service to be cleaner and correctly synched
v4.2.3
Hotfix
- Fixed issue with AOA continuously cycling after a disconnect.
v4.2.2
Hotfix
- Fixed naming issues around the unit test project that prevented importing project into Andorid Studio.
- Fixed issues with the router service validation process to prevent massive amounts of requests to server.
- Fixed issue preventing apps from reverting to a legacy mode of transportation if no trusted router services are found.
v4.2.1
NOTE: There is a known bug in this release that can prevent connections to Ford headunits. Please avoid using this release.
Hotfix
- Fixed null pointer issues when using weak references and not checking if reference actually still existed.
v4.2.0
4.2.0 Release Notes
NOTE: There is a known bug in this release that can prevent connections to Ford headunits. Please avoid using this release.
API New Features & Breaking Changes
- Added SDL_GENERIC to DisplayType enum to move away from display type specific integrations
- APIs around the Last Mile Navigation evolution task were added
- APIs around the SendLocaiton Updates evolution task were added
Enhancements
- Unit tests are now included
- AOA support has been made easier and will follow multiplexing lifecycle
- Router service version checking has been improved in both reliability and run time
- Router service notification icons have now been updated to the latest SDL icons
- The router service will now shutdown if it is not exported
- A router service will no longer try to be used if it is not exported
- Trusted router lists are now obtain on different corner cases included when a list doesn't exist.
Bug Fixes
- Fixed a few issues within the protocol where signed/unsigned bytes were being compared
- Fixed memory leaks
- Fixed issue that caused binary frame headers to be added to v1 packets within the router service
- HttpRequestTask will now only perform one callback of success or failure, instead of one or the other followed by failure callback.
- Fixed an improper intent extra retrieval in the SdlBroadcastReceiver
- Added a missing return case out of the transport broker where a reference was null
v4.1.1 Hotfix
NOTE: There is a known bug in this release that can prevent connections to Ford headunits. Please avoid using this release.
Hotfix
- Hotfix for router discovery that was not being completed and causing errors for stand-alone router services.
v4.1.0
4.1.0 Release Notes
NOTE: There is a known bug in this release that can prevent connections to Ford headunits. Please avoid using this release.
API New Features & Breaking Changes
- Added multiplexing transport that gives the ability to share a single bluetooth RCOMM channel with many clients.
- Added external security framework that allows OEM's to provide custom security libraries.
- ProxyALM constructors have changed and old signatures been deprecated.
- Changed TouchEvent method names to be more intuitive.
Enhancements
- Multiplexing will now be the default mode of transport
Bug Fixes
- Fixed issue with sending a stop session with an incorrect hash id
- Fixed the library throwing away hybrid packets
- Fixed http onSystemRequests to actually function correctly
- Fixed a class cast exception in the BTTransport class
4.0.1 Release Notes
API New Features & Breaking Changes
- Added ability to retrieve HMICapabilities and SystemSoftwareVersion from the proxy object.'
Enhancements
- Added RPC request callbacks. Developers can now set a listener object into any RPC request and recieve the response through it.
- Added RPC notification listeners. Developers can now designate a listener for each notifcation type.
- Added a correlation id generator. Id's can be generated through this class to avoid having to keep track between multiple classes.
Bug Fixes
- Removed unused imports
4.0.0
4.0.0 Release Notes
API New Features & Breaking Changes
- Updated to v4.0 RPCs and enums.
- Enums updated:
- LayoutMode (Add and deprecate)
- AppInterfaceUnregisteredReason
- TextFieldName
- ImageFieldName
- VehicleDataResultCode
- KeyboardEvent
- RequestType
- RPCs updated
- TouchEvent - Changed timestamp (ts) to use Long instead of Integers
- HMICapabilities (new)
- RegisterAppInterface (response)
- PutFile (request) - Changed offset and length to use Long instead of Integers
- DialNumber (new - request, response)
- OnSystemRequest (notification) (Changed offset and length to use Long instead of Integers)
- Enums updated:
- Removed unused classes StringEnumer, Base64, and utl/Mime
- Removed unused methods including these public/protected methods:
com/smartDeviceLink/streaming/AbstractPacketizer-
printBuffer(byte[],int,int)
-
com/smartDeviceLink/trace/Mime-
base64Decode(String)
-
com/smartDeviceLink/trace/SdlTrace-
setTracingEnable(Boolean)
-
- Moved TransportType enum to new package which will contain all new enums for the transport package,
com/smartDeviceLink/transport/enums - Removed unused enums
- GearShiftAdviceStatus
- LightSwitchStatus
- MaintenanceModeStatus
- MessageType
- PermissionStatus
- TirePressureTellTale
- VehicleDataActiveStatus
- Video/Audio streaming are now enabled. (See spec for more detail)
- Changed the USB metadata information to use SDL as the manufacturer and Core as the model
Enhancements
- Modified generics to follow Java convention
- Made FunctionID an enum rather than class with constants
- Added more robust parameter checking
- Changed some logging methods to return boolean for easier unit tests
- Changed putFile building methods to accept Longs instead of ints. Old methods were deprecated.
- Cleaned up SdlDataTypeConverter in terms of readability.
- MTU size increased to 128kb up from 1.5k for v4. This will be the expected MTU for this version.
- Added a SDL Proxy builder that will enable simpler building of proxy objects as the large amount of constructors could be confusing.
- Changed the outgoing message queues to actually be FIFO queues.
- Heartbeat is now fully implemented which is needed for audio and video streaming. (See spec for more details).
- Device info will now automatically populate in the Register App Interface RPC.
Bugfixes
- Fixed issue with onProxyClosed not always called in multiple session scenario
- Removed recursion from HandleReceivedBytes
- Fixed wrong key issue in UpdateTurnList during turn list retrieval
- Fixed class cast exception caused by calling toArray from enums:
- FrameData
- FrameDataControlFrameType
- FrameType
- SessionType
- Redirected deprecated methods to new methods when available for following classes:
- GetVehicleData
- GetVehicleDataResponse
- OnVehicleData
- SubscribeVehicleData
- SubscribeVehicleDataResponse
- UnsubscribeVehicleData
- UnsubscribeVehicleDataResponse
- Fixed incorrect naming conventions of variables (SdlTrace)
- Fixed an issue RPC base classes that allowed for null values to be passed and cause issues with the underlying hashtable.
- Fixed issue where different types of RPC’s (response, request, notification) could be used in their parent class (RPCMessage) state to create other children of that class.
- Fixed SendLocation to use Doubles instead of Floats for degrees
- Fixed naming of SessionTypes to reflect spec and Sava naming conventions
- Fixed ByteEnumer to catch class cast exceptions
- Removed outdated logging.
- Implemented missing callbacks for turn by turn RPCs.