TemplateWrapper
@CarProtocol
class TemplateWrapper
A wrapper for mapping a Template with a unique ID used for implementing task flow restrictions.
This is what is sent to the host, so that the host can determine whether the template is a new template (e.g. a step counts toward the task limit), or an existing template update (e.g. a refresh that does not count towards the task limit), by checking whether the ID have changed.
This class is for use by host implementations and not by apps.
Summary
Public functions |
|
|---|---|
java-static TemplateWrapper |
copyOf(source: TemplateWrapper)Creates a copy of the given |
Int |
Retrieves the current task step that the template is in. |
String |
getId()Returns the ID associated with the wrapped |
Template |
Returns the wrapped |
(Mutable)List<TemplateInfo!> |
Returns a |
Boolean |
Returns |
Unit |
setCurrentTaskStep(currentTaskStep: Int)Sets the current task step that the template is in. |
Unit |
Updates the ID associated with the wrapped |
Unit |
setRefresh(isRefresh: Boolean)Sets whether the template is a refresh of the current template. |
Unit |
setTemplate(template: Template)Updates the |
String |
toString() |
java-static TemplateWrapper |
Creates a |
java-static TemplateWrapper |
Creates a |
Public functions
copyOf
java-static fun copyOf(source: TemplateWrapper): TemplateWrapper
Creates a copy of the given TemplateWrapper.
getCurrentTaskStep
fun getCurrentTaskStep(): Int
Retrieves the current task step that the template is in.
getTemplateInfosForScreenStack
fun getTemplateInfosForScreenStack(): (Mutable)List<TemplateInfo!>
Returns a TemplateInfo for the last returned template for each of the screens in the screen stack managed by the screen manager.
The return values are in order, where position 0 is the top of the stack, and position n is the bottom of the stack given n screens on the stack.
isRefresh
fun isRefresh(): Boolean
Returns true if the template is a refresh for the previous template.
setCurrentTaskStep
fun setCurrentTaskStep(currentTaskStep: Int): Unit
Sets the current task step that the template is in.
setId
fun setId(id: String): Unit
Updates the ID associated with the wrapped Template.
setRefresh
fun setRefresh(isRefresh: Boolean): Unit
Sets whether the template is a refresh of the current template.
setTemplate
fun setTemplate(template: Template): Unit
Updates the Template this TemplateWrapper instance wraps.
wrap
java-static fun wrap(template: Template): TemplateWrapper
Creates a TemplateWrapper instance with the given Template.
The host will treat the Template as a new task step, unless it determines through its internal logic that the Template is a refresh of the existing view, in which case the task step will remain the same.
wrap
java-static fun wrap(template: Template, id: String): TemplateWrapper
Creates a TemplateWrapper instance with the given Template and ID.
The ID is primarily used to inform the host that the given Template shares the same ID as a previously sent Template, even though their contents differ. In such cases, the host will reset the task step to where the previous Template was.
For example, the client sends template A (task step 1), then move forwards a screen and sends template B (task step 2). Now the client pops the screen and sends template C. By assigning the ID of template A to template C, the client library informs the host that it is a back operation and the task step should be set to 1 again.