package Ġcom . xy o ye . anime _ component . ui . fragment . home Ċ Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . xy o ye . common _ component . base . Base ViewModel Ċ import Ġcom . xy o ye . common _ component . network . Ret rofit Module Ċ import Ġcom . xy o ye . common _ component . network . request . httpRequest Ċ import Ġcom . xy o ye . data _ component . data . Bang umi An ime Data Ċ import Ġcom . xy o ye . data _ component . data . Banner Data Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġx yo ye Ġon Ġ 2 0 2 0 / 7 / 2 8 . Ċ Ġ*/ Ċ Ċ @ H ilt ViewModel Ċ class ĠHome Fragment ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġval ĠRet rofit : ĠRet rofit Module Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĠĠĠ Ġval Ġtab Titles Ġ= ĠarrayOf (" åĳ¨ æĹ¥ ", Ġ" åĳ¨ ä¸Ģ ", Ġ" åĳ¨ äºĮ ", Ġ" åĳ¨ ä¸ī ", Ġ" åĳ¨ åĽĽ ", Ġ" åĳ¨ äºĶ ", Ġ" åĳ¨ åħŃ ") ĊĠĠĠ Ġval Ġweekly An ime LiveData Ġ= ĠMutable LiveData < Array < Bang umi An ime Data >>() ĊĠĠĠ Ġval Ġb anners LiveData Ġ= ĠMutable LiveData < Banner Data >() ĊĊĠĠĠ Ġfun Ġget Week ly An ime () Ġ{ ĊĠĠĠĠĠĠĠ ĠhttpRequest < Bang umi An ime Data >( viewModel Scope ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit . service . get Week ly An ime () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweekly An ime LiveData . post Value ( split Week ly An ime ( it )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Network Error ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget B anners () Ġ{ ĊĠĠĠĠĠĠĠ ĠhttpRequest < Banner Data >( viewModel Scope ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit . service . getB anners () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġb anners LiveData . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Network Error ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ æĮī æĹ¥æľŁ åĪĨ åī² æķ°æį® ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġsplit Week ly An ime ( weekly An ime Data : ĠB ang umi An ime Data ): ĠArray < Bang umi An ime Data > Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġweekly An ime DataArray Ġ= ĠArray ( 7 ) Ġ{ ĠB ang umi An ime Data () Ġ} ĊĠĠĠĠĠĠĠ Ġweekly An ime Data . bang umi List ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. filter Ġ{ Ġit . air Day Ġ<= Ġ 7 Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. groupBy Ġ{ Ġit . air Day Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. entries ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . key Ġ< Ġweekly An ime DataArray . size ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġweekly An ime DataArray [ it . key ] Ġ= ĠB ang umi An ime Data ( it . value . to Mutable List ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġweekly An ime DataArray ĊĠĠĠ Ġ} Ċ }