package Ġcom . coding . z xm . wan android . home Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . coding . z xm . network . Ret rofit Client Ċ import Ġcom . coding . z xm . network . common . Common Result Ċ import Ġcom . coding . z xm . wan android . app . Wan App Ċ import Ġcom . coding . z xm . wan android . home . model . Banner Entity Ċ import Ġcom . coding . z xm . wan android . home . model . News Entity Ċ import Ġcom . coding . z xm . wan android . util . Toast Util Ċ import Ġkotlinx . coroutines . launch Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠZ hang X in min Ġon Ġ 2 0 2 0 / 8 / 1 2 . Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 Ġ. ĠAll Ġrights Ġreserved . Ċ Ġ*/ Ċ class ĠHome ViewModel ( private Ġval Ġhome Repository : ĠHome Repository ) Ġ: ĠViewModel () Ġ{ ĊĊĊĠĠĠ Ġfun Ġget Banner Data (): ĠMutable LiveData < Mutable List < Banner Entity >> Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlive Data Ġ= ĠMutable LiveData < Mutable List < Banner Entity >>() ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġhome Repository . get Banner Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġis ĠCommon Result . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . post Value ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( result Ġis ĠCommon Result . Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Util . show Toast ( result . exception . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . post Value ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlive Data ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġget News Data ( page Index : ĠInt ): ĠMutable LiveData < News Entity > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlive Data Ġ= ĠMutable LiveData < News Entity >() ĊĠĠĠĠĠĠĠ ĠviewModel Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresult Ġ= Ġhome Repository . get Home News ( page Index ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( result Ġis ĠCommon Result . Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . post Value ( result . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( result Ġis ĠCommon Result . Error ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Util . show Toast ( result . exception . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlive Data . post Value ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġlive Data ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġobject ĠHome ViewModel Factory Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠHome ViewModel ( Home Repository ( Ret rofit Client . getInstance ( Wan App . getApplicationContext ()) !! )) Ġas ĠT ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }