Release Notes

All notable changes to this project will be documented in this file.

The format is based on Keep a Changelog and this project adheres to Semantic Versioning.

The API documentation for the current version (10.0.0) is available here.

[10.0.1] - 2024-12-19

Changed

Android

  • Improve measurement reliability for low-performing Android devices.

[10.0.0] - 2024-12-16

Breaking Changes

Android

  • Renamed the function to initialize the TireTreadScanView from withScanConfig() to init()

Added

Android

  • Added a new screen TireWidthInput to the DefaultUi with its corresponding config TireWidthInputConfig

    • This view allows users to enter the tire width to enable more accurate results

This screen is only available on Android and cannot be configured for iOS.

Changed

  • Deprecated AnylineTireTreadSdk.getTreadDepthReportUrlString() and AnylineTireTreadSdk.getTreadDepthReportPdf()

    • PDF reports are now deprecated and will be removed in the next versions.

  • Enhanced management of lifecycle events during rotation

Android

  • Changed the signature of the TireTreadScanView initialization function to include the TireTreadScanViewCallback to be able to observe events during scan process

  • Changed the signature of the TireTreadScanView initialization function to include a lambda function to observe a failed initialization

Removed

Android

  • Removed the possibility to directly set up the TireTreadScanView via XML attributes to streamline the integrator experience

  • Removed TireTreadScanView.tireTreadScanViewCallback attribute, it can now be set via the TireTreadScanView.init() function

  • Removed TireTreadScanView.onInitializationFailed attribute, it can now be set via the TireTreadScanView.init() function

[9.0.0] - 2024-11-14

Changed

  • Introduced a new and improved DefaultUI, that is more streamlined to provide the user a simpler scanning experience with less friction. Changes include:

    • New icon and default text for the OrientationWarning for a sleeker experience

    • New icon and default text for the TapToStartScanningTooltip to be a more prominent guiding experience

    • TapStoStartScanningTooltip now also makes the user aware when they have to move the device before starting the scan

    • Added a new animation to the FocusPointTooltip to better visualize how to get to a focussed camera quicker

    • Introduced a more prominent Countdown that shows how many seconds are left until the scan is done

    • Introduced a visual guide in ScanDirection to show the user in which direction he should move the device for an optimal scan result

  • Introduced a custom tag during SDK initialization to identify different devices of the same model

    • This feature is experimental and only meant for internal use

  • Using the DefaultUI does not block the user from starting the scan, if the distance to the tire is not optimal (around 20cm or 8in)

Breaking Changes

  • Removed LineProgressBar and LineProgressBarConfig to be in line with the new DefaultUI

  • Removed HowToScanTooltip and HowToScanTooltipConfig to be in line with the new DefaultUI

  • Removed ProgressTimer and ProgressTimerConfig to be in line with the new DefaultUI

[8.0.1] - 2024-11-05

Fixed

  • If the internet connection becomes unavailable before the scan is started, the TireTreadScanView will now handle it by invoking the onScanAbort callback.

[8.0.0] - 2024-10-10

Fixed

  • Fixed a crash that happens when requesting the result report with an invalid UUID

Breaking changes

Android

  • The companion object (AnylineTireTreadSdk.companion) for calling the functions was removed to provide a better integrator experience (an example of its usage can be found here)

iOS

  • Removed the unnecessary context parameter from the SDK initialisation. The SDK can now be initialised with just the license key (an example implementation can be found here).

  • The object for calling the functions changed from AnylineTireTreadSdk.companion to AnylineTireTreadSdk.shared (an example of its usage can be found here)

[7.0.0] - 2024-09-23

Added

  • Added correlationId to additionalContext to allow the integrator to tie their other Anyline scan processes to the tread depth measurements from the TireTreadSDK

  • Updated internal JSON parsing to allow for optional values in responses

