Skip to content

v0.12.0-kmb.12 — DefaultLifecycleObserver migration

Choose a tag to compare

@kmbrimble kmbrimble released this 02 Sep 06:25
· 24 commits to master since this release

All three @OnLifecycleEvent sites migrated to DefaultLifecycleObserver. The deprecated annotation resolved reflectively (no lifecycle-compiler on the processor path), which was a hidden blocker on ever enabling R8.

Behaviour verified before AND after with an identical on-device sequence — ON_START and DialogUtils ON_DESTROY fire in both; TTS ON_DESTROY fires in neither. Identical, so the migration is behaviour-preserving.

The pre-change check found more than the migration did. Two of the three callbacks never run in normal operation, for pre-existing structural reasons: BrowserActivityNative declares configChanges for everything and is never destroyed, and WallPanelService has no stopSelf() and never stops gracefully. Screensaver dialogs are cleared by the 9 direct clearDialogs() calls, not by the lifecycle observer — so no dialog leak occurs by that route.

Verified: 6 unit tests, smoke-device.sh PASS, panel-render-probe.sh RENDERING, post-install probe RENDERING.