Package com.tomtom.ivi.platform.frontend.api.common.frontend.panels

Types

Link copied to clipboard
typealias AnyDismissablePanel = GenericDismissablePanel<*>

Convenience type-alias for GenericDismissablePanel<*>.

Link copied to clipboard
typealias AnyPanel = GenericPanel<*>

Convenience type-alias for GenericPanel<*>.

Link copied to clipboard
abstract class ControlCenterPanel(frontendContext: FrontendContext, val type: ControlCenterPanel.Type) : GenericPanel<PanelContext>

A panel for an isolated area of the system UI that provides persistent indicators and controls that are accessible to the user at all times.

Link copied to clipboard
abstract class DebugPanel(frontendContext: FrontendContext) : GenericPanel<PanelContext>

A panel used only for development and testing purposes for reaching underlying parts of the system that the end-user cannot reach. Not a customer-facing part of the UI.

Link copied to clipboard
typealias DismissablePanel = GenericDismissablePanel<PanelContext>

A convenience type-alias for GenericDismissablePanel<PanelContext>.

Link copied to clipboard
open class DismissablePanelArrayList<P : AnyDismissablePanel> : PanelArrayList<P> , DismissablePanelList<P>

The default implementation of PanelArrayList.

Link copied to clipboard
interface DismissablePanelCollection<out P : AnyDismissablePanel> : PanelCollection<P>

A collection of DismissablePanels.

Link copied to clipboard
interface DismissablePanelList<out P : AnyDismissablePanel> : DismissablePanelCollection<P> , PanelList<P>

A list of DismissablePanels.

Link copied to clipboard
abstract class ExpandedProcessPanel(frontendContext: FrontendContext) : GenericDismissablePanel<PanelContext>

An expanded version of a MainProcessPanel or TaskProcessPanel, exposing additional information and functionality related to an ongoing process.

Link copied to clipboard
abstract class GenericDismissablePanel<C : PanelContext>(frontendContext: FrontendContext) : GenericPanel<C>

A panel that can be dismissed, either through user interaction or other events. Dismissing a panel triggers the end of its life; it will be removed from the frontend, preventing it from being shown again.

Link copied to clipboard
abstract class GenericPanel<C : PanelContext>(val frontendContext: FrontendContext) : PanelContextProvider<C> , LifecycleOwner

A panel to visually represent a Frontend. Panels are intended to be presented to the user by the system UI, which does this by attaching the IviFragment returned by createInitialFragment to its layout. The created fragment will internally instantiate a ViewModel (FrontendViewModel) with a reference to this panel.

Link copied to clipboard
abstract class GuidancePanel(frontendContext: FrontendContext) : GenericPanel<PanelContext>

A panel displaying guidance information for an active trip.

Link copied to clipboard
abstract class HomePanel(frontendContext: FrontendContext) : GenericPanel<PanelContext> , OnBackPressedConsumer

The main panel seen by the user in the system UI's 'home' state, i.e., where the user will be after pressing a home button. Will typically contain a map view, but might have different contents depending on the vehicle's configuration.

Link copied to clipboard
open class IviPanelContext(val softInputAccessor: SoftInputAccessor, val safeArea: LiveData<SafeArea?> = EmptyLiveData()) : PanelContext

An implementation for PanelContext.

Link copied to clipboard
abstract class MainMenuPanel(frontendContext: FrontendContext) : GenericPanel<PanelContext>

A panel that provides a persistent way of accessing the other system frontends.

Link copied to clipboard
abstract class MainProcessPanel(frontendContext: FrontendContext, priority: MainProcessPanel.Priority) : GenericPanel<PanelContext>

A panel which visualizes processes in the UI. For example, an ongoing audio streaming process.

Link copied to clipboard

A ModalPanel is used to display information that:

Link copied to clipboard
interface NavigablePanelContext : PanelContext

A context for panels which are navigable. These panels are part are part of a view stack. Navigable panels allow users to navigate between the panels in the view stack.

Link copied to clipboard
data class NavigablePanelData(val descriptor: PanelDescriptor, val navigateToPanel: () -> Unit = {})

Describes a panel in descriptor, while navigateToPanel is the function that should be invoked when the described panel should be navigated to. Navigating to the panel can for example happen when a user presses the breadcrumb.

Link copied to clipboard
class NavigablePanelStackData(val navigablePanelData: List<NavigablePanelData> = emptyList(), val ownPanelIndex: Int = -1)

Provides Panel data within a certain scope.

Link copied to clipboard
abstract class NotificationPanel(frontendContext: FrontendContext, val priority: NotificationPanel.Priority) : GenericDismissablePanel<PanelContext>

A panel to inform the user of a recent event.

Link copied to clipboard
abstract class OverlayPanel(frontendContext: FrontendContext) : GenericPanel<PanelContext>

A panel which overlays the system UI's main content area to show a temporary visual effect. This can be used, for example, to visualize the state of a currently active VPA or provide large and noticeable navigation instructions.

Link copied to clipboard
typealias Panel = GenericPanel<PanelContext>

