package Ġcom . ze yn eler di . foot ball app . ui . team Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . ze yn eler di . foot ball app . base . Base ViewModel Ċ import Ġcom . ze yn eler di . foot ball app . data . team . Team DataSource Ċ import Ġcom . ze yn eler di . foot ball app . data . team . remote . response . Team Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ Ċ class ĠTeam ViewModel ( private Ġval Ġrepository : ĠTeam DataSource ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġ_ team List Ġ= ĠMutable LiveData < List < Team >> (). apply Ġ{ Ġvalue Ġ= Ġempty List () Ġ} ĊĠĠĠ Ġval Ġteam List : ĠLive Data < List < Team >> Ġ= Ġ_ team List ĊĊĠĠĠ Ġprivate Ġval Ġ_ team Detail Ġ= ĠMutable LiveData < List < Team >> (). apply Ġ{ Ġvalue Ġ= Ġempty List () Ġ} ĊĠĠĠ Ġval Ġteam Detail : ĠLive Data < List < Team >> Ġ= Ġ_ team Detail ĊĊĠĠĠ Ġprivate Ġval Ġ_ search Team Ġ= ĠMutable LiveData < List < Team >> (). apply Ġ{ Ġvalue Ġ= Ġempty List () Ġ} ĊĠĠĠ Ġval Ġsearch Team : ĠLive Data < List < Team >> Ġ= Ġ_ search Team ĊĊĠĠĠ Ġprivate Ġval Ġ_ is View Loading Ġ= ĠMutable LiveData < Boolean >() ĊĠĠĠ Ġval Ġis View Loading : ĠLive Data < Boolean > Ġ= Ġ_ is View Loading ĊĊĠĠĠ Ġprivate Ġval Ġ_ on Message Error Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġval Ġon Message Error : ĠLive Data < String > Ġ= Ġ_ on Message Error ĊĊĠĠĠ Ġfun Ġload Team List ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsubscribe ( repository . get Team List ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ Ġ_ is View Loading . post Value ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ is View Loading . post Value ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ team List . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Network ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Team Detail ( id : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsubscribe ( repository . get Team Detail ( id ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ Ġ_ is View Loading . post Value ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ is View Loading . post Value ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ team Detail . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Network ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Search Team ( query : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsubscribe ( repository . get Search Team ( query ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. do On Subscribe Ġ{ Ġ_ is View Loading . post Value ( true ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ is View Loading . post Value ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ search Team . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonError Network ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠonError Network ( throwable : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ is View Loading . post Value ( false ) ĊĠĠĠĠĠĠĠ Ġ_ on Message Error . post Value ( throwable . message ) ĊĠĠĠ Ġ} Ċ Ċ }