Breaking changes

  • Removed function to send tire width after the scan (AnylineTireTreadSDk.sendTireWidthResultFeedback), as there is now the possibility to send it with the scan

  • Removed unneeded confidence from TireTreadResultRegion.initGlobalMm and TireTreadResultRegion.initGlobalInch

[6.1.1] - 2024-09-12

Fixed

Android

  • Fixed an issue that could lead to less images being processed during the measurement

[6.1.0] - 2024-09-06

Added

Android

  • Added an option to pass the width of the tire when initializing the scan process to further improve the accuracy of the measurements

    • an example of how this is implemented can be found here.

    • For now this feature is meant for passenger car tires only

Fixed

  • Fixed an issue where an unavailable region in the TreadResultRegion would be presented as available with 0.0 as a fallback value.

[6.0.0] - 2024-08-20

Added

  • Added the SDK’s API documentation detailing the functions and interfaces the integrator can use

  • Added an Orientation Warning to the Default UI making the user aware to hold the device in landscape mode for an optimal scan experience

Breaking Changes

  • Reworked the way results from network requests are handled: instead of two callbacks (one for failure and one for success) only one is needed to be passed as a parameter (an example of how this works for fetching the result can be found here for Android and here for iOS)

[5.2.0] - 2024-06-17

Added

  • Get Heatmap functionality is now available.

    • Using the AnylineTireTreadSdk.getHeatmap function, it is now possible to retrieve a full Heatmap of the tire’s tread depths. Check the page Analytics for more details.

  • When initializing the scan process with a JSON config, you can now listen for possible error messages with a callback method. This is not supported when initializing via view.xml.

Changed

  • Scanning is limited to landscape mode of the device to improve the scanning experience.

Fixed

Android

  • Fixed a potential crash that could happen when keeping the ScanView open for several minutes.

[5.1.0] - 2024-05-28

Added

  • Scan process can now also be set up using a full JSON string as the configuration input

    • For instructions, check the platform specific scan process pages for Android and iOS

[5.0.0] - 2024-05-24

Please be aware of the breaking changes listed below.

Added

  • Scan process can now be set up via a JSON configuration

    • For instructions, check the platform specific scan process pages for Android and iOS

  • Scan result can now easily be converted to a JSON for further processing on integrator side

    • Simple use the toJson() extension function in the TreadDepthResult object

Changed

  • Configuring the TireTreadScanViewConfig is more intuitive now.

Removed

  • Replaced some functions of TireTreadScanViewConfig with a single function withScanConfig() to make the setup process more streamlined.

Breaking changes

  • Removed the Builder from the TireTreadScanViewConfig. The configuration can be now done directly using the fields of a TireTreadScanViewConfig object.

    • Builder.withScanSpeed is now tireTreadScanViewConfig.scanSpeed

    • Builder.withAdditionalContext is now tireTreadScanViewConfig.additionalContext

    • Builder.withMeasurementSystem is now tireTreadScanViewConfig.measurementSystem

    • Builder.withCustomDefaultUiConfig is now tireTreadScanViewConfig.defaultUiConfig

    • Builder.disableDefaultHaptic is now tireTreadScanViewConfig.useDefaultHaptic

    • Builder.disableDefaultUi is now tireTreadScanViewConfig.useDefaultUi

[4.2.1] - 2024-04-23

Changed

  • Improved communications with our backend to offer a more stable and reliable scan experience

[4.2.0] - 2024-04-05

This release introduces several enhancements to the Default UI, resulting in a more accurate and intuitive scanning process. Additionally, the Default UI now supports localization and customization.

Check the Default UI specific documentation for more details.

Added

  • A new DefaultUiConfig class now allows fine-grained customization of the Default UI’s components.

    • In the component configuration classes, visible properties enable you to selectively hide specific elements while keeping others visible.

    • text properties can be used to define custom texts for the components.

    • Check the Default UI’s Customizing and Elements page for customization options, a detailed list of components, and their respective configuration classes.

Changed

  • Default UI

    • Introduced timer and moving phone icon to guide the pace and direction of the scan

    • Improved upload screen

    • Moving tire overlay adapts automatically to the orientation of the device

Make sure to always scan from outside to inside, when scanning a tire mounted on a car

[4.1.0] - 2024-03-08

This release introduces several improvements to the Default UI’s user experience and scan guidance. Additionally, it includes a new feature that allows for providing and retrieving more context for measurements. A small bug fix has also been implemented for Android.

Added

Android & iOS

  • [Default UI] Introduced a tire-shaped grid overlay to the Default UI, making it simpler to align the camera correctly with the tire’s shoulder.

    • The speed and direction to where the phone should be moved during the scan process are now guided by the tire-shaped overlay’s movement.

    • The scanning process should always be performed from the outer side to the inner side of the tire.

    • When the phone is rotated, both the overlay and the scan direction are automatically adapted.

  • [Default UI] Added a tooltip informing the user how to position the tire overlay to be in line with the shoulder of the tire.

  • [Additional Context] A new class AdditionalContext was added to enable holding more context about a specific measurement.

    • This information can be provided when initializing the TireTreadScanView.

    • If provided, its information will be returned in the measurement’s result.

    • Check the platform-specific 'scan process' documentation pages for more information.

  • [Scan View] The TireTreadScanViewConfig builder has a new .addAdditionalContext(AdditionalContext) function, enabling you to provide more context to a measurement.

  • [Result] Added a new property called measurementInfo (of type MeasurementInfo) to the TreadDepthResult class.

    • This class can be used to retrieve more information about the measurement such as UUID, status and additionalContext (if previously provided).

iOS

  • [Default UI] Added a small in-between screen to guide the user on how to focus the camera.

  • [Default Haptic] Added haptic feedback to signalise that the tire is now in focus.

Removed

  • [Default UI] As part of the user guidance improvements, the tooltip messages on the top of the UI were removed.

Fixed

[Android]

  • Fixed an issue where the distance feedback would continue to be played after leaving the Scan View.

    • In some specific scenarios, the TireTreadScanView's distance feedback would continue to be played even after ending the scan process.

    • With this release, users will not experience this issue anymore, regardless of how the TireTreadScanView is implemented.

[4.0.1] - 2024-02-26

Fixed

[iOS]

  • [Default UI] Fixed a crash that happened when some resource files were not available.

    • When using the Default UI without the image resources available in the Application’s bundle, the SDK would crash.

    • The SDK now includes those resources, preventing any such crashes.

[4.0.0] - 2024-01-25

Please be aware of the breaking changes listed below.

Changed

  • Default UI redesign

    • We reorganized the UI to offer a better user experience with the help of tool tips.

    • The Default UI now intercepts user touches to start and stop the scan process instead of using buttons.

    • We also updated the distance indicator to tell the user whether they have to move closer or farther away from the tire.

  • The DistanceStatus enum has a new status (UNKNOWN on Android - unknown on iOS), returned when no distance information is available.

    • This is the case when the device’s camera was not yet able to focus on the scan target.

Added

  • Added a new captureDistanceStatus property to the TireTreadScanner instance, of type DistanceStatus.

    • This property can be used to check if the user has the device correctly positioned for the scan process.

  • Added a tooltip icon that signalises that the camera is in optimal position to start the scanning process

Breaking Changes

  • To offer a more streamlined experience, we removed some of the classes:

    • Color

    • ATDSideButton on iOS

    • DistanceFeedbackView

    • ScanGuideView

    • ScanSideButtonsView

[3.0.1] - 2024-01-17

Fixed

[Android]

  • Fixed a crash that happened when aborting a scan that wasn’t started yet.

    • Aborting a scan process before starting it would result in crash due to an unitialized property.

    • The SDK will not crash anymore when aborting scans before their initialization.

