Older Releases

Release 1.0.4286-2022 - 13 Oct 2022, 16:16
Release notes
  • Fix a crash in the Alexa TTS service.

  • Allow for VpaMediatorSettingsSevice.updateDefaultVpa() to accept null as parameter, to indicate that no VPA is the default VPA.

Release 1.0.4269-1995 - 12 Oct 2022, 18:53
Release notes
  • Fix for pairing pin codes which are less then 6 characters where not padded with leading zero.

  • Fix alignment of header items in recent calls tab.

  • In ContactServiceApi replace the contact property by an IviDataSource to support larger contact list.

Release 1.0.4247-1978 - 04 Oct 2022, 17:20
Release notes
  • Contacts are sorted alphabetically within a section.

  • Add activeQueueItemIndex field to MediaService, tracking the current index in a music queue.

  • Add support for map zoom in/out with Alexa.
    It's now possible to say: "Alexa, zoom in / out the map"

  • Fixed received SMS is not shown again after reconnecting the specific Bluetooth phone.

  • Contact details shows all phone numbers and all addresses associated to a contact. It is possible to scroll to see all loaded data.

  • Added empty state to dial pad when no phone is connected.

  • Ensure that contacts and messages are only uploaded to Alexa if they are originating from a phone that was allowed for upload by the user.

Release 1.0.4221-1956 - 30 Sep 2022, 09:05
Release notes
  • New map Settings Panel introduced

Release 1.0.4213-1952 - 28 Sep 2022, 18:13
Release notes
  • Fixes paired phones briefly shown in discovery panel after being forgotten.

  • Fix the incorrect scrollbar handle dimension when switching between views.

  • Added clarification in documentation on how to call service methods from frontends in order to handle service unavailability.

Release 1.0.4192-1921 - 21 Sep 2022, 21:37
Release notes
  • The TomTom Digital Cockpit SDK is now published on GitHub (follow the link above).
    The publication to Nexus is deprecated, but will remain for a few months.

Release 1.0.4173-1902 - 16 Sep 2022, 13:25
Release notes
  • Add static configuration key ignoredMediaBrowserPackageListConfigKey, of type string list.
    This lets customers hide unwanted media applications from the media app. To add a new exclusion, create an XML resource with:

    <string-array name="ignoredMediaBrowserPackageListConfigKey">

  • Added SourceDefinitionPolicy, a new media policy to define generic traits of a media source. The first of such traits is allowing to define whether a media source requires an internet connection or not.
    This allows, for example, to improve error reporting to the user when something goes wrong.

  • Add to media policy SourceDefinitionPolicy a string resolver to allow customizing the safety lock message when attempting to login to a media source while driving.

Release 1.0.4146-1883 - 13 Sep 2022, 12:49
Release notes
  • Mini-map implementation.

Release 1.0.4144-1882 - 12 Sep 2022, 18:58
Release notes
  • Fix media playlist crash for Android 8.1.

  • Fix for showing an empty state view merged with contacts entries.

Release 1.0.4117-1864 - 08 Sep 2022, 11:10
Release notes
  • Fix issue where it was not possible to reply to an SMS message on some hardware platforms.

  • Fix issue where SMS message notifications were not being displayed on some hardware platforms.

  • Adds new ttHeaderListItemViewLayout view property to TtListRecyclerView which allows a custom list header layout to be specified.

Release 1.0.4116-1863 - 07 Sep 2022, 10:38
Release notes
  • VpaMediatorService has been extended with a new field, alerts, that contains all known VPA alerts, and with two functions:
    - removeAllAlerts() - which clears all active and pending alerts.
    - stopActiveAlerts() - which stops all the active alerts.

  • Fix for not showing information on progress panel about a phone call which is on hold.

  • These changes introduce a renaming for the ProcessPanel and the ProcessPanel template classes:
    Panel renaming:
    - ProcessPanelto MainProcessPanel
    Template classes renaming:
    - ProcessViewModelBase to CompactProcessViewModel
    - ProcessViewModel to MainCompactProcessViewModel
    - ProcessFragment to MainCompactProcessFragment
    - ProcessFragmentBase to CompactProcessFragment
    - TaskProcessFragment to TaskCompactProcessFragment
    - TaskProcessViewModel to TaskCompactProcessViewModel
    - ProcessBindingAdapters to CompactProcessBindingAdapters
    - ProcessControlList to CompactProcessControlList
    - ProcessControlViewModel to CompactProcessControlViewModel
    - ProcessMetadataViewModel to CompactProcessMetadataViewModel

  • Integration of the Alexa Auto SDK version 4.1.1.

    Starting from version 4.1.0, Alexa LVC (Local Voice Control) APK is deprecated in favor of a new library that can be directly used in the app.

Release 1.0.4103-1849 - 31 Aug 2022, 07:38
Release notes
  • Fix for showing the correct initial Bluetooth panel after forgetting all paired devices.

Release 1.0.4100-1847 - 30 Aug 2022, 09:08
Release notes
  • Fix for Android 12 Bluetooth devices getting stuck while pairing.

  • Extended messaging service API to include the source (e.g. the phone from where the messages were downloaded) of a conversation:
    - Added ConversationSource abstract class;
    - Added BluetoothDeviceConversationSource class;
    - Conversation is extended with a property of type ConversationSource;
    - ConversationCache::withUpdatedConversation() updates Conversation::source as well;
    - MessagingService::getOrCreateConversationId() includes the source parameter;
    - MessagingProviderHelper::findConversation() includes the source parameter;
    - MessagingProviderHelper::findOrCreateConversation() includes the source parameter;

Release 1.0.4085-1834 - 25 Aug 2022, 11:29
Release notes
  • Reattempt to pair a Bluetooth device after canceling the previous Bluetooth pairing request is fixed

Release 1.0.4081-1830 - 24 Aug 2022, 12:24
Release notes
  • Fixed for unpaired devices which where still being shown in the paired device list of the Bluetooth modal panel after the device was unpaired by using the forget functionality.

  • Fixed dismissing SMS notification after 10 seconds timeout when paired phone gets his Bluetooth connection disconnected and then reconnected.

  • Removed the function useDefaults for iviInstance and service within the ivi block in the build.gradle.kts. The more robust alternative applyGroups in combination with includeDefaultGroups should be used instead. In addition, within the applyGroups opt-in plugin groups can be added with include and default plugin groups can be removed with exclude.

  • Media API changes:
    - Add isExplicit field to IviMediaItem and corresponding withIsExplicit method to IviMediaItemBuilder.
    - Remove EXTRA_CONTENT_IS_EXPLICIT from MediaBundleExtras.

Release 1.0.4033-1779 - 11 Aug 2022, 13:44
Release notes
  • Removed MediaPlaybackViewModel.artUri in favor of MediaPlaybackViewModel.art.

  • Changes:
    - UserFlowActionPolicy and MediaTaskPanelPolicy have been merged into UserFlowPolicy.
    - IsSearchItemPolicy removed.

  • Flickering of the recent calls list is fixed. When a new recents are added the list entries are inserted instead of adding and redrawing all items.

Release 1.0.4013-1755 - 04 Aug 2022, 12:31
Release notes
  • Moves the navigation panel to a GuidancePanel in a separate frontend. This provides more modular control over the navigation experience and lets the system UI manage the container of the navigation panel.

  • Upgraded Kotlin to version "1.6.21". Kotlin Symbol Processing and kotlinx.serialization were also upgraded to the compatible versions with Kotlin "1.6.21".

  • Added API LiveData<ProcessPanel?>.takeIfPriorityIsAtLeast(minimumPriority: ProcessPanel.Priority) to module platform_systemui_api_common_frontendcoordinator, allowing a custom system UI implementation to not display any ProcessPanels under a minimum set priority level.

Release 1.0.3999-1740 - 01 Aug 2022, 14:33
Release notes
  • Add getStyle in MediaSourceAttributionPolicy giving the possibility to override source accent color.
    Adding accent color theme attribute for each MediaPolicyFrontendExtension to override the source accent color if needed:
    - ttivi_media_amazonmusic_accent_color
    - ttivi_media_spotify_accent_color
    - ttivi_media_iheartradio_accent_color
    - ttivi_media_tunein_accent_color
    Note that the source accent color is only visible in the play button of the Spotify playlist view in the stock media frontend implementation.

  • Fixes Android 8 PAN and PBAN related crashes.

  • Contacts API: Add the source property to the Contact class. This property identifies the device or service from which the contact originates. For example, if the contact originates from a paired phone, source will identify the phone from which the contact was synchronized.

Release 1.0.3982-1720 - 27 Jul 2022, 08:52
Release notes
  • Add IviActivityTestCase.extendUiDeviceForEmbeddedActivities() to help access embedded 3rd-party activities in integration tests.

  • Added support for the Alexa TrafficDetailsTemplate, which is a display card with helpful travel information such as distance and time to some POI (Point Of Interest). The display card can be triggered by asking Alexa something like: "Alexa, how long will it take me to get to Paris?".

  • Added the ability to specify the priority in which a frontend is created, by splitting FrontendCreationPolicy.CREATE_AT_STARTUP into CREATE_AT_STARTUP and CREATE_AFTER_STARTUP.

  • Add Frontend.isReady, a way for a frontend to define whether it is ready to be presented to the user. It's one of the building blocks of the upcoming splash screen.

  • Added support for ProcessPanel to change their ProcessPanel.Priority at runtime when the priority of a process changes.
    The ProcessPanel.priority field was changed to a LiveData of a UniquePriority (a Comparable type).
    This type contains a ProcessPanel.Priority and an unique progressive ID to determine priority unambiguously, even with panels with the same priority.
    Process panels can now call ProcessPanel.setPriority() to change their process priority.

  • Update of the ProcessMetadataViewModel class:
    - Rename primaryTextArea and secondaryTextArea properties to primaryText, secondaryText and convert them to a LiveData<StringResolver?>.
    - Add a logo property (LiveData<DrawableResolver?>).

  • Add Media API UserFlowActionPolicy for a media source's PolicyProvider a to customize what happens when the user selects a source which needs to be logged in to, and what happens when the a source's settings must be shown.

  • Added a new type of panel ExpandedProcessPanel.

Release 1.0.3934-1671 - 15 Jul 2022, 15:55
Release notes
  • Fix for not being able to connect and disconnect Bluetooth devices when running on an Android 8.1 platform.

Release 1.0.3930-1663 - 15 Jul 2022, 08:41
Release notes
  • A new query called FindContactsByDisplayNames is added to find contacts based on display names.

Release 1.0.3897-1637 - 11 Jul 2022, 14:45
Release notes
  • Added support for sending NavApp navigation favorites to Alexa. This allows the user to say: "Alexa, navigate to Work / Home / <Favorite name>".
    Favorites are only sent to Alexa if the user has provided his consent ("Sync Vehicle Navigation Favorites" toggle in Alexa debug tab).
    Known issues: this currently only works when offline due to issues with the Alexa SDK.

Release 1.0.3894-1635 - 11 Jul 2022, 11:00
Release notes
  • Fix for crash in libmapdisplay-clientlib during rotation.

  • Fixed a crash which happens when (dis)connecting the HID Bluetooth device profile.

  • Reworked the media domain testing API. All ViewInteractions, ViewMatchers and waiters are now grouped inside multiple kotlin objects, to group them by the type of panel in the stock media frontend they belong with.
    The objects are:
    - BrowsingInteractions
    - DashboardInteractions
    - ExpandedProcessPanelInteractions
    - MediaFrontendInteractions
    - PlaylistPanelInteractions
    - ProcessPanelInteractions
    - SearchPanelInteractions
    - TaskProcessPanelInteractions
    Multiple API calls were removed due to being not relevant for customer testing, and some new useful ones were added.

Release 1.0.3880-1630 - 06 Jul 2022, 13:24
Release notes
  • Extended Alexa example app to show addition and usage of Car Control custom assets.
    More information on Alexa Car Control and custom assets: https://alexa.github.io/alexa-auto-sdk/docs/explore/features/car-control

  • Add a new contacts query that allows frontend to find a contact based on a ContactId.

  • Media API changes:
    - Removed MediaItemDataExtractionPolicy and MediaItemData.
    - Added MediaItemMappingPolicy.
    - In PolicyProvider: MediaItemDataExtractionPolicy is renamed to MediaItemMappingPolicy, PolicyProvider::extractItemDataPolicy is renamed to PolicyProvider::itemMappingPolicy.
    - MediaEntryGroupItem uses IviMediaItem instead of MediaItemData, and MediaEntryGroupItem::itemData is renamed to MediaEntryGroupItem::item.
    - Secondary constructor added to IviMediaItemBuilder to copy and modify an existing IviMediaItem.

  • Added to media domain testing API the MediaControl testing helper classes: SingleActionMediaControlVerifier, MultipleActionMediaControlVerifier, ToggleActionMediaControlVerifier.
    Add to media domain testing API the frontend panel testing helper classes FakeMediaControlContext, createMediaConfiguration,  and FakeSourceInfo.

Release 1.0.3863-1614 - 01 Jul 2022, 05:37
Release notes
  • Adds functionality to install/uninstall Android apps from the App Store debug menu.

Release 1.0.3860-1612 - 30 Jun 2022, 08:24
Release notes
  • Changes:
    - Removed MediaSettingsService from public API.
    - Improved Media API documentation.

Release 1.0.3855-1607 - 29 Jun 2022, 05:35
Release notes
  • Alexa Notification Indicator showed as a badge on top of the Alexa Hands-free indicator when there are available Alexa notifications.
    VpaMediatorService API extended with hasPendingNotifications property.

Release 1.0.3849-1603 - 28 Jun 2022, 05:36
Release notes
  • Incoming calls are using new Contacts DataSource API: resolving a phone number is based on a query applied to the contacts data source.

Release 1.0.3845-1596 - 24 Jun 2022, 15:17
Release notes
  • MediaPlaybackViewModel.iconArtUri: LiveData<Uri?> has been replaced with MediaPlaybackViewModel.iconArt: LiveData<RemoteDrawableResolver>

  • Refactored global tokens and introduced generic attributes for size, spacing, radius and icon size categories.
    The mentioned categories use a baseline attribute which is identified as tt_category_1.
    The postfix value indicates the multiplication factor, e.g. when tt_size_1 is 8dp then tt_size_4 becomes 32dp.

    Spacing conversion table

    Previous APINew API

    Radius conversion table
    Previous APINew API

    Icon size conversion table
    Previous APINew API

Release 1.0.3841-1590 - 23 Jun 2022, 12:48
Release notes
  • The active media source will stay active, even on error, to prevent the UI changing between sources unpredictably.

Release 1.0.3836-1585 - 23 Jun 2022, 05:34
Release notes
  • All Media domain API were changed to use java.time.Duration whenever a time duration is involved. This helps the media domain API be more uniform and in line with the rest of the platform, makes unit conversions much easier, and simplifies using the API.

    Detailed changes:

    Original APINew API
    IviMediaItem.durationMs(): LongIviMediaItem.duration(): Duration
    MediaPlaybackTimeInfo.durationMs: Long?MediaPlaybackTimeInfo.duration: Duration?
    MediaPlaybackTimeInfo.positionMs: Long?MediaPlaybackTimeInfo.position: Duration?
    MediaPlaybackTimeInfo.positionOrZero(): LongMediaPlaybackTimeInfo.positionOrZero(): Duration
    (returns Duration.ZERO for the zero case)
    MediaPlaybackTimeInfo.durationOrZero(): LongMediaPlaybackTimeInfo.durationOrZero(): Duration
    (returns Duration.ZERO for the zero case)
    MediaEntryGroupItem.durationMs: LongMediaEntryGroupItem.duration: Duration
    MediaItemData.durationMs: LongMediaItemData.duration: Duration 
    MediaPlaybackViewModel.durationMs: LiveData< Long >MediaPlaybackViewModel.duration: LiveData< Duration >
    MediaPlaybackViewModel.elapsedTimeMs: LiveData< Long? >MediaPlaybackViewModel.elapsedTime: LiveData< Duration? >
    MediaPlaybackViewModel.remainingTimeMs: LiveData< Long? >MediaPlaybackViewModel.remainingTime: LiveData< Duration? >
    TouchTrackViewModel(LiveData< Long >, ...)TouchTrackViewModel(LiveData< Duration >, ...)

    (Bundle extra of type Long)

    (Bundle extra of type Duration)
    Development options: 
    Options.initialConnectionTimeMs: LongOptions.initialConnectionTime: Duration
    (Actual timeout length is unchanged)
    Options.browsingRequestTimeoutMs: LongOptions.browsingRequestTimeout: Duration
    (Actual timeout length is unchanged)
    Testing tools: 
    createMediaItem(..., durationMs: Long?, ...)
    (top level function in com.tomtom.ivi.appsuite.media.api.testing.tools)
     createMediaItem(..., duration: Duration?, ...)

    Additionally, two new convenience Kotlin coroutine API wrappers taking a java.time.Duration type instead of kotlin.time.Duration were added:
    • com.tomtom.ivi.platform.framework.api.common.util.delay(duration: duration)
    • com.tomtom.ivi.platform.framework.api.common.util.withTimeout(duration: duration)

Release 1.0.3832-1584 - 22 Jun 2022, 05:37
Release notes
  • Media process panel use process panel adaptive layout.
    Remove open now playing button from media process panel.

Release 1.0.3830-1580 - 21 Jun 2022, 05:34
Release notes
  • Privacy Mode feature for Alexa:
    Introduce a new API, enablePrivacyMode, as part of the VpaMediatorSettingsService.
    When enabled, a user cannot invoke Alexa and Alexa will not proactively start a conversation or send any notifications to the user.
    This can be used in restricted modes such as valet or for guest drivers.
    When enabled, all Alexa functionalities are completely disabled as well as all functionalities that include Alexa voice (e.g. audio instructions during navigation, reading of messages).

Release 1.0.3828-1579 - 20 Jun 2022, 13:54
Release notes
  • Since the adaptive behavior of the process panel was introduced, the process bar panel was not always a bar any more, so that part of the name was removed.
    The following has been renamed:
    - Renamed ProcessBarPanel to ProcessPanel.
    - Renamed TaskProcessBarPanel to Process.
    - Renamed platform_frontend_api_fragment_processbar to platform_frontend_api_template_processpanel.
    - Renamed platform_frontend_api_fragment_modal to platform_frontend_api_template_modalpanel.
    - Renamed platform_frontend_api_fragment_notification to platform_frontend_api_template_notificationpanel.
    - Renamed platform_frontend_api_testing_processbar to platform_frontend_api_testing_processpanel.
    - Renamed platform_frontend_api_testing_modal to platform_frontend_api_testing_modalpanel.

  • The dial pad can be opened from the process panel.
    The dial pad will be the default tab when opening the communication frontend if there is an ongoing call.

  • Add a Dial Pad tab to the communication frontend. With the dial pad a phone number can be manually entered to be called. And it can be used to send DTMF tones during a call to navigate menus.

Release 1.0.3810-1559 - 16 Jun 2022, 05:33
Release notes
  • Adds a switch to the App Store tab of the debug menu allowing display of Android apps to be toggled on and off.

  • Add the list of countries supported by a VPA to the VpaProperties, exposed by the VpaMediatorService.

  • Added Android 8.1 compatibility for BluetoothProfile.getConnectionPolicy.

  • Changes:
    - Recent calls is using IviDataSource: Finding call log contacts based on phone number query.
    - Process bar is using IviDataSource: Showing contacts details on the process bar based on phone number query.

Release 1.0.3806-1554 - 15 Jun 2022, 05:41
Release notes
  • Changes:
    - Add progress bar to process panel template
    - Renaming ttivi_media_player_progressbar_height to ttivi_processpanel_progressbar_height.

  • Alexa's search and navigation capabilities have been extended to the offline use case.
    It is now possible to ask similar questions as in the online case:
    - "Alexa, show me nearby Asian restaurants"
    - "Alexa, take me to Starbucks"
    - "Alexa, what's the address of Chase Bank in San Francisco?"
    - "Alexa, what's the best way to 2795 Augustine Drive?"
    - "Alexa, give me directions to Seattle"
    This feature is only available if the application is configured to use onboard map visualization.

Release 1.0.3791-1534 - 09 Jun 2022, 05:40
Release notes
  • Process panel template could be now reused in task process panel:
    - ProcessBarFragment is renamed to ProcessFragmentBase and offers two abstract classes to implement: ProcessFragment and TaskProcessFragment.
    - ProcessBarViewModel is renamed to ProcessViewModelBase and offers two abstract classed to implement: ProcessViewModelBase and TaskProcessViewModel.
    Choose suitable variant depending on the panel.

  • Add a safety lock static configuration in module platform_safetylock_api_common_configuration

  • Improve performance of trace events.

  • New media domain API SetRatingAction. This type of standard action allows giving a rating to the currently played media.

Release 1.0.3770-1513 - 01 Jun 2022, 12:44
Release notes
  • Reduce vertical padding within the main menu overflow panel.

  • Fix issue during media playback where the seeking controls could be incorrectly enabled.
    The media API TouchTrackViewModel was changed to clarify its usage:
    * Constructor parameter TouchTrackViewModel.isSeekActionSupported: LiveData<Boolean> is not a public value anymore but just a parameter.
    * Public value TouchTrackViewModel.isSeekingAvailable: LiveData<Boolean> has been introduced.

  • Dismiss login and settings panels if the safety lock is activated.
    API change: MediaFrontendContext.Panels.openActivityPanel: onFinishedCallback is always called if the activity panel is dismissed by any reason.

  • When there are several quick replies available to the user, only the selected one is shown as sent.

  • The AppTileView UI control has been promoted from being internal to being public and IviExperimental.

Release 1.0.3712-1453 - 13 May 2022, 12:40
Release notes
  • Changes in media API:
    - The MediaPolicyFrontendExtension constructor takes a package name and an optional class name instead of a SourceId. This allows policies to be applied to the entire media source package.
    - The constructor and fields of MediaConfiguration are no longer public. The asMediaConfiguration function is now public and is intended to create MediaConfiguration objects. Use the existing getPolicyProvider method to access policy providers.

  • TomTom Digital Cockpit now uses type-safe properties for quantities in its APIs to expose physical units such as time duration, distance, energy, power, etc. Property names no longer have an unit suffix, for example, batteryChargeLevelKwh became batteryChargeLevel.

  • Introduce a new contacts API that supports paging. The MirrorableMap contacts API will be marked as deprecated and then removed.
    The new contacts API uses IviDataSource, that expose a page of contacts without requiring the full data set to be loaded in memory. It also allows querying and sorting contacts.

Release 1.0.3699-1437 - 09 May 2022, 15:51
Release notes
  • Modifications to MenuService API so it no longer exposes a map combining menu items and state (ordering and selected state) but instead exposes an ordered list of menu items and a separate property indicating the selected menu item (or null if no item is selected).
    Also, the menu item registration APIs have been removed from the MenuService API as menu item registration is now the responsibility of MenuItemProviderService implementations.

  • Add a PanelTransitionDestination parameter in the removeSubContainer method of TaskPanelSubContainerManager. This allows to specify the destination the TaskPanel should transition to when going out of view.

  • Fixed Companion App communication via Bluetooth Low Energy. Some Android phones could not be reconnected when connection is lost.

Release 1.0.3671-1412 - 04 May 2022, 05:39
Release notes
  • Introduce new media domain APIs in MediaSourceAttributionPolicy to allow changing the tab icons shown in the Now Playing View panel.

Release 1.0.3637-1373 - 22 Apr 2022, 19:28
Release notes
  • SourceClient rootMetadata field from media API is now a LiveData.

Release 1.0.3629-1363 - 21 Apr 2022, 12:50
Release notes
  • Allow configuration generator Gradle plugin to be used in combination with build product flavors. Fixes build error: Task with path 'preDebugBuild' not found in project.

  • Fixed an Android Bluetooth phone disconnect problem. Disconnecting a Bluetooth phone triggered from the Digital Cockpit platform, sometimes resulted in the Bluetooth phone not being disconnected.

Release 1.0.3593-1327 - 14 Apr 2022, 13:00
Release notes
  • Let the Alexa Auto Client Service (AACS) handle timezone synchronization from platform to Alexa, and from Alexa to platform.