package Ġcom . kick starter . ui . view holders Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . View Ċ import Ġcom . kick starter . KS Application Ċ import Ġcom . kick starter . libs . Activity Lifecycle Type Ċ import Ġcom . kick starter . libs . Environment Ċ import Ġcom . trello . rx lifecycle . Activity Event Ċ import Ġcom . trello . rx lifecycle . Rx Lifecycle Ċ import Ġrx . Observable Ċ import Ġrx . subjects . Publish Subject Ċ Ċ abstract Ġclass ĠK S Array ViewHolder ( private Ġval Ġview : ĠView ) Ġ: ĠActivity Lifecycle Type Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġlifecycle Ġ= ĠPublish Subject . create < Activity Event >() ĊĠĠĠ Ġabstract Ġfun Ġbind Data ( any : ĠAny ?) ĊĊĠĠĠ Ġoverride Ġfun Ġlifecycle (): ĠObservable < Activity Event > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . lifecycle ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠThis Ġmethod Ġis Ġintended Ġto Ġbe Ġcalled Ġonly Ġfrom Ġ` KS Array Adapter ` Ġin Ġorder Ġfor Ġit Ġto Ġinform Ġthe Ġview Ġholder ĊĠĠĠĠ Ġ* Ġof Ġits Ġlifecycle . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġlifecycle Event ( event : ĠActivity Event ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . lifecycle . onNext ( event ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( Activity Event . DESTROY Ġ== Ġevent ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdestroy () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComp letes Ġan Ġobservable Ġwhen Ġan Ġ[ Activity Event ] Ġoccurs Ġin Ġthe Ġactivity 's Ġlifecycle . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġbind Until Event ( event : ĠActivity Event ): ĠObservable . Transformer < T , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRx Lifecycle . bind Until Activity Event ( this . lifecycle , Ġevent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠComp letes Ġan Ġobservable Ġwhen Ġthe Ġlifecycle Ġevent Ġopp osing Ġthe Ġcurrent Ġl ifec yle Ġevent Ġis Ġemitted . ĊĠĠĠĠ Ġ* ĠFor Ġexample , Ġif Ġa Ġsubscription Ġis Ġmade Ġduring Ġ[ Activity Event . CREATE ], Ġthe Ġobservable Ġwill Ġbe Ġcompleted ĊĠĠĠĠ Ġ* Ġin Ġ[ Activity Event . DESTROY ]. ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġ< T > Ġbind To Lifecycle (): ĠObservable . Transformer < T , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠRx Lifecycle . bind Activity ( this . lifecycle ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCalled Ġwhen Ġthe ĠViewHolder Ġis Ġbeing Ġdet ached . ĠSub classes Ġshould Ġoverride Ġif Ġthey Ġneed Ġto Ġdo Ġany Ġwork ĊĠĠĠĠ Ġ* Ġwhen Ġthe ĠViewHolder Ġis Ġbeing Ġde - allocated . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprotected Ġfun Ġdestroy () Ġ{} ĊĊĠĠĠ Ġprotected Ġfun Ġview (): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . view ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġcontext (): ĠContext Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . view . context ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġfun Ġenvironment (): ĠEnvironment Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġ( context (). application Context Ġas ĠK S Application ). component (). environment () ĊĠĠĠ Ġ} Ċ } Ċ