Common Indicator Pitfalls

Most indicator bugs are state bugs: a flag never set, never cleared, or cleared on one path only. The rest come from edge to edge, which broke code written for the old opaque status bar.

Indicator and status bar pitfalls and their fixes
Symptom Cause Fix
Pull spinner vanishes at once refreshing never set to true Set it first thing in onRefresh
Spinner never stops Flag cleared only on success Clear it in finally
Endless spinner when offline No error state or timeout Show an error with a retry button
Clock and battery invisible Icons match the background style="auto" and "automatic" theme
Header hidden under the clock Edge to edge, no insets Pad with useSafeAreaInsets().top
Status bar color ignored No effect since Android 15 Paint a header behind the bar

Two habits prevent most of these. Keep one source of truth for a screen's loading state, as the Load union in Loading States in BookNest does, and test every screen in airplane mode (adb shell cmd connectivity airplane-mode enable) and in dark mode before you ship it. Give every spinner an accessibilityLabel for TalkBack and VoiceOver; Accessibility and i18n shows how to announce "catalog loaded" when the wait ends.