package Ġcom . cost ular . mar vel hero es . presentation . hero e detail Ċ Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġandroid . util . Log Ċ import Ġandroid . widget . Toast Ċ import Ġcom . cost ular . mar vel hero es . data . repository . Mar vel Hero es Repository Impl Ċ import Ġcom . cost ular . mar vel hero es . domain . model . Mar vel Hero Entity Ċ import Ġcom . cost ular . mar vel hero es . presentation . service locator . Inject Ċ import Ġcom . cost ular . mar vel hero es . presentation . util . Base ViewModel Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . rx kotlin . addTo Ċ import Ġio . reactivex . rx kotlin . subscribe By Ċ import Ġio . reactivex . schedul ers . Schedulers ĊĊ Ċ class ĠHero Detail ViewModel : ĠBase ViewModel (){ ĊĊĠĠĠ Ġval Ġhero State Ġ: ĠMutable LiveData < Mar vel Hero Entity > Ġ= ĠMutable LiveData () ĊĊĊĠĠĠ Ġfun Ġupdate Favorite ByName ( name : String , is Favorite : Boolean ){ ĊĠĠĠĠĠĠĠ ĠInject . local DataSource MV VM . update Hero Favorite ( name , is Favorite ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Hero ByName ( name Ġ: ĠString ){ ĊĠĠĠĠĠĠĠ ĠInject . mar vel Hero es Repository . get Mar vel Hero Detail ( name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe By ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ= { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhero State . value Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ= Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" DETAIL ViewModel ", it . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonComplete Ġ= Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ). addTo ( composite Disposable )// Del ĠBase ViewModel ĊĠĠĠ Ġ} Ċ Ċ }