Older Releases

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
    tt_spacing_xxxstt_spacing_1
    tt_spacing_xxstt_spacing_2
    tt_spacing_xstt_spacing_4
    tt_spacing_stt_spacing_5
    tt_spacing_mtt_spacing_6
    tt_spacing_ltt_spacing_8
    tt_spacing_xltt_spacing_10
    tt_spacing_xxltt_spacing_12
    tt_spacing_xxxltt_spacing_16


    Radius conversion table
    Previous APINew API
    tt_radius_xstt_radius_0
    tt_radius_stt_radius_2
    tt_radius_mtt_radius_4
    tt_radius_ltt_radius_25


    Icon size conversion table
    Previous APINew API
    tt_icon_size_xxstt_icon_size_3
    tt_icon_size_xstt_icon_size_4
    tt_icon_size_stt_icon_size_6
    tt_icon_size_mtt_icon_size_7
    tt_icon_size_ltt_icon_size_8
    tt_icon_size_xltt_icon_size_11
    tt_icon_size_xxltt_icon_size_15
    tt_icon_size_xxxltt_icon_size_20
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
    IviMediaItemBuilder.withDurationMs(Long)IviMediaItemBuilder.withDuration(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)
    StandardActionId.SeekAction(Long)StandardActionId.SeekAction(Duration)
    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 >, ...)
    MediaBundleExtras.EXTRA_IVI_MEDIA_POSITION

    (Bundle extra of type Long)
    MediaBundleExtras.EXTRA_IVI_MEDIA_POSITION

    (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 IndiGO 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 IndiGO 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.