[iOS]

  • Fixed a crash that happened when the ProximaNova-Bold font was not available.

    • When using the Default UI without the ProximaNova-Bold font available in the Application, the SDK would crash.

    • The SDK’s Default UI will not crash anymore when this font is not available.

[3.0.0] - 2023-12-28

This major release includes many improvements in the usability and stability of the Tire Tread SDK (both for integration and usage).

Please be aware of the breaking changes below:

Breaking changes

[Android & iOS]

  • ScanTireTreadScanViewConfig

    • defaultUi and defaultHaptic are now enabled by default.

    • The TireTreadScanViewConfig constructor was changed to a Builder pattern, as shown below:

      • TireTreadScanViewConfig.Builder().build() - For more details and examples, check the platform-specific "Scan Process" pages.

  • ResultsgetTreadDepthReportResult:

    • You no longer need to call getTreadDepthReportResult repeatedly until the measurement result becomes available. Just call the function on a background thread, and listen for callbacks on success and on failure.

    • getTreadDepthReportResult function is now void.

    • getTreadDepthReportResult's success callback has been renamed from Succeed to Succeeded.

    • onGetTreadDepthReportResultSucceeded callback now provides the result as a TreadDepthResult object.

    • onGetTreadDepthReportResultFailed callback now provides the failure information as a MeasurementError object.

  • ResultsTreadResultRegion object:

    • The field confidence was removed.

  • Results / PDF ReportgetTreadDepthReportPdf function:

    • This function is now void.

    • The success callback has been renamed from Succeed to Succeeded.

    • The onGetTreadDepthReportSucceeded callback provides the ByteArray of the PDF Report.

    • The onGetTreadDepthReportFailed callback provides now only an Exception.

[iOS]

  • Increase minimum iOS version requirement to 16.4.

[Android]

  • The minimum version requirements have been increased to:

    • JDK 17

    • Gradle 8.1.0

    • compileSdk 34

    • minSdk 26

    • Compose Compiler v1.5.0

  • ScanTireTreadScanView

    • The attributes useDefaultUi and useDefaultHaptic of the TireTreadScanView have been renamed to disableDefaultUi and disableDefaultHaptic respectively, with default values set to false.

      • Default UI and Haptic will be enabled by default, unless explicitly disabled.

Added

[Android & iOS]

  • Audio feedback can now be played by the SDK together with the vibration feedback. For more details and examples, check the platform-specific "Scan Process" pages.

[Android]

  • start, stop, and abort buttons, to SDK’s default UI.

  • capture distance info to SDK’s default UI.

  • capture progress bar, distance feedback, and upload screen to the default UI.

Improved

[Android]

  • Scan is now automatically aborted when the activity containing the TireTreadScanView enters the onPause state.

[iOS]

  • Greatly improve the stability and responsiveness of the SDK.

Fixed

[iOS]

  • Torch sometimes was not activated when starting a scan.

  • Crash when Haptic Engine was not available.

[2.3.0] - 2023-10-25

  • In the TreadDepthResult, a new field valueInch32nds is now available, containing the result in 32 seconds of an inch.

[2.2.0] - 2023-10-09

  • [Android] Added audio feedback in form of a beep when the tire is too far or too close to the camera

  • [Android] Added haptic feedback when the tire is too far or too close to the camera

[2.1.4] - 2023-10-05

Fixed

  • [iOS] useDefaultUi when false is showing black screen

  • [iOS] scan can start even when focus dot has not yet been added

  • [iOS] start/stop button state not updating correctly

[2.1.3] - 2023-08-24

Changed

  • More scan process and image quality improvements

[2.1.2] - 2023-08-24

Changed

  • [Android] Improve scan process and image quality

[2.1.0] - 2023-08-04

Added

  • [Android] Distance info in the default UI

  • [Android] Provide vibration feedback

[2.1.0] - 2023-07-20

This is the first release for iOS

[2.0.0] - 2023-06-27

  • Major rewrite of the SDK (available only for Android)