A convenience type-alias for GenericPanel<PanelContext>`.

Link copied to clipboard
open class PanelArrayList<P : AnyPanel> : ArrayList<P> , PanelList<P>

The default implementation of PanelList.

Link copied to clipboard
interface PanelCollection<out P : AnyPanel> : Collection<P>

A collection of Panels.

Link copied to clipboard
interface PanelContext

A context for panels that's provided when the Panel is attached by the system UI.

Link copied to clipboard
interface PanelContextProvider<C : PanelContext>

An interface to get a PanelContext.

Link copied to clipboard
data class PanelDescriptor(val label: StringResolver? = null, val icon: DrawableResolver? = null)

Describes a Panel. This data is typically used so that panels can get information about each other. This data can be used to provide users a way to navigate between panels.

Link copied to clipboard
interface PanelDescriptorProvider

An interface to get a PanelDescriptor.

Link copied to clipboard
interface PanelList<out P : AnyPanel> : PanelCollection<P> , List<P>

A list of Panels.

Link copied to clipboard
data class PanelTransitionDestination(val destination: KClass<out Panel>?)

The destination of an information transition between panels.

Link copied to clipboard
data class PanelTransitionSource(val source: KClass<out Panel>?)

The source of an information transition between panels.

Link copied to clipboard
interface PanelTypeSet : Set<KClass<out AnyPanel>>

A set containing types of Panels. This is a helper class used to communicate to Frontends and system UIs which Panel types are available or supported.

Link copied to clipboard
data class SafeArea(    val leftMarginPx: Int,     val topMarginPx: Int,     val rightMarginPx: Int,     val bottomMarginPx: Int,     val paddingPx: Int)

The safe area specifies where information, that is important to the user, should be displayed. It's defined through margins from each side which should not be used for displaying important information, as it may not be visible to the user. The panel is still expected to draw in these margins, though.

Link copied to clipboard
abstract class SearchPanel(frontendContext: FrontendContext) : GenericPanel<PanelContext> , OnBackPressedConsumer

A panel that offers the end-user quick access to search functionality. This panel is meant to provide a visual context for location based search, such as searching for a driving destination, parking spots or charging stations. It is not meant for searching content within a TaskPanel, like songs within a media frontend.

Link copied to clipboard
abstract class SettingsPanel(frontendContext: FrontendContext) : GenericPanel<PanelContext>

A panel displaying settings options for active display.

Link copied to clipboard
interface SoftInputAccessor

An interface for interacting with the default Android soft input method, such as showing and hiding the standard on-screen Android keyboard.

Link copied to clipboard
abstract class TaskPanel(frontendContext: FrontendContext, val mode: TaskPanel.Mode = Mode.MAXIMIZED) : GenericDismissablePanel<NavigablePanelContext> , PanelDescriptorProvider, OnBackPressedConsumer

Variably sized panel.

Link copied to clipboard
abstract class TaskProcessPanel(frontendContext: FrontendContext) : GenericPanel<PanelContext>

A panel to be shown alongside a TaskPanel in the system UI.

Properties

Link copied to clipboard
val PLATFORM_PANEL_TYPES: PanelTypeSet

A complete set of panel types offered by the TomTom Digital Cockpit platform.

Functions

Link copied to clipboard
fun <P : AnyDismissablePanel?> Collection<P>.containsUndismissedPanel(): LiveData<Boolean>

Returns whether a panel collection contains any panels that have not been dismissed yet.

Link copied to clipboard
fun createNavigablePanelContext(    basePanelContext: PanelContext,     navigablePanelStackData: LiveData<NavigablePanelStackData>,     onBackPressed: () -> Unit): NavigablePanelContext
Link copied to clipboard
fun <P : AnyDismissablePanel> dismissablePanelListOf(vararg elements: P): DismissablePanelList<P>

Returns a DismissablePanelList containing the given elements.

Link copied to clipboard
fun <P : AnyDismissablePanel?> Collection<P>.dismissAll()

Dismisses all panels in the collection.

Link copied to clipboard
fun <P : DismissablePanel> emptyDismissablePanelList(): DismissablePanelList<P>

Returns an empty DismissablePanelList.

Link copied to clipboard
fun <P : Panel> emptyPanelList(): PanelList<P>

Returns an empty PanelList.

Link copied to clipboard

Returns a list of DismissablePanels that is filtered to only contain Panels of type P.

Link copied to clipboard
inline fun <P : AnyPanel> LiveData<out Iterable<AnyPanel>>.filterPanels(): LiveData<PanelList<P>>

Returns a LiveData, mapped from this, containing a list of Panels that is filtered to only contain Panels of type P.

inline fun <P : AnyPanel> Iterable<AnyPanel>.filterPanels(): PanelList<P>

Returns a list of Panels that is filtered to only contain Panels of type P.

Link copied to clipboard

Returns a LiveData with the list of DismissablePanels of type P that are not being dismissed.

Returns a list of DismissablePanels of type P that are not being dismissed.

Link copied to clipboard
inline fun <Source : Panel> PanelTransitionSource?.isTransitioningFrom(): Boolean

Whether the transition comes from a Source panel.

Link copied to clipboard
inline fun <Destination : Panel> PanelTransitionDestination?.isTransitioningTo(): Boolean

Whether the transition goes to a Destination panel.

Link copied to clipboard
fun <P : AnyPanel> panelListOf(vararg elements: P): PanelList<P>

Returns a PanelList containing the given elements.

Link copied to clipboard
fun panelTypeSetOf(vararg panelTypes: KClass<out AnyPanel>): PanelTypeSet

Creates a set containing panelTypess. This is used to communicate to Frontends and system UIs which Panel types are available or supported. As such the set may not contain the very base types of Panels such as GenericPanel or GenericDismissablePanel.

Link copied to clipboard
Link copied to clipboard
fun <P : AnyDismissablePanel> Collection<P>.toPanelList(): DismissablePanelList<P>

Converts this to a DismissablePanelList with the same contents.

fun <P : AnyPanel> Collection<P>.toPanelList(): PanelList<P>

Converts this to a PanelList with the same contents.