inactive IndexedStack tabs stay mounted and their animated emotes keep decoding frames forever; wrap them in TickerMode(enabled: false) so the Image widget pauses animated codecs until the tab is active again. while the app is backgrounded no frames are produced but dart timers keep firing, so the 200ms flush timers (one per tab, plus the merged render timer) were pure battery cost. pause them on AppLifecycleState.paused and resume with an immediate catch-up flush; messages keep buffering with the existing overflow drain bounding growth. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com> |
||
|---|---|---|
| .. | ||
| channel | ||
| home | ||
| onboarding | ||
| settings | ||