package Ġcom . vm lo ft . develop . app . template . ui . trade Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ Ċ import Ġcom . alibaba . android . ar outer . facade . annotation . Route Ċ Ċ import Ġcom . dr ake et . mult it ype . Multi Type Adapter Ċ Ċ import Ġcom . vm lo ft . develop . app . template . R Ċ import Ġcom . vm lo ft . develop . app . template . common . Constants Ċ import Ġcom . vm lo ft . develop . app . template . databinding . Activity Order List Binding Ċ import Ġcom . vm lo ft . develop . app . template . request . bean . Order Ċ import Ġcom . vm lo ft . develop . app . template . request . view model . Trade ViewModel Ċ import Ġcom . vm lo ft . develop . app . template . router . App Router Ċ import Ġcom . vm lo ft . develop . library . base . B Item Delegate Ċ import Ġcom . vm lo ft . develop . library . base . BV MA ct ivity Ċ import Ġcom . vm lo ft . develop . library . base . B ViewModel Ċ import Ġcom . vm lo ft . develop . library . base . common . C Constants Ċ import Ġcom . vm lo ft . develop . library . base . event . L DE vent Bus Ċ import Ġcom . vm lo ft . develop . library . base . router . C Router Ċ import Ġcom . vm lo ft . develop . library . request . RP aging Ċ Ċ import Ġorg . k oin . android x . view model . ext . android . get ViewModel Ċ Ċ /** Ċ Ġ* ĠCreate Ġby Ġl z an 1 3 Ġon Ġ 2 0 2 1 / 8 / 1 1 Ċ Ġ* Ġæı ı è¿° ï¼ļ è®¢åįķ åĪĹè¡¨ çĽ¸åħ³ çķĮéĿ¢ Ċ Ġ*/ Ċ @ Route ( path Ġ= ĠApp Router . app Order List ) Ċ class ĠOrder List Activity Ġ: ĠB V MA ct ivity < Activity Order List Binding , ĠTrade ViewModel >() Ġ{ ĊĊĠĠĠ Ġ// Ġ éĢĤ éħį åĻ¨ ĊĠĠĠ Ġprivate Ġval Ġm Adapter Ġby Ġlazy ( Lazy Thread Safety Mode . NONE ) Ġ{ ĠMulti Type Adapter () Ġ} ĊĠĠĠ Ġprivate Ġval Ġm Items Ġ= ĠArrayList < Order >() ĊĊĠĠĠ Ġprivate Ġvar Ġpage Ġ= ĠC Constants . default Page ĊĊĠĠĠ Ġoverride Ġfun Ġinit VB () Ġ= ĠActivity Order List Binding . inflate ( layout Inflater ) ĊĊĠĠĠ Ġoverride Ġfun Ġinit VM (): ĠTrade ViewModel Ġ= Ġget ViewModel () ĊĊĠĠĠ Ġoverride Ġfun Ġinit UI () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . init UI () ĊĊĠĠĠĠĠĠĠ Ġset Top Title ( R . string . order _ list ) ĊĊĠĠĠĠĠĠĠ Ġinit RecyclerView () ĊĊĠĠĠĠĠĠĠ Ġ// Ġ çĽĳåĲ¬ è®¢åįķ ä¿¡æģ¯ åıĺåĮĸ ĊĠĠĠĠĠĠĠ ĠL DE vent Bus . observe ( this , ĠConstants . Event . order Status , ĠOrder :: class . java ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġposition Ġ= Ġm Items . indexOf ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Items . remove At ( position ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Items . add ( position , Ġit ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . notify Item Changed ( position ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . order List () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Model Refresh ( model : ĠB ViewModel . UI Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( model . type Ġ== Ġ" order List ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh ( model . data Ġas ĠRP aging < Order >) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠåĪĿå§ĭåĮĸ åĪĹè¡¨ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġinit RecyclerView () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Adapter . register ( Item Order Delegate ( object Ġ: ĠB Item Delegate . B Item Listener < Order > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( v : ĠView , Ġdata : ĠOrder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠC Router . go ( App Router . app Order Detail , Ġobj 0 Ġ= Ġdata ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ})) ĊĊĠĠĠĠĠĠĠ Ġm Adapter . items Ġ= Ġm Items ĊĊĠĠĠĠĠĠĠ Ġm Binding . re cyclerView . layout Manager Ġ= ĠLinearLayoutManager ( this ) ĊĠĠĠĠĠĠĠ Ġm Binding . re cyclerView . adapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠ Ġ// Ġè®¾ç½® ä¸ĭ æĭī åĪ·æĸ° ĊĠĠĠĠĠĠĠ Ġm Binding . refresh Layout . setOn Refresh Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . refresh Layout . set No More Data ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpage Ġ= ĠC Constants . default Page ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . order List () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġm Binding . refresh Layout . setOn Load More Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . order List ( page ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrefresh ( paging : ĠRP aging < Order >) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( paging . page Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Items . clear () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Items . addAll ( paging . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . notify DataSet Changed () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġposition Ġ= Ġm Items . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcount Ġ= Ġpaging . data . size ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Items . addAll ( paging . data ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Adapter . notify Item Range Inserted ( position , Ġcount ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( paging . current Count Ġ+ Ġpaging . page Ġ* Ġpaging . limit Ġ>= Ġpaging . total Count ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . refresh Layout . set No More Data ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// Ġ ç©º æĢģ æ£ĢæŁ¥ ĊĠĠĠĠĠĠĠ Ġcheck Empty Status () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ ç©º æĢģ æ£ĢæŁ¥ ĊĠĠĠĠ Ġ* Ġ@ param Ġtype ĠĠ 0 - é»ĺè®¤ æ£ĢæŁ¥ ç©º æĢģ Ġ 1 - è¯·æ±Ĥ å¤±è´¥ ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġcheck Empty Status ( type : ĠInt Ġ= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( type Ġ== Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( m Items . isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Empty No Data () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhide Empty View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Binding . refresh Layout . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Empty Failed () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }