package Ġcom . dit clear . pa onet . view . code Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . Rect Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġandroid . view . View Ċ import Ġcom . dit clear . pa onet . R Ċ import Ġcom . dit clear . pa onet . aop . annotation . Single Click Ċ import Ġcom . dit clear . pa onet . databinding . Refresh Fragment Binding Ċ import Ġcom . dit clear . pa onet . helper . adapter . recyclerview . Item Click Presenter Ċ import Ġcom . dit clear . pa onet . helper . adapter . recyclerview . Single Type Adapter Ċ import Ġcom . dit clear . pa onet . helper . ext ens . bind Life Cycle Ċ import Ġcom . dit clear . pa onet . helper . ext ens . dp To Px Ċ import Ġcom . dit clear . pa onet . helper . ext ens . navigate To Activity Ċ import Ġcom . dit clear . pa onet . view . article . view model . Article Item ViewModel Ċ import Ġcom . dit clear . pa onet . view . base . Base Fragment Ċ import Ġcom . dit clear . pa onet . view . code . view model . Code List ViewModel Ċ import Ġcom . dit clear . pa onet . view . home . MainActivity Ċ import Ġorg . k oin . android . view model . ext . android . viewModel Ċ import Ġorg . k oin . core . parameter . parameters Of Ċ Ċ /** Ċ Ġ* Ġ é¡µéĿ¢ æııè¿° ï¼ļ Article List Fragment Ċ Ġ* Ċ Ġ* ĠCreated Ġby Ġdit clear Ġon Ġ 2 0 1 7 / 1 0 / 3 . Ċ Ġ*/ Ċ class ĠCode List Fragment Ġ: ĠBase Fragment < Refresh Fragment Binding >(), ĠItem Click Presenter < Article Item ViewModel > Ġ{ ĊĊĊĊĠĠĠ Ġprivate Ġval Ġm Adapter : ĠSingle Type Adapter < Article Item ViewModel > Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠSingle Type Adapter < Article Item ViewModel >( mContext , ĠR . layout . code _ list _ item , Ġm ViewModel . list ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Presenter Ġ= Ġthis @ Code List Fragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġget Layout Id (): ĠInt Ġ= ĠR . layout . refresh _ fragment ĊĊĠĠĠ Ġval Ġc ate Ġby Ġlazy Ġ{ Ġauto W ired < Int >( KEY _ C ATE ) Ġ} ĊĊĠĠĠ Ġval Ġkey Word Ġby Ġlazy Ġ{ Ġauto W ired < String >( KEY _ KEYWORD ) Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġm ViewModel : ĠCode List ViewModel Ġby ĠviewModel Ġ{ Ġparameters Of ( cate , key Word )} ĊĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval ĠKEY _ C ATE Ġ= Ġ" cate " ĊĠĠĠĠĠĠĠ Ġval ĠKEY _ KEYWORD Ġ= Ġ" key Word " ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( cate : ĠInt ?): ĠCode List Fragment Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġc ate ?. let Ġ{ Ġbundle . put Int ( KEY _ C ATE , Ġit ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠCode List Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( key Word : ĠString ): ĠCode List Fragment Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbundle Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbundle . putString ( KEY _ KEYWORD , Ġkey Word ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠCode List Fragment () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġbundle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġload Data ( is Refresh : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġm ViewModel . load Data ( is Refresh ). bind Life Cycle ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. subscribe ({ },{ toast Failure ( it )}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Single Click ĊĠĠĠ Ġoverride Ġfun Ġon Item Click ( v : ĠView ?, Ġitem : ĠArticle Item ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġactivity ?. navigate To Activity ( Code Detail Activity :: class . java , Ġitem . article ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġm Binding . vm = m ViewModel ĊĠĠĠĠĠĠĠ Ġm Binding . run Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġm Adapter ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Item Decoration ( object Ġ: Ġandroidx . recyclerview . widget . RecyclerView . Item Decoration () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠgetItem Offsets ( out Rect : ĠRect , Ġview : ĠView , Ġparent : Ġandroidx . recyclerview . widget . RecyclerView , Ġstate : Ġandroidx . recyclerview . widget . RecyclerView . State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . getItem Offsets ( out Rect , Ġview , Ġparent , Ġstate ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġout Rect . top Ġ= Ġactivity ?. dp To Px ( R . dim en . xd p _ 1 2 _ 0 ) ?: 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġrefresh Layout . setOn Refresh Listener Ġ{ Ġload Data ( true ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Hidden Changed ( hidden : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Hidden Changed ( hidden ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! hidden ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġ( activity Ġas ? ĠMainActivity )?. need Show Tab ( false ) ĊĠĠĠ Ġ} Ċ Ċ }