ListTemplate.Builder

class ListTemplate.Builder


A builder of ListTemplate.

Summary

Public constructors

Returns an empty Builder instance.

Public functions

ListTemplate.Builder
@RequiresCarApi(value = 6)
addAction(action: Action)

Adds a template scoped action outside the rows.

ListTemplate.Builder

Adds an SectionedItemList to display in the template.

ListTemplate

Constructs the template defined by this builder.

ListTemplate.Builder

Clears all of the SectionedItemLists added via addSectionedList

ListTemplate.Builder

Sets the ActionStrip for this template or null to not display an .

ListTemplate.Builder
setHeaderAction(headerAction: Action)

Sets the Action that will be displayed in the header of the template, or null to not display an action.

ListTemplate.Builder
setLoading(isLoading: Boolean)

Sets whether the template is in a loading state.

ListTemplate.Builder

Sets a single ItemList to show in the template.

ListTemplate.Builder

Sets the title of the template.

Public constructors

Builder

Added in 1.0.0
Builder()

Returns an empty Builder instance.

Public functions

addAction

Added in 1.4.0-rc02
@RequiresCarApi(value = 6)
fun addAction(action: Action): ListTemplate.Builder

Adds a template scoped action outside the rows.

Throws
java.lang.IllegalArgumentException

if action contains unsupported Action types, or does not contain a valid CarIcon and background CarColor, or if exceeds the maximum number of allowed actions for the template.

addSectionedList

Added in 1.0.0
fun addSectionedList(list: SectionedItemList): ListTemplate.Builder

Adds an SectionedItemList to display in the template.

Use this method to add multiple lists to the template. Each SectionedItemList will be grouped under its header. These lists cannot be mixed with an ItemList added via setSingleList. If a single list was previously added, it will be cleared.

If the added SectionedItemList contains a ItemList.OnSelectedListener, then it cannot be added alongside other SectionedItemList(s).

Throws
java.lang.NullPointerException

if list or header is null

java.lang.IllegalArgumentException

if list is empty, if list's is set, if header is empty, or if a selectable list is added alongside other lists

build

Added in 1.0.0
fun build(): ListTemplate

Constructs the template defined by this builder.

Requirements The number of items in the ItemList should be smaller or equal than the limit provided by CONTENT_LIMIT_TYPE_LIST. The host will ignore any items over that limit. Each Rows can add up to 2 lines of texts via addText.

If none of the header Action, the header title or the action strip have been set on the template, the header is hidden.

Throws
java.lang.IllegalStateException

if the template is in a loading state but there are lists added or vice versa

java.lang.IllegalArgumentException

if the added ItemList(s) do not meet the template's requirements

See also
getContentLimit

clearSectionedLists

Added in 1.3.0
@ExperimentalCarApi
fun clearSectionedLists(): ListTemplate.Builder

Clears all of the SectionedItemLists added via addSectionedList

setActionStrip

Added in 1.0.0
fun setActionStrip(actionStrip: ActionStrip): ListTemplate.Builder

Sets the ActionStrip for this template or null to not display an .

Unless set with this method, the template will not have an action strip.

Requirements This template allows up to 2 Actions in its ActionStrip. Of the 2 allowed Actions, one of them can contain a title as set via setTitle. Otherwise, only Actions with icons are allowed.
Throws
java.lang.IllegalArgumentException

if actionStrip does not meet the requirements

java.lang.NullPointerException

if actionStrip is null

setHeaderAction

Added in 1.0.0
fun setHeaderAction(headerAction: Action): ListTemplate.Builder

Sets the Action that will be displayed in the header of the template, or null to not display an action.

Unless set with this method, the template will not have a header action.

Requirements This template only supports either one of APP_ICON and BACK as a header Action.
Throws
java.lang.IllegalArgumentException

if headerAction does not meet the template's requirements

java.lang.NullPointerException

if headerAction is null

setLoading

Added in 1.0.0
fun setLoading(isLoading: Boolean): ListTemplate.Builder

Sets whether the template is in a loading state.

If set to true, the UI will display a loading indicator where the list content would be otherwise. The caller is expected to call invalidate and send the new template content to the host once the data is ready.

If set to false, the UI will display the contents of the ItemList instance(s) added via setSingleList or addSectionedList.

setSingleList

Added in 1.0.0
fun setSingleList(list: ItemList): ListTemplate.Builder

Sets a single ItemList to show in the template.

Note that this list cannot be mixed with others added via addSectionedList . If multiple lists were previously added, they will be cleared.

Throws
java.lang.NullPointerException

if list is null

setTitle

Added in 1.0.0
fun setTitle(title: CharSequence): ListTemplate.Builder

Sets the title of the template.

Unless set with this method, the template will not have a title.

Only DistanceSpans and DurationSpans are supported in the input string.

Throws
java.lang.NullPointerException

if title is null

java.lang.IllegalArgumentException

if title contains unsupported spans