13.8 Section 13: Celestial & Environmental Data

Standalone whiteboard light (Tools)

Full-brightness coloured panel with a brightness slider, twelve-colour palette, per-open safety disclaimer, and thermal auto-dismiss. Lives in the Tools menu.

Where to find it

Tools Whiteboard

Summary

A full-screen Whiteboard light reachable from Tools > Whiteboard, gated by a full-screen safety disclaimer that fires every single time the user taps the tool (covers OLED burn-in, battery drain, thermal load, and user responsibility). Acceptance opens the panel for the current session only; the disclaimer returns on the next open since the hardware risk is the same on every session. Once accepted, the dialog forces window-level screenBrightness to 1.0 so the device runs the backlight at its true high-brightness ceiling, then fills the screen with the user's picked colour scaled by their chosen brightness. Bottom slider panel carries a brightness slider (5..100 percent) and a horizontal row of twelve colour swatches (warm / neutral / cool whites plus the saturated wheel: red, orange, yellow, lime, green, cyan, blue, violet, pink). A dedicated chevron button at the top of the slider panel collapses it to a small floating Controls pill in the bottom-right corner of the screen; tapping the pill brings the sliders back. A PowerManager thermal listener (API 29+) shows an inline warning at THERMAL_STATUS_MODERATE and auto-dismisses the panel entirely at THERMAL_STATUS_SEVERE. Settings persist on Profile.

Tap to zoom — actual screenshot from the app

Detail

How it works

A pull-up, full-brightness coloured panel. Useful as a fill light for close-up film inspection, a soft top light for table-top still life, a colour-balance reference card, a rim accent in macro shoots, or a stage-gel substitute when you need a coloured wash on a small subject. Lives in the Tools list so it is one tap away.

Safety disclaimer (every open)

Every time you tap Whiteboard, a full-screen disclaimer sheet appears that explains the three real risks of running the screen at full brightness for extended periods: OLED burn-in, battery drain, and heat buildup. Tap I understand to continue to the panel for this session, or Cancel to back out. The sheet is shown every open by design, not just once: the hardware risk is the same on every session, so the deliberate friction is the point. Read the warning each time and decide whether the use case is worth it.

Opening the tool

After accepting the disclaimer, the whole screen fills with the picked colour and the backlight is forced to maximum, even if your system brightness slider is lower. Tap the close icon in the top right or press the back button to return to the viewfinder.

Brightness slider

Slides from 5 percent to 100 percent. The panel always runs the backlight at the device's true maximum so the brightest setting is genuinely as bright as the screen can go (often noticeably brighter than the system brightness slider's normal ceiling on devices that gate HBM). Dimming the slider scales the displayed colour's RGB rather than dropping the backlight, so a dim setting stays cleaner than the system slider's dimming would be at the same perceived level.

Colour palette

Twelve preset swatches replace the old Kelvin slider. The first three are white tones (warm / neutral / cool) for fill light and reference-card use. The remaining nine walk the colour wheel from red through orange, yellow, lime, green, cyan, blue, violet, to pink so you can drop a saturated wash on a still life or rim-light a subject without dragging out a real gel. Tap a swatch to switch; the selection is persisted.

Hide the controls

Tap the chevron at the top of the slider panel to collapse it into a small floating Controls pill in the bottom-right corner. The screen now shows only the picked colour and the close icon, useful when the panel itself needs to be in a frame (still life, copy stand, light test). Tap the Controls pill to bring the sliders back.

Thermal auto-dismiss

On devices with thermal-status reporting (Android 10 and newer), the tool watches the system thermal level. At THERMAL_STATUS_MODERATE a soft warning chip appears at the top of the panel asking you to consider closing. At THERMAL_STATUS_SEVERE the panel closes itself immediately and returns you to the viewfinder. You are still responsible for monitoring the device by hand on long sessions in hot conditions.

Settings persist

The brightness value and the picked colour are stored on your active Profile and restored when you reopen the tool, including across a full app restart or reboot. The dialog itself is transient; opening it does not survive app death (you go back to the viewfinder on next launch), but the look you dialed in last is still there. The safety-accept stamp on AppMeta also persists, so you never see the disclaimer again on this install.

Battery and screen burn

Full-brightness white at high colour temperature is the most demanding thing a phone screen can render; saturated colours load fewer subpixels but at higher per-channel output. The panel runs the device at its real HBM ceiling so use sparingly on hot days, on devices with old batteries, or in long sessions. Camera capture is paused while the tool is open since the viewfinder is hidden behind the panel anyway.

Implementation notes (for developers)
StandaloneWhiteboardDialog + WhiteboardSafetyDialog in ui/standalone/. Transient master flag _standaloneWhiteboardOpen on ViewfinderViewModel and a separate transient _whiteboardSafetyVisible for the disclaimer sheet (both held outside ViewfinderUiState for the D8 register-ceiling reason). The accept stamp lives on AppMeta.whiteboardSafetyAcceptedAtMs (per-device, since the warning is about hardware risk rather than profile preference) and is hydrated into _whiteboardSafetyAccepted on init. onShowStandaloneWhiteboard checks the accept flag and routes to either the disclaimer sheet or directly to the tool. Two persisted StateFlows _whiteboardBrightness (0.05..1.0) and _whiteboardColorArgb (Long ARGB, default 0xFFFFFFFF = pure white) wired through restoreSettings + buildProfileFromState + an auto-persist combine watcher. Profile gained whiteboardBrightness REAL DEFAULT 1.0 in v68 alongside the now-dormant whiteboardKelvin REAL DEFAULT 5500.0; v69 added whiteboardColorArgb INTEGER NOT NULL DEFAULT 4294967295 and app_meta.whiteboardSafetyAcceptedAtMs INTEGER NOT NULL DEFAULT 0. The Kelvin column stays on disk dormant because SQLite on Android 13 cannot reliably DROP COLUMN. The dialog itself owns the window override via DisposableEffect on the DialogWindowProvider window so the rest of the app's brightness behaviour is untouched (Red Light Mode still wins outside this dialog). The picked ARGB is multiplied by the brightness slider so dimming reduces emitted light without changing the backlight setting. Contrast ink (white vs near-black) flips automatically based on the rendered panel's luminance so the close icon, hide chevron and slider panel stay readable at every setting. Thermal monitor uses PowerManager.OnThermalStatusChangedListener with a single-thread Executor disposed on dialog dismiss. Camera pause flag extended to include both this dialog and the disclaimer sheet so the preview pipeline idles behind the panel.

Search documentation