TemplateWrapper
@CarProtocol
public final 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 methods |
|
|---|---|
static @NonNull TemplateWrapper |
copyOf(@NonNull TemplateWrapper source)Creates a copy of the given |
int |
Retrieves the current task step that the template is in. |
@NonNull String |
getId()Returns the ID associated with the wrapped |
@NonNull Template |
Returns the wrapped |
@NonNull List<TemplateInfo> |
Returns a |
boolean |
Returns |
void |
setCurrentTaskStep(int currentTaskStep)Sets the current task step that the template is in. |
void |
Updates the ID associated with the wrapped |
void |
setRefresh(boolean isRefresh)Sets whether the template is a refresh of the current template. |
void |
setTemplate(@NonNull Template template)Updates the |
@NonNull String |
toString() |
static @NonNull TemplateWrapper |
Creates a |
static @NonNull TemplateWrapper |
Creates a |
Public methods
copyOf
public static @NonNull TemplateWrapper copyOf(@NonNull TemplateWrapper source)
Creates a copy of the given TemplateWrapper.
getCurrentTaskStep
public int getCurrentTaskStep()
Retrieves the current task step that the template is in.
getId
public @NonNull String getId()
Returns the ID associated with the wrapped Template.
getTemplateInfosForScreenStack
public @NonNull List<TemplateInfo> getTemplateInfosForScreenStack()
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
public boolean isRefresh()
Returns true if the template is a refresh for the previous template.
setCurrentTaskStep
public void setCurrentTaskStep(int currentTaskStep)
Sets the current task step that the template is in.
setId
public void setId(@NonNull String id)
Updates the ID associated with the wrapped Template.
setRefresh
public void setRefresh(boolean isRefresh)
Sets whether the template is a refresh of the current template.
setTemplate
public void setTemplate(@NonNull Template template)
Updates the Template this TemplateWrapper instance wraps.
wrap
public static @NonNull TemplateWrapper wrap(@NonNull Template template)
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
public static @NonNull TemplateWrapper wrap(@NonNull Template template, @NonNull String id)
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.