TilesTimelineCache

public final class TilesTimelineCache
extends Object

java.lang.Object
   ↳ androidx.wear.tiles.timeline.TilesTimelineCache


Timeline cache for Wear Tiles. This will take in a full timeline, and return the appropriate entry for the given time from findTimelineEntryForTime.

Summary

Public constructors

TilesTimelineCache(TimelineBuilders.Timeline timeline)

Public methods

TimelineBuilders.TimelineEntry findClosestTimelineEntry(long timeMillis)

A (very) inexact version of findTimelineEntryForTime(long) which finds the closest timeline entry to the current time, regardless of validity.

long findCurrentTimelineEntryExpiry(TimelineBuilders.TimelineEntry entry, long fromTimeMillis)

Finds when the timeline entry entry should be considered "expired".

TimelineBuilders.TimelineEntry findTimelineEntryForTime(long timeMillis)

Finds the entry which should be active at the given time.

Inherited methods

Public constructors

TilesTimelineCache

public TilesTimelineCache (TimelineBuilders.Timeline timeline)

Parameters
timeline TimelineBuilders.Timeline

Public methods

findClosestTimelineEntry

public TimelineBuilders.TimelineEntry findClosestTimelineEntry (long timeMillis)

A (very) inexact version of findTimelineEntryForTime(long) which finds the closest timeline entry to the current time, regardless of validity. This should only used as a fallback if findTimelineEntryForTime fails, so it can attempt to at least show something.

By this point, we're technically in an error state, so just show _something_. Note that calling this if findTimelineEntryForTime returns a valid entry is invalid, and may lead to incorrect results.

Parameters
timeMillis long: The time to search from, in milliseconds.

Returns
TimelineBuilders.TimelineEntry The timeline entry with validity period closest to timeMillis.

findCurrentTimelineEntryExpiry

public long findCurrentTimelineEntryExpiry (TimelineBuilders.TimelineEntry entry, 
                long fromTimeMillis)

Finds when the timeline entry entry should be considered "expired". This is either when it is no longer valid (i.e. end_millis), or when another entry should be presented instead.

Parameters
entry TimelineBuilders.TimelineEntry: The entry to find the expiry time of.

fromTimeMillis long: The time to start searching from. The returned time will never be lower than the value passed here.

Returns
long The time in millis that entry should be considered to be expired. This value will be Long.MAX_VALUE if entry does not expire.

findTimelineEntryForTime

public TimelineBuilders.TimelineEntry findTimelineEntryForTime (long timeMillis)

Finds the entry which should be active at the given time. This will return the entry which has the _shortest_ validity period at the current time, if validity periods overlap. Note that an entry which has no validity period set will be considered a "default" and will be used if no other entries are suitable.

Parameters
timeMillis long: The time to base the search on, in milliseconds.

Returns
TimelineBuilders.TimelineEntry The timeline entry which should be active at the given time. Returns null if none are valid.