package Ġcom . tan ay . flickr demo . ui . base Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġcom . tan ay . flickr demo . data . DataManager Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġjava . lang . ref . Weak Reference Ċ Ċ open Ġclass ĠBase ViewModel < N >( ĊĠĠĠ Ġval Ġdata Manager : ĠData Manager Ċ ): ĠViewModel () Ġ{ ĊĊĊĠĠĠ Ġprivate Ġvar Ġm Navigator : ĠWeak Reference < N >? Ġ= Ġnull ĊĠĠĠ Ġval Ġloader : ĠMutable LiveData < Boolean > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġval Ġerror : ĠMutable LiveData < String ?> Ġ= ĠMutable LiveData () ĊĠĠĠ Ġvar Ġcomposite Disposable : ĠComposite Disposable Ġ= ĠComposite Disposable () ĊĊĠĠĠ Ġfun Ġdisplay Loader ( isLoading : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġloader . value Ġ= ĠisLoading ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget Navigator (): ĠN ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġm Navigator ?. get () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Navigator ( navigator : ĠN ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . m Navigator Ġ= ĠWeak Reference ( navigator ) ĊĠĠĠ Ġ} Ċ }