Skip to content

Releases: smartdevicelink/sdl_java_suite

v4.3.1

28 Jun 13:36
Compare
Choose a tag to compare

Hotfix

  • Removed debuggable=“true” from manifest that was preventing apps from moving to production

v4.3.0

24 Apr 19:17
Compare
Choose a tag to compare

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 of 18. 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 process
    • MultiplexingBluetoothTransport during reads and writes
    • SdlConnection during session registration
    • SdlProxyBase when clearing RPC response and notification listeners during close
    • TransportBroker when sending a message to router service
    • SdlBroadcastReceiver during check for running router service
    • HttpRequestTask that happens when a server can't be reached
    • SdlSecurityBase 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

17 Jan 19:34
Compare
Choose a tag to compare

Hotfix

  • Fixed issue with AOA continuously cycling after a disconnect.

v4.2.2

13 Dec 18:39
Compare
Choose a tag to compare

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

22 Nov 20:19
Compare
Choose a tag to compare

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

16 Nov 15:04
Compare
Choose a tag to compare

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

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

07 Oct 17:07
Compare
Choose a tag to compare

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

28 Sep 21:45
Compare
Choose a tag to compare

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

25 May 12:48
Compare
Choose a tag to compare

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

15 Sep 19:54
Compare
Choose a tag to compare

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)
  • 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.