Package-level declarations

Types

Link copied to clipboard

Icon loading for the drawer's A–Z rail in icon-preview mode (#4). Foyer is text-first — icons exist nowhere else in the app. warmAll pre-loads every installed app's icon in the background as soon as the drawer opens (icon-preview mode only), so peek returns instantly once the finger actually touches the rail; icon is the suspend fallback for anything not yet warmed. Profile-aware via LauncherApps.

Link copied to clipboard

Which clock the home screen shows (#15). Cycled in settings / home menu.

Link copied to clipboard

How the drawer's A–Z rail looks (#4).

Link copied to clipboard

What a home-screen gesture does. Configured per gesture in settings; the launcher-UI targets (drawer / ask me) are injected by GestureUi because they live in compose state, not intents.

Link copied to clipboard
class GestureUi(val openDrawer: () -> Unit, val openVoice: () -> Unit)

The launcher-internal destinations a gesture can open.

Link copied to clipboard

What the assistant is doing, as the glyph shows it. announce doubles as the TalkBack description so the indicator is never the only channel (#10).

Properties

Link copied to clipboard

Debug-only clock override for marketing screenshots — when set, every clock widget below renders this instant instead of the real time, so digital, bold, dial and hands all screenshot showing the same chosen time. Null (the default) means real time; only app/src/debug/.../MarketingPreviewActivity ever sets it.

Functions

Link copied to clipboard
fun AnalogueClockWidget(modifier: Modifier = Modifier)

The dial clock (#15), final form:

Link copied to clipboard
fun AssistantDial(state: GlyphState, modifier: Modifier = Modifier, amplitude: () -> Float = { 0f })

The assistant's state, drawn in the dial clock's language: a ring of thin radial ticks around an empty centre. Monochrome, line-only — the fancy part is motion, not decoration.

Link copied to clipboard
fun DigitalClockWidget(modifier: Modifier = Modifier)

The quiet digital clock: thin h:mm, nothing else.

Link copied to clipboard

Opens the quick-settings shade (hidden StatusBarManager API, like the notification pull).

Link copied to clipboard
fun FoyerGlyph(state: GlyphState, modifier: Modifier = Modifier, amplitude: () -> Float = { 0f })

Foyer's AI state indicator (#18): a constructed glyph in the wordmark's parts kit — thin vertical strokes, one horizontal bar, a small circle. Motion is Manhattan only: everything moves along axes and snaps in discrete steps (metronome, not lava lamp). No blob, no glow.

Link copied to clipboard
fun FoyerSheet(title: String, onDismiss: () -> Unit, content: @Composable ColumnScope.() -> Unit)

Foyer's reusable bottom sheet — the one pop-up surface for long-press menus and pickers. Foundation-only (no Material): spring slide-up, drag-to-dismiss, scrim tap / back to close with the reverse animation, long-press haptic on open. title is the muted header tag (usually the app label).

Link copied to clipboard
fun IconAction(@DrawableRes icon: Int, label: String, tint: Color, modifier: Modifier = Modifier, size: Dp = 24.dp, onClick: () -> Unit)

Icon-only action (Tabler glyph) that keeps its text: label is the long-press tooltip and the content description, so the action stays nameable for TalkBack even though only the icon is drawn.

Link copied to clipboard
fun LockClockWidget(modifier: Modifier = Modifier)

The lock-screen digital clock: just the time, large and heavy.

Link copied to clipboard
fun MarkdownDocument(markdown: String, skipFirstHeading: Boolean = false)

Renders the small markdown subset foyer's bundled documents use — headings, paragraphs, bullet lists, tables and inline bold / italic / code — in the settings design language. Tables become grouped card rows: first cell as the title, remaining cells joined into the subtitle.

Link copied to clipboard
fun MinimalClockWidget(modifier: Modifier = Modifier)

The minimal analogue clock: one hairline circle and two hands, no ticks, no numerals. The hour hand drifts with the minutes so it never lies.

Link copied to clipboard
fun runGestureAction(context: Context, action: GestureAction, ui: GestureUi)
Link copied to clipboard

A non-interactive explanatory line inside a sheet.

Link copied to clipboard
fun SheetRow(text: String, active: Boolean = false, value: String? = null, @DrawableRes icon: Int? = null, onClick: () -> Unit)

One action row in a FoyerSheet. active marks a toggled-on state with an accent dot (and announces it), so state is visible without parsing the verb.