Defines the reference to a frontend implementation and how to configure it.
The name of the frontend builder class.
The frontend builder name must be formatted in
PascalCase and must end with the
FrontendBuilder suffix. The
FrontendBuilder suffix is mandatory to make it easier for developers to find where the class is used in the code base.
The frontend builder name needs to match a class with the same name that implements the
The module that contains the class that implements the
The package name of the class is obtained from this ModuleReference. If the class resides in a sub package within this module, the sub package can be provided through subPackageName. This subPackageName is appended to the package name of the module, with a period in between.
The creation policy of the frontend. Determines when the frontend should be created relative to the lifecycle of the IVI system.
The frontend extensions configuration. The configured frontend extensions will be set to the frontendBuilderName class instance.
Intent filters associated with this frontend.
The intent filters also need to be added separately to the Android manifest.
A reference to a runtime set of panels that are available to the frontend. By default, all of the panel types offered by the TomTom Digital Cockpit platform are included.
When introducing a new panel type, frontends using it must have the type specified here for the frontend to be able to use it, e.g., by passing a reference to
val EXPANDED_PANEL_TYPES = PLATFORM_PANEL_TYPES + CustomPanel::class. This information is also used by the system UI to determine whether or not it can support the frontends it's asked to present panels for.
IVI service dependencies of the frontend implementation.
A frontend implementation can require other IVI service interfaces to be registered. This allows misconfiguration to be detected at build time.