package Ġgi av u . ho ang vm . hh . activity . profile Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġgi av u . ho ang vm . hh . api . User Api Ċ import Ġgi av u . ho ang vm . hh . model . User Response Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . dis pos ables . Composite Disposable Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġtim ber . log . Tim ber Ċ Ċ /** Ċ Ġ* Ġ@ Author : ĠHo ang ĠV u Ċ Ġ* Ġ@ Date : ĠĠĠ 2 0 1 9 / 0 4 / 2 1 Ċ Ġ*/ Ċ class ĠProfile ViewModel ( private Ġval Ġuser Api : ĠUser Api ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġcomposite Disposable : ĠComposite Disposable Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠComposite Disposable () ĊĠĠĠ Ġ} ĊĠĠĠ Ġprivate Ġval Ġ_ show Progress Request : ĠMutable LiveData < Unit > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġval Ġ_ hide Progress Request : ĠMutable LiveData < Unit > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġval Ġ_ userName : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġval Ġ_ follow er : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĠĠĠ Ġprivate Ġval Ġ_ following : ĠMutable LiveData < String > Ġ= ĠMutable LiveData () ĊĊĠĠĠ Ġval Ġshow Progress Request : ĠLive Data < Unit > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ show Progress Request ĊĊĠĠĠ Ġval Ġhide Progress Request : ĠLive Data < Unit > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ hide Progress Request ĊĊĠĠĠ Ġval ĠuserName : ĠLive Data < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ userName ĊĊĠĠĠ Ġval Ġfollow er : ĠLive Data < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ follow er ĊĊĠĠĠ Ġval Ġfollowing : ĠLive Data < String > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ following ĊĊĠĠĠ Ġfun Ġinitialize () Ġ{ ĊĠĠĠĠĠĠĠ Ġuser Api . getUser () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ Ġ_ show Progress Request . value Ġ= ĠUnit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do Finally Ġ{ Ġ_ hide Progress Request . value Ġ= ĠUnit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= Ġ:: on Success , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= ĠTim ber :: w ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. addTo ( composite Disposable ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonSuccess ( user Response : ĠUser Response ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ userName . value Ġ= Ġuser Response . login ĊĠĠĠĠĠĠĠ Ġ_ follow er . value Ġ= Ġuser Response . followers . toString () ĊĠĠĠĠĠĠĠ Ġ_ following . value Ġ= Ġuser Response . following . toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cle ared () ĊĠĠĠĠĠĠĠ Ġcomposite Disposable . clear () ĊĠĠĠ Ġ} Ċ }