Skip to main content

The Settings screens

Settings began as one SettingsActivity — a single scroll of a dozen equally-weighted sections, with a Favorites checkbox list that swallowed the page and no sense of where am I. It's now a calm landing that drills into focused per-category screens.

This realizes ADR-0005. Because Roost is framework-only — no AndroidX, so no Jetpack Navigation and no Fragments — the drill-down is plain Activity navigation: each screen is a normal Activity, startActivity goes deeper, and the system back stack returns. A shared SettingsScreen component gives every screen one row-and-control vocabulary, so nothing drifts.

The landing

The Settings landing — a device identity strip, five category rows, and Open Android System Settings

A device-identity strip at the top, then category rows — icon + label + summary + chevron — each opening its own detail screen, plus a shortcut out to the OS:

CategoryWhat's inside
Home & BehaviorHome mode (Curated / Appliance), auto-launch agent on boot, keep screen on while docked, bandwidth heartbeat.
AgentAgent name, the featured-agent app picker, and Restart Agent App.
AppearanceAccent tint (Honey / Slate / Sage / Violet), Action density for the whole home, Launcher filters, match wallpaper to Roost.
Apps, Tiles & ContentFavorites (an app picker), Web Apps, Action Buttons, Hidden Items.
NetworkWireGuard tunnel + a remote-control note.
Open Android System SettingsJump straight to the OS Settings.

Every setting that lived in the old monolith is still here — the redesign is information architecture and polish, not a feature cut.

App pickers, not package fields

The two lists that used to hurt most — the featured agent (a raw package-name text field) and Favorites (a wall of checkboxes) — are now searchable app pickers: icon + name + check, backed by AppPickerActivity.

The Agent detail screen — inline agent name, the featured-app picker, and Restart Agent App

The Agent screen sets the agent name inline, points the featured hero card at any installed app through the picker, and adds a Restart Agent App control for when the agent needs a clean bounce.

The Favorites screen — a searchable app-picker grid of icons and names

Favorites is the same picker idea as a searchable grid — tap to add or remove an app from the home surface, no package strings anywhere.

Appearance

Beyond the accent tint, Appearance holds the two controls that shape the whole home tile grid:

The Appearance screen — accent-tint swatches, an Action density Slim / Regular / Rich control set to Rich, and a Launcher filters section with Apps / Web / Shortcuts / HTTP / Scenes toggles all on
  • Action density — how every home tile renders: a Slim list, Regular cards, or a Rich two-column grid. It's one home-wide setting, so apps, web apps, shortcuts, scenes, and HTTP actions all reshape together — see density for the three layouts.
  • Launcher filters — a toggle per kind (Apps / Web / Shortcuts / HTTP / Scenes) that chooses which filter chips can appear above the tiles on the home. The home then shows All plus a chip for each enabled kind that's currently present, so you can narrow the grid to just apps, just HTTP actions, and so on. The active filter persists between visits.

Action Buttons

Under Apps, Tiles & Content → Action Buttons is itself a landing that splits into focused sub-screens, one per authoring path:

The Action Buttons landing — rows for HTTP Actions, Home Assistant, App Shortcuts, Synced Actions, and Arrange Tiles
Sub-screenWhat's inside
HTTP ActionsThe list of HTTP action tiles with a New action entry (into the builder / endpoints picker) and a per-action enabled toggle. Each action shows the icon you chose in the builder, not a generic glyph, so the list reads at a glance.
Home AssistantThe Home Assistant account form — now just one authoring path that produces an HTTP action.
App ShortcutsAndroid app-shortcut buttons — enable launcher shortcuts as action tiles. Each tile is titled <shortcut> in <App> — e.g. "New tab in Firefox", "Video in Camera", "Wi-Fi in Settings" — instead of a bare label.
Arrange TilesA flat on/off + drag-to-reorder list over every tile — apps, web apps, shortcuts, scenes, and HTTP actions together, no section grouping. A per-row switch shows or hides the tile on the home without deleting it — it reflects the tile's home visibility and also clears a long-press Hide. Long-press a row's handle to drag it into the order the tiles appear on home.
Synced ActionsGrant a folder and import agent-authored actions from actions.d/*.json. Read more.

On Arrange Tiles, every tile — apps, web apps, shortcuts, scenes, and HTTP actions in one flat list, with no section headers — is a drag-handle row with an on/off switch: flip one off to hide it from home (dimmed here), or long-press the handle to drag the order:

The Arrange Tiles screen — every tile a drag-handle row with an on/off switch; two are toggled off and dimmed, the rest on

Editing from home. Long-press a fire tile — an HTTP action or Home Assistant scene — on the home for its controls: Edit (opens the HTTP-action builder) plus hide, delete, and change icon — so you can tweak a tile without coming back into Settings.

The deep configuration — the HTTP-action builder, the endpoints picker, the icon picker — stays bespoke; the navigation around it is uniform.