Skip to content

Latest commit

 

History

History
316 lines (239 loc) · 12 KB

CHANGELOG.mkd

File metadata and controls

316 lines (239 loc) · 12 KB

OpenXC Android Library Changelog

v7.1.0

  • Added disclosure screen for location permission as per google play requirements.
  • Fix: Fixed BTLE protobuf issues

v7.1.0

  • Android 10 support
  • Updated multi-frame read support
  • Bug fixes
  • SonarQube suggested refactors

v7.0.8

  • Fix: Fixed many system prefs to now read from default application system
  • Improvement: dweet endpoint switched from http to https
  • New Feature: Populating devices with name openxc-vi only to the bluetooth device list
  • Improvement: Updated test Travis build on Xenial
  • Fix: Fixed the variantOutputgetAssemble issue
  • Improvement: Updated defaultLanguage to Language code
  • Improvement: Tracefile playing disable while recording is on and vice versa
  • Improvement: Updated the protobuf version

v7.0.0

  • New Feature: Now supports sending control commands on-demand
  • Improvement: Added new command types to CommandType enum
  • New Feature: Enabler app to include Dweet.io integration
  • New Feature: Now can connect to BLE VIs
  • New Feature: Bluetooth Prompt in case bluetooth is switched off and runtime location permission.
  • Building with Android API level 27 (8.1)
  • Updated dependencies for library and enabler.
  • Improvement: App will now pull and display the VI platform.
  • Fix: Evented messages will now show on the dashboard in enabler.
  • Fix: mKey is stripped from the message before it is written to the tracefile (#253).
  • Fix: Allow 2-byte PIDs in diagnostic request screen.
  • New Feature: Now supports BugLabs Dweet.io formats
  • New Feature: Now can include phone sensor data into OpenXC stream.

v6.1.6

  • Fix: Add exported=True option to VehicleService so it is accessible from external apps (thanks @arunganesan).

v6.1.5

  • Fix ProGuard rules so constructors for vehicle interface classes aren't stripped from production builds (#246).
  • Fix a few possible crashes when activites and services are shutting down.

v6.1.4

  • Fix version for Bintray releases.

v6.1.3

  • Remove invalid default language for Play store listing.
  • Fix Bugsnag token uploading Proguard mappings.

v6.1.2

  • Another attempt at an automated release.

v6.1.1

  • No code changes
  • First attempt at an automatic release through Travis CI to the Play Store and JCenter.

v6.1.0

  • Convert from a Maven build to Gradle, to be compatible with the officially release Android Studio.

v6.0.6

  • Fix: Protect against crashes in the activity using a fragment disappears. (#215, #217)
  • Update Bugsnag library to latest release.

v6.0.5

  • Fix: Explicitly specify signing algorithm when building release APK files to fix installation on Android 4.3 and earlier (#210).

v6.0.4

  • Fix: Use proper initialization of an explicit intent to start and bind to the VehicleService. This fixes data received by third-party OpenXC apps (i.e. everything besides the Enabler, doh!) and also allows the app to run in Android 5.0 (#213).
  • Fix: Timestamps in trace files are now respected, so playback is close-ish to the same cadence as the messages happened (#214).
  • Fix: Watch out for null pointers in a few places, caught with crash reporting.
  • Fix: Properly put service in background/foreground when a trace file restarts playback (#212).

v6.0.3

  • Improvement: Use an explicit intent to start services to avoid a security hole.
  • Fix: Guard against a race condition when querying for an active VI.
  • Fix: Gaurd against missing timestamp when rendering diagnostic messages.

v6.0.2

  • Fix: Fix classpaths in Enabler manifest so it can find the activity class.

v6.0.1

  • Change Android package namespace from com.openxc to com.openxcplatform

v6.0.0

  • BREAKING: Refactor RawMeasurement class into more useful message types in the openxc.messages package, all based on a VehicleMessage. This requires updates to all code that uses the VehicleManager.
    • Renamed addVehicleInterface -> setVehicleInterface, only allow 1 VI at a time.
    • getSourceSummaries and getSinkSummaries are removed in favor of getActiveVehicleInterface.
  • BREAKING: Classes implemeting VehicleInterface must now implement an isConnected() method.
  • BREAKING: Increase minimum Android API version from 8 to 9.
  • BREAKING: Refactor VehicleManager's API for retrieving the active vehicle interface.
  • BREAKING: Limit the VehicleManager (and Enabler) to only 1 active VI at at time, making the API and UI much more clear. Because of this change, the USB VI is no longer enabled by default - it must be explicitly selected.
  • BREAKING: MockedLocationSink is renamed to VehicleLocationProvider, and it no longer implements VehicleDataSink. It is simply a VehicleMessage receiver and is instantiate explicitly in the VehicleManager.
  • BREAKING: Message listeners will no longer receive the last known value of the message when they register. The complexity of maintaining this was not worth it since there is a synchronous API you can get to get the current value on startup anyway.
  • Feature: Support sending diagnostic requests to a VI.
  • Feature: Support receiving diagnostic responses from a VI.
  • Feature: Add new KeyMatcher class to support matching multiple types of messages from VI with a single handler.
  • Feature: Redesign Enabler UI for clarity and add new swipeable view panels
    • Dynamically list all received simple vehicle messages in Enabler instead of hard-coding a subset. Supports anything being sent by the VI with a name and value.
    • View a list of all received CAN messages, with timestamp, ID and data.
    • Send an arbitrary CAN message.
    • Send a diagnostic request.
    • View diagnostic responses.
  • Improvement: Add full support for receiving and sending protobuf encoded messages to a VI (although the vi-firmware does not yet have full support for receiving commands encoded as protobufs, see vi-firmware#313.
  • Improvement: Use Gson for JSON (de)serialization to greatly decrease code complexity in exchange for a small performance hit.
  • Improvement: Use message injection instead of trace file playback in test suite for quicker, more reliable tests.
  • Improvement: Only attempt to send commands to a VI if it claims to be connected.
  • Improvement: Don't display Android's GPS location in Enabler to avoid battery drain.
  • Improvement: Use more standard icons to show vehicle interface connectivity in Enabler, and include multiple resolutions for high-DPI displays.
  • Improvement: Switch from Crashlytics to Bugsnag for crash reporting as it doesn't require an Eclipse plugin to get going.
  • Improvement: If native GPS overwriting is disabled, fully disable the vehicle location provider instead of just leaving it on.
  • Improvement: If native GPS injection is enabled, only register for GPS updates from the phone if connected to a vehicle interface. If not connected, don't keep GPS alive to avoid battery drain.
  • Improvement: Greatly increase unit test coverage, from 8% to 57%.
  • Improvement: Add a callback for VehicleDataSource instances registered with the VehicleManager to be notified when the pipeline is activated or deactivated.
  • Fix: Warning displayed properly when remote vehicle service is not running.

v5.3.2

  • Be less strict about incoming JSON messages (allow whitespace).

v5.3.1

  • Improve reliability of automatic Bluetooth device detection and decrease the impact on battery life.
  • Listen for Bluetooth VIs that initiate a new connection to avoid polling. Uncheck the "use polling" option in the Enabler if you have a new Ford Reference VI with a big "OpenXC" sticker on it, as this version is capable of initiating the Bluetooth connection on wakeup.

v5.3

  • Automatically discover, initiate pairing and connect to Bluetooth-enabled OpenXC vehicle interfaces.

v5.2

  • Support Android API level 19.
  • Fix timestamps in trace files - support different locales and restore fractional parts.
  • Add option to automatically connect to paired OpenXC-VI-* Bluetooth device.
  • Merge Vehicle Dashboard example into Enabler.
  • Simplified Enabler view - less debug information.
  • Fix display of Android location data in dashboard for comparison.

v5.1.1

  • Fix lifecycle issues with VehicleService from Enabler app.
  • Fix Bluetooth data sources in Android API 10-13 and below (2.3.x).
  • Fix selecting a trace file for playback in Android API 10-13 (2.3.x).

v5.1

  • Run OpenXC VehicleService in the foreground (including an Android notification) when connected to a vehicle interface.
  • Fix possible concurrency problems with USB, Bluetooth and network vehicle interface sources.
  • Fix UI blocking when changing network vehicle interface URL.
  • Decode binary output from a vehicle interface (experimental)
  • Display app version in an 'About' page in Enabler.
  • Re-styled Enabler to better fit on small screens.
  • Update a few dependencies, leading lower CPU overhead in normal operation.

v5.0.0

  • Add OpenXC icon to Enabler
  • Don't send timestamps with commands to the vehicle.
  • BREAKING CHANGE: Store timestamps as milliseconds in Java code, and as seconds (with fractions) in serialized measurements (#47 at GitHub)

v4.0.3

  • Building with Android API level 18
  • Fix possible deadlock in network data source

v4.0.2

  • Fix build with Eclipse and the latest version of Maven plugins.
  • Increase logging verbosity for debugging VehicleDataSinks.
  • Split trips in trace file recorder based on data received, not just time.
  • Protect against a race condition in the Bluetooth and Network interfaces.

v4.0.1

  • Fix a regression for Android 2.3 and 3.0/3.1 devices. Library and Enabler now work without USB support, as they should.

v4.0

  • BREAKING CHANGE: Combine Odometer and FineOdometer into a single high-precision measurement, Odometer. There is no more FineOdometer measurement, but Odometer is a drop-in replacement.
  • Bluetooth and file recording now more reliable - will remain running even if you leave the Enabler activity.
  • Improved USB throughput by using larger bulk transfer sizes.

v3.0

  • Add support for network-based CAN translator (thanks Ewgenij Sokolovski and Robert Rembold)
  • Push core physical vehicle interfaces back into the realm of the remote VehicleService process for performance and to accomodate a new API for writing back to the vehicle.
  • Refactor message writing API - VehicleManager.set(RawMeasurement) is now send(RawMeasurement).
  • Fix build error in Eclipse, hopefully once and for all.

v2.1.2

  • Duplicate messages are no longer received from USB data source.
  • Infrequent messages are no longer lost by the USB data source.

v2.1.1

  • Fix build error in Eclipse.

v2.1

  • Raise minimum Android API version to 9 (2.3) to use newer data structures.
  • Fix compatibility issue with Android 4.2.
  • Bump platform build version to Android SDK version 17 (4.2).
  • Significant performance improvements when parsing JSON and communicating between remote and in-app vehicle services.
  • Continue to flush records in the UploaderSink even if the vehicle is disconnected.

v2.0

  • Test and verify Bluetooth data source.
  • Add an option to the Enabler's settings menu to use a Bluetooth source.
  • Change vehicle data trace file format to include timestamps as native JSON.
  • Remove Maven support for Eclipse developers; library dependencies are now bundled in the repository.

v1.3

  • Greatly improve USB connection reliability.
  • Refactored library internals to allow greater flexibility, including user-defined Measurement types, data sources and data sinks.

v1.2

  • Add OpenXC Enabler application to control VehicleService in a remote process. Starts service at bootup and allows sharing the service between multiple OpenXC applications.

v1.1

  • Measurement API changed, getValue() no longers throws an exception if data is unavailable. Instead, measurement objects will not be returned to the caller unless they have valid data.

v1.0

  • Initial release, USB CAN translator support.