Skip to content

Clock

  • Status: Implemented; physical tuning and overnight soak remain
  • Primary device: Moto X XT1058, Android 5.1 / API 22

The clock is the useful minimum of Moto X Dashboard: it works without the API, without Internet access, and without dashboard content. Time always comes from the phone's clock, time zone, locale, and 12/24-hour preference.

Two faces, one clock

Four flat cathode cells evoke a hand-built Nixie clock without copying a typeface or shipping artwork. Each cell combines a copper frame, mounting hardware, ten dim cathodes, a custom lit digit, a soft glow, and a dark honeycomb mesh.

Rare buzz, brownout, stutter, and hum envelopes give the face a little electrical life. They are deterministic once scheduled, bounded by one luminance authority, and off whenever motion is disabled.

Two wide black cards show hours and minutes like a small mid-century airport board or desk clock. A changing card falls through 180 degrees, darkens edge-on, and settles with a short bounce. A card never queues stale changes: it always heads directly toward the newest value.

Both faces implement the same small ClockFace boundary, so timekeeping, theme policy, preview time, burn-in movement, and display levels do not depend on the visual treatment.

flowchart LR
    Clock[AdjustableClock] --> Reading[ClockReading]
    Ticker[ClockTicker] --> Reading
    Reading --> Host[MainActivity]
    Schedule[Theme schedule] --> Resolver[ThemeResolver]
    Override[Manual override] --> Resolver
    Resolver --> Host
    Display[Display policy and burn-in shift] --> Host
    Host --> Nixie[NixieClockView]
    Host --> Flap[SplitFlapClockView]
    Nixie --> Audio[ClockSounds]
    Flap --> Audio

Schedule and manual choice

The built-in schedule uses split-flap during the day and Nixie from 20:00 to 08:00 local time. Schedule windows are half-open and resolved as instants, so midnight wrapping and daylight-saving gaps or overlaps remain deterministic.

Switch clock behaves like Windows Night Light: the user's choice lasts until the schedule next enters that same theme. Resume schedule clears it immediately. The override stores a UTC setAt instant and recomputes its merge point in the current time zone after a move or time-zone change.

A theme change is a slow 1.5-second monotonic crossfade. Face motion is paused during it, and window brightness moves toward the incoming theme at the same time.

Quiet by design

The overnight face combines a very low window-brightness setting with a paint- level content multiplier. Persistent pixels move through two mechanisms:

  • a bounded 1–2 pixel step every 2.5 minutes; and
  • an hourly move among five composition anchors, phase-shifted to minute 17.

The separator dots are deliberately dim and steady. Effects become less frequent during quiet hours, synthesized sounds are off by default, and the sound policy mutes for silent/vibrate mode, Bluetooth audio, active music, disabled motion, and quiet hours.

Burn-in mitigation is risk reduction

Pixel shifting, low levels, and alternating themes reduce repeated wear; they do not make an AMOLED panel immune to burn-in. Final levels and the long-running thermal/memory behavior still need the planned overnight soak.

Controls and Preview tools

The normal clock is control-free and immersive. A tap reveals a temporary overlay for switching or resuming the theme and toggling effects or sounds. A long press on the status line enables session-only Preview tools.

Preview tools can advance the displayed time, fire each Nixie effect, change effect strength, demonstrate both faces, lift the content to a recordable demo level, and temporarily ignore sound quiet hours. They invoke the production rendering and audio paths; they are not alternate mock animations.

Where to go deeper