package Ġcom . zh uz ich u . mv vm . databinding Ċ Ċ import Ġandroid . view . View Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . databinding . Binding Adapter Ċ import Ġcom . sc wang . smart refresh . layout . Smart Refresh Layout Ċ import Ġcom . sc wang . smart refresh . layout . api . Refresh Layout Ċ import Ġcom . sc wang . smart refresh . layout . listener . On Refresh Load More Listener Ċ import Ġcom . zh uz ich u . mv vm . R Ċ import Ġcom . zh uz ich u . mv vm . databinding . command . Binding Command Ċ import Ġcom . zh uz ich u . mv vm . view . layout . Multi State View Ċ import Ġcom . zh uz ich u . mv vm . widget . Dot s Indicator Ċ Ċ /** Ċ Ġ* ĠCreated Ġby ĠAndroid ĠStudio . Ċ Ġ* ĠBlog : Ġz hu z ich u . com Ċ Ġ* ĠUser : Ġz hu z ich u Ċ Ġ* ĠDate : Ġ 2 0 1 9 - 0 5 - 2 9 Ċ Ġ* ĠTime : Ġ 1 6 : 4 8 Ċ Ġ*/ Ċ Ċ @ Binding Adapter (" is G one ") Ċ fun Ġbind Is G one ( view : ĠView , Ġis G one : ĠBoolean ) Ġ{ ĊĠĠĠ Ġview . visibility Ġ= Ġif Ġ( is G one ) Ġ{ ĊĠĠĠĠĠĠĠ ĠView . GONE ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ ĠView . VISIBLE ĊĠĠĠ Ġ} Ċ } ĊĊ Ċ @ Binding Adapter ( value Ġ= Ġ[" on Refresh Command ", Ġ" on Load More Command "], Ġrequire All Ġ= Ġfalse ) Ċ fun Ġon Refresh And Load More Command ( ĊĠĠĠ Ġlayout : ĠSmart Refresh Layout , ĊĠĠĠ Ġon Refresh Command : ĠBinding Command < Any > ?, ĊĠĠĠ ĠonLoad More Command : ĠBinding Command < Any >? Ċ ) Ġ{ ĊĠĠĠ Ġif Ġ( on Refresh Command Ġ== Ġnull ) ĊĠĠĠĠĠĠĠ Ġlayout . set Enable Refresh ( false ) ĊĠĠĠ Ġif Ġ( on Load More Command Ġ== Ġnull ) ĊĠĠĠĠĠĠĠ Ġlayout . set Enable Load More ( false ) ĊĠĠĠ Ġlayout . setOn Refresh Load More Listener ( object Ġ: ĠOn Refresh Load More Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonLoad More ( refresh Layout : ĠRefresh Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonLoad More Command ?. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Refresh ( refresh Layout : ĠRefresh Layout ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Refresh Command ?. execute () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ċ } Ċ Ċ @ Binding Adapter ( value Ġ= Ġ[" primary Color ", Ġ" accent Color "], Ġrequire All Ġ= Ġfalse ) Ċ fun Ġrefresh Color ( ĊĠĠĠ Ġrefresh : ĠSmart Refresh Layout , ĊĠĠĠ Ġ@ NonNull Ġprimary Color : ĠInt ? Ġ= Ġnull , ĊĠĠĠ Ġ@ NonNull Ġaccent Color : ĠInt ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġvar Ġp color Ġ= Ġ 0 ĊĠĠĠ Ġvar Ġa color Ġ= Ġ 0 ĊĠĠĠ Ġif Ġ( primary Color Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġp color Ġ= Ġprimary Color ĊĠĠĠ Ġ} ĊĠĠĠ Ġif Ġ( accent Color Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠ Ġa color Ġ= Ġaccent Color ĊĠĠĠ Ġ} ĊĠĠĠ Ġrefresh . set Primary Colors ( p color , Ġa color ) Ċ } ĊĊ Ċ @ Binding Adapter ( value Ġ= Ġ[" onError Command "]) Ċ fun ĠonError Command ( ĊĠĠĠ Ġlayout : ĠMulti State View , ĊĠĠĠ Ġon State Error Command : ĠBinding Command < Any >? Ċ ) Ġ{ ĊĠĠĠ Ġlayout . getView ( Multi State View . VIEW _ STATE _ ERROR ) ĊĠĠĠĠĠĠĠ Ġ? . findViewById < View >( R . id . retry ) ĊĠĠĠĠĠĠĠ Ġ? . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon State Error Command ?. execute () ĊĠĠĠĠĠĠĠ Ġ} Ċ } Ċ Ċ @ Binding Adapter ( value Ġ= Ġ[" dot _ tint "], Ġrequire All Ġ= Ġfalse ) Ċ fun Ġbind Dot s Indicator ( ĊĠĠĠ Ġview : ĠD ots Indicator , ĊĠĠĠ Ġ@ NonNull Ġcolor : ĠInt ? Ġ= Ġnull Ċ ) Ġ{ ĊĠĠĠ Ġcolor ?. let Ġ{ ĊĠĠĠĠĠĠĠ Ġview . set Dot Tint ( color ) ĊĠĠĠ Ġ} Ċ } Ċ