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
19
instead of18
. Apps will also need to target this version or higher to continue using this library. Java 7
is 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:
SdlPsm
WiProProtocol
BinaryFrameHeader
- Fixed possible NPEs in:
SdlRouterService
when checking for correct processMultiplexingBluetoothTransport
during reads and writesSdlConnection
during session registrationSdlProxyBase
when clearing RPC response and notification listeners during closeTransportBroker
when sending a message to router serviceSdlBroadcastReceiver
during check for running router serviceHttpRequestTask
that happens when a server can't be reachedSdlSecurityBase
when a security lib would become initialized after the base has been reset.
- Added synchronization to a cancel call in the
MultiplexTransport
- Refactor code in
SdlBroadcastReceiver
to 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
LocalRouterService
object 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.