Package-level declarations

Types

Link copied to clipboard

Boundary used to decide that an E Ink refresh is complete.

Link copied to clipboard

Process-wide controller for nesting-safe transient refresh modes.

Link copied to clipboard
data class RefreshModeReceipt(val mode: TransientUpdateMode, val scope: RefreshModeScope, val nestingDepth: Int)

Describes an acquired transient refresh-mode lease.

Link copied to clipboard

Ownership boundary of a transient refresh mode.

Link copied to clipboard

Nesting-safe ownership token for the process-global firmware transient mode.

Link copied to clipboard
data class RefreshReceipt(val evidence: RefreshCompletionEvidence, val elapsedNanos: Long, val warnings: Set<RefreshWarning> = emptySet())

Result of waiting for an E Ink refresh.

Link copied to clipboard

Recoverable limitation encountered while waiting for a refresh.

Link copied to clipboard

Firmware transient update mode owned by a scoped token.

Functions

Link copied to clipboard
suspend fun awaitEpdIdle(timeout: Duration = 2.seconds, fallbackDelay: Duration = 500.milliseconds): Result<RefreshReceipt>

Waits until the firmware reports that the current E Ink update is complete.

Link copied to clipboard
suspend fun View.refreshAndAwait(mode: EpdUpdateMode, scope: RefreshScope = RefreshScope.FullView, timeout: Duration = 2.seconds): Result<RefreshReceipt>

Dispatches an E Ink refresh for this view and waits for its completion boundary.

Link copied to clipboard
suspend fun <T> withRefreshMode(mode: TransientUpdateMode = TransientUpdateMode.ANIMATION_QUALITY, block: suspend () -> T): Result<T>

Runs block while mode is leased, then waits for the lease to be released.