package Ġcom . be yond world s . wan android . mv vm Ċ Ċ import Ġandroid . util . Log Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . be yond world s . wan android . net . bean . Art ical Ċ import Ġcom . be yond world s . wan android . net . bean . DataList Ċ import Ġcom . be yond world s . wan android . net . bean . List Ui Data Ċ import Ġcom . be yond world s . wan android . net . repository . Home Repository Ċ import Ġkotlinx . coroutines .* Ċ Ċ /** Ċ Ġ* Ġ ĠCreated Ġby ĠB ey ond World s Ċ Ġ* Ġ Ġon Ġ 2 0 2 0 / 6 / 1 1 Ċ Ġ*/ Ċ class ĠHome ViewModel Ġ: ĠBase ViewModel () Ġ{ ĊĠĠĠ Ġvar Ġm Home Art ical LiveData Ġ= ĠMutable LiveData < DataList < Art ical >>() ĊĠĠĠ Ġvar Ġm Page Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġm Home UIState Ġ= ĠMutable LiveData < List Ui Data < Mutable List < Art ical >> >() ĊĠĠĠ Ġprivate Ġval Ġm Home Repository : ĠHome Repository Ġby Ġlazy Ġ{ ĠHome Repository () Ġ} ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġèİ·åıĸ é¦ĸé¡µ æĸĩç«ł åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Art ical List ( page : ĠInt Ġ= Ġ 0 , Ġis Refresh : ĠBoolean Ġ= Ġtrue ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Request ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! is Refresh ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Page ++ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Home Repository . get Home A rit cla ( m Page ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Ġ= Ġit . cur Page ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Refresh ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate UIState ( is Refresh Ġ= Ġis Refresh , Ġshow Success Ġ= Ġit . datas ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate UIState ( is Refresh Ġ= Ġis Refresh , Ġshow Success Ġ= Ġit . datas , Ġis Last Data Ġ= Ġit . over ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Home Art ical LiveData . value Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġupdate UIState ( is Refresh Ġ= Ġis Refresh , Ġshow Error Ġ= Ġit . error Msg ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh Art ical List ( page : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexecute Request ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Home Repository . get Home A rit cla ( page ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Home Art ical LiveData . value Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload More Art ical ( page : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( page Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Page Ġ= Ġpage ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġexecute Request ({ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Home Repository . get Home A rit cla ( m Page ) ĊĠĠĠĠĠĠĠ Ġ}, Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Home Art ical LiveData . value Ġ= Ġit ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate UIState ( ĊĠĠĠĠĠĠĠ Ġis Show Loading : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġis Refresh : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġis Last Data : ĠBoolean Ġ= Ġfalse , ĊĠĠĠĠĠĠĠ Ġshow Success : ĠMutable List < Art ical >? Ġ= Ġnull , ĊĠĠĠĠĠĠĠ Ġshow Error : ĠString Ġ= Ġ"" ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm Home UIState . value Ġ= ĠList Ui Data < Mutable List < Art ical >>( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Show Loading , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Refresh , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Last Data , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Success !! , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ Ċ }