package Ġcom . fmt . kotlin . eye pet izer . discover . view model Ċ Ċ import Ġandroidx . lifecycle . LiveData Ċ import Ġcom . fmt . kotlin . eye pet izer . common . base . view model . Base ViewModel Ċ import Ġcom . fmt . kotlin . eye pet izer . common . global . Config Keys Ċ import Ġcom . fmt . kotlin . eye pet izer . common . global . Configurator Ċ import Ġcom . fmt . kotlin . eye pet izer . discover . api . Discover Api Ċ import Ġcom . fmt . kotlin . eye pet izer . discover . model . Category Model Ċ import Ġcom . fmt . kotlin . eye pet izer . provider . model . Item Ċ import Ġdagger . h ilt . android . lifecycle . H ilt ViewModel Ċ import Ġjavax . inject . Inject Ċ Ċ @ H ilt ViewModel Ċ class ĠCategory ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġprivate Ġval Ġm Discover Api : ĠDis cover Api , ĊĠĠĠ Ġprivate Ġval Ġm Configurator : ĠConfigurator Ċ ) Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠURL _ END Ġ= Ġ"& ud id = d 2 8 0 7 c 8 9 5 f 0 3 4 8 a 1 8 0 1 4 8 c 9 dfa 6 f 2 fee ac 0 7 8 1 b 5 & device Model = Android " ĊĠĠĠ Ġprivate Ġvar Ġm Next Page Url : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġfun Ġget Category List (): ĠLive Data < List < Category Model >> Ġ= Ġlive Data Ex Ġ{ ĊĠĠĠĠĠĠĠ Ġm Discover Api . get Category List () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġget Category Detail List ( id : ĠInt ): ĠLive Data < List < Item >> Ġ= Ġlive Data Ex Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(( m Next Page Url Ġ== Ġnull ) Ġand Ġ( id Ġ== Ġ- 1 )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmutable ListOf () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġurl : ĠString Ġ= Ġif Ġ( id Ġ!= Ġ- 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ m Configurator . getConfiguration < String >( Config Keys . WEB _ API _ HOST )} v 4 / categories / video List ? id =${ id }${ URL _ END }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ m Next Page Url }${ URL _ END }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġissue Ġ= Ġm Discover Api . get Category Detail List ( url ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Next Page Url Ġ= Ġissue . next Page Url ĊĠĠĠĠĠĠĠĠĠĠĠ Ġissue . item List ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }