package Ġcom . a 1 0 m ia om iao . bil im iao . ui . video Ċ Ċ import Ġandroid . arch . lifecycle . Mutable LiveData Ċ import Ġandroid . arch . lifecycle . ViewModel Ċ import Ġandroid . content . Context Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . entity . Result Info Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . entity . comment . Page Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . entity . comment . Reply Bean Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . entity . comment . Video Comment Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . net word . B ili ApiService Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . net word . M iao Http Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . ui . com mp onent s . Load More View Ċ import Ġcom . a 1 0 m ia om iao . bil im iao . utils . Debug M iao Ċ import Ġcom . a 1 0 m ia om iao . m iao and ri od . M iao LiveData Ċ import Ġcom . a 1 0 m ia om iao . m iao and ri od . adapter . M iao List Ċ import Ġio . reactivex . Scheduler Ċ import Ġio . reactivex . android . schedul ers . Android Schedulers Ċ import Ġio . reactivex . schedul ers . Schedulers Ċ import Ġorg . jetbrains . ank o . toast Ċ Ċ class ĠVideo Comment ViewModel ( ĊĠĠĠĠĠĠĠ Ġval Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġval Ġid : ĠString Ċ ) Ġ: ĠViewModel () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġmin id Ġ= Ġ 0 ĊĠĠĠ Ġprivate Ġvar Ġpage Num Ġ= Ġ 1 ĊĠĠĠ Ġprivate Ġval ĠpageSize Ġ= Ġ 2 0 ĊĊĠĠĠ Ġvar Ġlist Ġ= ĠM iao List < Reply Bean >() ĊĠĠĠ Ġvar Ġhot List Ġ= ĠM iao List < Reply Bean >() ĊĊĠĠĠ Ġvar Ġloading Ġ= ĠM iao LiveData ( false ) ĊĠĠĠ Ġval Ġload State Ġ= ĠM iao LiveData ( Load More View . State . LOADING ) ĊĠĠĠ Ġval Ġpage Info Ġ= ĠM iao LiveData ( Page ( ĊĠĠĠĠĠĠĠĠ 0 , Ġ 0 , Ġ 0 , Ġ 0 ĊĠĠĠ Ġ)) ĊĊĠĠĠ Ġvar Ġsort Order Ġ= Ġ 2 ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ(- loading ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġif Ġ(- load State Ġ== ĠLoad More View . State . NO MORE ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġloading Ġset Ġtrue ĊĠĠĠĠĠĠĠ Ġval Ġurl Ġ= ĠB ili ApiService . get Comment List ( id , Ġsort Order , Ġpage Num , ĠpageSize ) ĊĠĠĠĠĠĠĠ ĠM iao Http . get Json < Result Info < Video Comment >>( url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. observe On ( Android Schedulers . main Thread ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe On ( Schedulers . io ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ Ġr Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r . code Ġ== Ġ 0 ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Info Ġset Ġr . data . page ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlist . addAll ( r . data . replies ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġset Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpage Num ++ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( r . data . page . count Ġ<= Ġlist . size ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload State Ġset ĠLoad More View . State . NO MORE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} else { ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext . toast ( r . message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, Ġ{ Ġe Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġe . printStackTrace () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload State Ġset ĠLoad More View . State . FAIL ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloading Ġset Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġrefresh List () Ġ{ ĊĠĠĠĠĠĠĠ Ġlist . clear () ĊĠĠĠĠĠĠĠ Ġhot List . clear () ĊĠĠĠĠĠĠĠ Ġmin id Ġ= Ġ 0 ĊĠĠĠĠĠĠĠ Ġpage Num Ġ= Ġ 1 ĊĠĠĠĠĠĠĠ Ġload State Ġset ĠLoad More View . State . LOADING ĊĠĠĠĠĠĠĠ Ġload Data () ĊĠĠĠ Ġ} Ċ Ċ }