package Ġcom . ww y . android . ui . home pl aza Ċ Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . ch ad . library . adapter . base . Base Quick Adapter Ċ import Ġcom . ch ad . library . adapter . base . listener . OnLoad More Listener Ċ import Ġcom . coder . zz q . smart show . toast . Smart Toast Ċ import Ġcom . ww y . android . R Ċ import Ġcom . ww y . android . adapter . HomePage Adapter Ċ import Ġcom . ww y . android . ui . base . Base VM Fragment Ċ import Ġcom . ww y . android . ui . main . Detail Activity Ċ import Ġcom . ww y . android . ui . main . MainActivity Ċ import Ġcom . ww y . android . view . load page . Base Page View For Status Ċ import Ġcom . ww y . android . view . load page . Load Page View For Status Ċ import Ġcom . ww y . android . view . load page . Simple Page View For Status Ċ import Ġcom . ww y . android . vm . Home Pl aza ViewModel Ċ import Ġkotlinx . android . synt hetic . main . fragment _ recycle view .* Ċ import Ġorg . jetbrains . ank o . sdk 2 7 . coroutines . onClick Ċ import Ġorg . jetbrains . ank o . support . v 4 . startActivity Ċ import Ġorg . k oin . android . ext . android . inject Ċ import Ġorg . k oin . android x . view model . ext . android . get ViewModel Ċ Ċ /** Ċ Ġ*@ åĪĽå»º èĢħ ww y Ċ Ġ*@ åĪĽå»º æĹ¶éĹ´ Ġ 2 0 2 0 / 6 / 1 Ġ 1 1 : 3 5 Ċ Ġ*@ æııè¿° Ġ å¹¿ åľº Ċ Ġ*/ Ċ class ĠHome Pl aza Fragment Ġ: ĠBase VM Fragment < Home Pl aza ViewModel >(), ĠOn Load More Listener Ġ{ ĊĠĠĠ Ġprivate Ġval Ġhome Page Adapter Ġ= ĠHome Page Adapter () ĊĠĠĠ Ġprivate Ġval Ġload Page View For Status : ĠBase Page View For Status Ġby Ġinject () ĊĠĠĠ Ġprivate Ġvar Ġroot View : ĠLoad Page View For Status ? Ġ= Ġnull ĊĠĠĠ Ġoverride Ġfun Ġinit VM (): ĠHome Pl aza ViewModel Ġ= Ġget ViewModel () ĊĊĠĠĠ Ġoverride Ġfun Ġset Layout Res Id (): ĠInt Ġ= ĠR . layout . fragment _ recycle view ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġroot View Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( load Page View For Status . getRoot View ( activity Ġas ĠMainActivity ) Ġas ĠLoad Page View For Status ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfail TextView (). onClick Ġ{ Ġrefresh () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġno Net TextView (). onClick Ġ{ Ġrefresh () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠArticle Rv . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġhome Page Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġhome Page Adapter . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġload More Module . setOn Load More Listener ( this @ Home Pl aza Fragment ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Animation First Only Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Animation WithDefault ( Base Quick Adapter . Animation Type . Scale In ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On ItemClickListener Ġ{ Ġadapter , Ġview , Ġposition Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġarticle Ġ= Ġdata [ position ] ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity < Detail Activity >( Detail Activity . PARAM _ ARTIC LE Ġto Ġarticle ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġrefresh Layout . setOn Refresh Listener Ġ{ Ġrefresh () Ġ} ĊĠĠĠĠĠĠĠ Ġrefresh Layout . set Enable Load More ( false ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . load Square Article List ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġrefresh () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġstart Ob serve () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Home Pl aza ListModel . observe ( this @ Home Pl aza Fragment , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Refresh ) Ġrefresh Layout . finish Refresh ( it . is Refresh Success ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . show End ) Ġhome Page Adapter . load More Module . load More End () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . load Page Status ?. value ?. let Ġ{ Ġload Page Status Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View ?. let Ġ{ Ġroot View Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Page View For Status . convert ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload Page Status Ġ= Ġload Page Status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Page Adapter . set Empty View ( root View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . show Success ?. let Ġ{ Ġlist Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Page Adapter . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload More Module . is Enable Load More Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Refresh ) Ġset List ( list ) Ġelse Ġadd Data ( list ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload More Module . is Enable Load More Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload More Module . load More Complete () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . show Error ?. let Ġ{ Ġerror Msg Ġ-> // åĬłè½½ å¤±è´¥ å¤ĦçĲĨ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Page Adapter . load More Module . load More Fail () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSmart Toast . show ( error Msg ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonLoad More () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . load Square Article List ( false ) ĊĠĠĠ Ġ} ĊĊ Ċ }