package Ġme . hg j . jet pack mv vm . demo . ui . integral Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . navigation . Navigation Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . blank j . util code . util . Convert Utils Ċ import Ġcom . king ja . loads ir . core . Load Service Ċ import Ġcom . yan zh en j ie . recyclerview . Swipe RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . include _ list .* Ċ import Ġkotlinx . android . synt hetic . main . include _ recyclerview .* Ċ import Ġkotlinx . android . synt hetic . main . include _ toolbar .* Ċ import Ġme . hg j . jet pack mv vm . demo . R Ċ import Ġme . hg j . jet pack mv vm . demo . adapter . Integral History Adapter Ċ import Ġme . hg j . jet pack mv vm . demo . app . base . Base Fragment Ċ import Ġme . hg j . jet pack mv vm . demo . app . ext .* Ċ import Ġme . hg j . jet pack mv vm . demo . app . weight . load CallBack . Empty Callback Ċ import Ġme . hg j . jet pack mv vm . demo . app . weight . load CallBack . Error Callback Ċ import Ġme . hg j . jet pack mv vm . demo . app . weight . load CallBack . Loading Callback Ċ import Ġme . hg j . jet pack mv vm . demo . app . weight . recyclerview . Define Load More View Ċ import Ġme . hg j . jet pack mv vm . demo . app . weight . recyclerview . Space Item Decoration Ċ import Ġme . hg j . jet pack mv vm . demo . databinding . Fragment List Binding Ċ Ċ /** Ċ Ġ* Ġä½ľèĢħ ãĢĢ : Ġhe g ao jian Ċ Ġ* Ġ æĹ¶éĹ´ ãĢĢ : Ġ 2 0 2 0 / 3 / 2 Ċ Ġ* Ġæı ı è¿° ãĢĢ : ç§¯ åĪĨ æİĴ è¡Į Ċ Ġ*/ Ċ class ĠIntegr al History Fragment Ġ: ĠBase Fragment < Integral ViewModel , ĠFragment List Binding >() Ġ{ ĊĠĠĠ Ġ// éĢĤ éħį åĻ¨ ĊĠĠĠ Ġprivate Ġval Ġintegral Adapter : ĠIntegr al History Adapter Ġby Ġlazy Ġ{ ĠIntegr al History Adapter ( array ListOf ()) Ġ} ĊĠĠĠ Ġ// çķĮéĿ¢ çĬ¶æĢģ ç®¡çĲĨ èĢħ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġloads ir : ĠLoad Service < Any > ĊĠĠĠ Ġ// recyclerview çļĦ åºķ éĥ¨ åĬłè½½ view Ġ åĽłä¸º è¦ģ åĬ¨æĢģ æĶ¹åıĺ ä»ĸ çļĦ é¢ľèī² ï¼Į æīĢä»¥ åĬł äºĨ ä»ĸ è¿Ļä¸ª å±ŀæĢ§ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfoot View : ĠDefine Load More View ĊĊĠĠĠ Ġoverride Ġfun Ġlayout Id () Ġ= ĠR . layout . fragment _ list ĊĊĠĠĠ Ġoverride Ġfun Ġinit View ( savedInstanceState : ĠBundle ?) Ġ Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . init Close (" ç§¯ åĪĨ è®°å½ķ ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNavigation . find Nav Controller ( toolbar ). navigate Up () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// çĬ¶æĢģ é¡µ éħįç½® ĊĠĠĠĠĠĠĠ Ġloads ir Ġ= ĠLoad Service Init ( swipe Refresh ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// çĤ¹åĩ» éĩį è¯ķ æĹ¶ è§¦åıĳ çļĦ æĵįä½ľ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġloads ir . show Callback ( Loading Callback :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . get Integral History Data ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ re cyclerView ĊĠĠĠĠĠĠĠ Ġre cyclerView . init ( Linear LayoutManager ( context ), Ġintegral Adapter ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit Ġas ĠSw ipe RecyclerView ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . addItem Decoration ( Space Item Decoration ( 0 , ĠConvert Utils . dp 2 px ( 8 f ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfoot View Ġ= Ġit . init Footer ( Swipe RecyclerView . Load More Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// è§¦åıĳ åĬłè½½ æĽ´å¤ļ æĹ¶ è¯·æ±Ĥ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . get Integral History Data ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ Floating ActionButton ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . init Float Btn ( float btn ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// åĪĿå§ĭåĮĸ ĠSw ipe Refresh Layout ĊĠĠĠĠĠĠĠ Ġswipe Refresh . init Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// è§¦åıĳ åĪ·æĸ° çĽĳåĲ¬ æĹ¶ è¯·æ±Ĥ æķ°æį® ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm ViewModel . get Integral History Data ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġlazy Load Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . get Integral History Data ( true ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Observer () Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . integral History Data State . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġswipe Refresh . is Refresh ing Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . load More Finish ( it . isEmpty , Ġit . hasMore ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Success ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĪĲåĬŁ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ç¬¬ä¸Ģ é¡µ å¹¶ æ²¡æľī æķ°æį® Ġ æĺ¾ç¤º ç©º å¸ĥå±Ģ çķĮéĿ¢ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is First Empty Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloads ir . show Callback ( Empty Callback :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// æĺ¯ ç¬¬ä¸Ģ é¡µ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . is Refresh Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloads ir . show Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegral Adapter . set New Data ( it . list Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸įæĺ¯ ç¬¬ä¸Ģ é¡µ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloads ir . show Success () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġintegral Adapter . addData ( it . list Data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¤±è´¥ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it . is Refresh ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// å¦Ĥæŀľ æĺ¯ ç¬¬ä¸Ģ é¡µ ï¼Į åĪĻ æĺ¾ç¤º éĶĻè¯¯ çķĮéĿ¢ ï¼Į å¹¶ æıĲç¤º éĶĻè¯¯ ä¿¡æģ¯ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloads ir . setError Text ( it . err Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġloads ir . show Callback ( Error Callback :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . load More Error ( 0 , Ġit . err Message ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }