Configure Debug Tabs
The TomTom Digital Cockpit SDK is not available for general use.
Please contact us for more information.
The TomTom Digital Cockpit distribution comes integrated with a non-user-facing feature useful for
development: a debug menu. By default, it can be opened by long-pressing the volume down
button,
via the backtick ("`") key, or via ADB with adb shell input keyevent --longpress KEYCODE_GRAVE
.
Adding a debug tab
To add a new debug tab, an example app is provided in the
examples/debugtab
directory, with
com.tomtom.ivi.platform.debug.api.frontendextension.debugtab.DebugTabFrontendExtension
.
The debug tab's fragment is made with the DebugTabFragment
and the view
model with a normal FrontendViewModel
, templated with the
TabbedDebugPanel
type.
The debug tab is then registered in the debug menu with a
DebugTabFrontendExtension
.
The product's
build.gradle.kts
file should then be changed to include, in the ivi
configuration, a customization of the debug
frontend:
1import com.tomtom.ivi.platform.gradle.api.common.dependencies.ModuleReference2import com.tomtom.ivi.platform.gradle.api.common.iviapplication.config.FrontendExtensionConfig3import com.tomtom.ivi.platform.gradle.api.common.iviapplication.config.IviInstanceIdentifier4import com.tomtom.ivi.platform.gradle.api.defaults.config.debugFrontend5import com.tomtom.ivi.platform.gradle.api.framework.config.ivi67val debugTabFrontendExtension = FrontendExtensionConfig(8 frontendExtensionName = "debugTabFrontendExtension",9 implementationModule = ModuleReference(10 "com.example.ivi",11 "examples_debugtab",12 "com.example.ivi.example.debugtab"13 )14)1516ivi {17 application {18 enabled = true19 iviInstances {20 create(IviInstanceIdentifier.default) {21 applyGroups {22 includeDefaultPlatformGroups()23 includeDefaultAppsuiteGroups()24 }25 frontends {26 configure(debugFrontend) {27 addExtension(debugTabFrontendExtension)28 }29 }30 }31 }32 }33}
For more information about panels, fragments, view models, and adding frontend extensions, see the frontend plugin how-to guide.
Replacing debug tabs
Similarly to adding debug tabs, the same sort of ivi
configuration must be used.
However, the debugFrontend
configuration must be changed by adding the extensions
parameter,
which takes a list of DebugTabFrontendExtension
objects.