package Ġcom . ant image . basic . presenter . base Ċ Ċ import Ġandroid . content . Context Ċ import Ġcom . ant image . basic . rx helper . Loading Transform Ċ import Ġcom . ant image . basic . ui . view . Compose Loading Ċ import Ġcom . ant image . basic . ui . view . I Base View Ċ import Ġcom . ant image . basic . ui . view . IL o ading Ċ import Ġcom . trello . rx lifecycle 2 . Lifecycle Provider Ċ import Ġcom . trello . rx lifecycle 2 . Lifecycle Transformer Ċ import Ġcom . trello . rx lifecycle 2 . Rx Lifecycle Ċ import Ġio . reactivex . Observable Ċ import Ġio . reactivex . Observable Transformer Ċ import Ġio . reactivex . subjects . Behavior Subject Ċ Ċ open Ġclass ĠBase Presenter < E , ĠV > Ġ: ĠLifecycle Provider < E >, ĠCompose Loading Ġ{ ĊĊĠĠĠ Ġprotected Ġvar Ġcontext : ĠContext ? Ġ= Ġnull ĊĠĠĠ Ġvar Ġm V : ĠV ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġlifecycle Provider : ĠLifecycle Provider < E >? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġis Attach : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġopen Ġfun ĠonCreate ( context : ĠContext , Ġlifecycle Provider : ĠLifecycle Provider < E >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . context Ġ= Ġcontext ĊĠĠĠĠĠĠĠ Ġthis . lifecycle Provider Ġ= Ġlifecycle Provider ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġon Attach View ( v : ĠV ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm V Ġ= Ġv ĊĠĠĠĠĠĠĠ Ġis Attach Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġon Detach V iw () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Attach Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġm V Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġopen Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġlifecycle Provider Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġcontext Ġ= Ġnull ĊĠĠĠ Ġ} Ċ Ċ // Ġ Ġ= =============== Ġoverride Ġ= =============== ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġbind Loading ( msg : ĠString ): ĠObservable Transformer < T , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( mV Ġis ĠI Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLoading Transform ( mV Ġas ĠI Loading , Ġmsg ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable Transformer Ġ{ Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġbind Loading ( res Id : ĠInt ): ĠObservable Transformer < T , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( mV Ġis ĠI Loading ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠLoading Transform ( mV Ġas ĠI Loading , Ġres Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn ĠObservable Transformer Ġ{ Ġit Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġbind Loading (): ĠObservable Transformer < T , ĠT > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġthis . bind Loading (" loading ...") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlifecycle (): ĠObservable < E > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġif Ġ( lifecycle Provider Ġ== Ġnull ) ĠBehavior Subject . create () Ġelse Ġlifecycle Provider !!. lifecycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġbind Until Event ( event : ĠE ): ĠLifecycle Transformer < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlifecycle Provider ?. bind Until Event ( event ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠRx Lifecycle . bind ( Behavior Subject . create < T >()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġ< T > Ġbind To Lifecycle (): ĠLifecycle Transformer < T > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġlifecycle Provider ?. bind To Lifecycle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ?: ĠRx Lifecycle . bind ( Behavior Subject . create < T >()) ĊĠĠĠ Ġ} Ċ }