package Ġw ang . lifecycle . internal Ċ Ċ import Ġandroidx . lifecycle .* Ċ import Ġw ang . lifecycle . Background Live Event Ċ Ċ internal Ġclass ĠAlways Active No Sticky Observer Box < T > Ġconstructor ( ĊĠĠĠ Ġobserver : ĠObserver < in ĠT >, ĊĠĠĠ Ġoverride Ġvar Ġignored : ĠBoolean , ĊĠĠĠ ĠonChanged : Ġ( Observer < in ĠT >, ĠT ) Ġ-> ĠUnit Ċ ) Ġ: ĠNo Sticky Observer Box < T >( observer , ĠonChanged ), ĠAlways Active ĊĊ Ċ internal Ġclass ĠLifecycle Bound No Sticky Observer Box < T > Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġm Owner : ĠLifecycle Owner , Ġobserver : ĠObserver < in ĠT >, Ġoverride Ġvar Ġignored : ĠBoolean , ĊĠĠĠ ĠonChanged : Ġ( Observer < in ĠT >, ĠT ) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġon Owner Destroy : Ġ( Observer < in ĠT >) Ġ-> ĠUnit , ĊĠĠĠ Ġprivate Ġval Ġis Background : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠNo Sticky Observer Box < T >( observer , ĠonChanged ), ĠLifecycle Event Observer Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon StateChanged ( source : ĠLifecycle Owner , Ġevent : ĠLifecycle . Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( m Owner . lifecycle . currentState Ġ== ĠLifecycle . State . DESTROY ED ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Owner Destroy ( observer ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Attached To ( owner : ĠLifecycle Owner ): ĠBoolean Ġ Ġ= Ġthis . m Owner Ġ=== Ġowner ĊĊĠĠĠ Ġoverride Ġfun Ġdetach Observer () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( is Background ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠBackground Live Event . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Owner . background Lifecycle . remove Observer ( this @ Lifecycle Bound No Sticky Observer Box ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} else Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Owner . lifecycle . remove Observer ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġsuper . detach Observer () ĊĠĠĠ Ġ} Ċ } Ċ Ċ internal Ġabstract Ġclass ĠNo Sticky Observer Box < T > Ġconstructor ( ĊĠĠĠ Ġoverride Ġval Ġobserver : ĠObserver < in ĠT >, ĊĠĠĠ Ġprivate Ġval ĠonChanged : Ġ( Observer < in ĠT >, ĠT ) Ġ-> ĠUnit Ċ ) Ġ: ĠObserver < T >, ĠObserver Box < T > Ġ{ ĊĠĠĠ Ġabstract Ġvar Ġignored : ĠBoolean ĊĠĠĠ Ġprivate Ġfun Ġshould Ignored (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġignored Ġ= Ġthis . ignored ĊĠĠĠĠĠĠĠ Ġthis . ignored Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġreturn Ġignored ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonChanged ( value : ĠT ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( should Ignored ()) Ġreturn ĊĠĠĠĠĠĠĠ ĠonChanged ( observer , Ġvalue ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġis Attached To ( owner : ĠLifecycle Owner ): ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġopen Ġfun Ġdetach Observer () Ġ{} Ċ } Ċ