package Ġcom . hu aw en . base library . schedule . rx lifecycle 2 . android . lifecycle ĊĊ Ċ import Ġandroidx . annotation . Check Result Ċ import Ġandroidx . lifecycle . Lifecycle Ċ import Ġcom . hu aw en . base library . schedule . rx lifecycle 2 . Lifecycle Transformer Ċ import Ġcom . hu aw en . base library . schedule . rx lifecycle 2 . Outside Lifecycle Exception Ċ import Ġcom . hu aw en . base library . schedule . rx lifecycle 2 . Rx Lifecycle Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . functions . Function ĊĊ Ċ class ĠRx Lifecycle Android Lifecycle Ġprivate Ġconstructor () Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthrow ĠAssertionError (" No Ġinstances ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* ĠBind s Ġthe Ġgiven Ġsource Ġto Ġan ĠAndroid Ġlifecycle . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* ĠThis Ġhelper Ġautomatically Ġdetermines Ġ( based Ġon Ġthe Ġlifecycle Ġsequence Ġitself ) Ġwhen Ġthe Ġsource ĊĠĠĠĠĠĠĠĠ Ġ* Ġshould Ġstop Ġemit ting Ġitems . ĠIn Ġthe Ġcase Ġthat Ġthe Ġlifecycle Ġsequence Ġis Ġin Ġthe ĊĠĠĠĠĠĠĠĠ Ġ* Ġcreation Ġphase Ġ( ON _ CREATE , ĠON _ START , Ġetc ) Ġit Ġwill Ġchoose Ġthe Ġequivalent Ġdestruct ive Ġphase Ġ( ON _ DESTROY , ĊĠĠĠĠĠĠĠĠ Ġ* ĠON _ STOP , Ġetc ). ĠIf Ġused Ġin Ġthe Ġdestruct ive Ġphase , Ġthe Ġnotifications Ġwill Ġce ase Ġat Ġthe Ġnext Ġevent ; ĊĠĠĠĠĠĠĠĠ Ġ* Ġfor Ġexample , Ġif Ġused Ġin ĠON _ PAUSE , Ġit Ġwill Ġunsubscribe Ġin ĠON _ STOP . ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġlifecycle Ġthe Ġlifecycle Ġsequence Ġof Ġan ĠActivity ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ return Ġa Ġre usable Ġ[ Lifecycle Transformer ] Ġthat Ġun sub scri bes Ġthe Ġsource Ġduring Ġthe ĠActivity Ġlifecycle ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġ@ Check Result ĊĠĠĠĠĠĠĠ Ġfun Ġ< T > Ġbind Lifecycle ( lifecycle : ĠObservable < Lifecycle . Event >): ĠLifecycle Transformer < T > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRx Lifecycle . bind ( lifecycle , ĠL IF EC Y CLE ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠL IF EC Y CLE Ġ= ĠFunction < Lifecycle . Event , ĠLifecycle . Event > Ġ{ Ġlast Event Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( last Event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLifecycle . Event . ON _ CREATE Ġ-> ĠLifecycle . Event . ON _ DESTROY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLifecycle . Event . ON _ START Ġ-> ĠLifecycle . Event . ON _ STOP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLifecycle . Event . ON _ RE SU ME Ġ-> ĠLifecycle . Event . ON _ PAUSE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLifecycle . Event . ON _ PAUSE Ġ-> ĠLifecycle . Event . ON _ STOP ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLifecycle . Event . ON _ STOP Ġ-> ĠLifecycle . Event . ON _ DESTROY ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLifecycle . Event . ON _ DESTROY Ġ-> Ġthrow ĠOut side Lifecycle Exception (" Cannot Ġbind Ġto ĠActivity Ġlifecycle Ġwhen Ġoutside Ġof Ġit .") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠUnsupportedOperationException (" Binding Ġto Ġ$ last Event Ġnot Ġyet Ġimplemented ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