// package Ġcom . override 0 3 3 0 . team im . rub ish . person Adapter Ċ // Ċ // /** Ċ // Ġ* Ġ@ data Ġ 2 0 1 9 - 0 8 - 1 6 Ċ // Ġ* Ġ@ author ĠOverride 0 3 3 0 Ċ // Ġ* Ġ@ description Ċ // Ġ*/ Ċ // Ċ // import Ġandroid . view . LayoutInflater Ċ // import Ġandroid . view . ViewGroup Ċ // import Ġandroidx . databinding . Data Binding Util Ċ // import Ġandroidx . databinding . ViewData Binding Ċ // import Ġandroidx . paging . Paged ListAdapter Ċ // import Ġandroidx . recyclerview . widget . Diff Util Ċ // import Ġandroidx . recyclerview . widget . RecyclerView Ċ // import Ġcom . override 0 3 3 0 . team im . BR Ċ // import Ġcom . override 0 3 3 0 . team im . model . On Background Event Ċ // import Ġcom . override 0 3 3 0 . team im . R Ċ // import Ġcom . override 0 3 3 0 . team im . databinding .* Ċ // import Ġcom . override 0 3 3 0 . team im . model . bean . Message Item Ċ // import Ġcom . override 0 3 3 0 . team im . model . db . Conversation DB Ċ // import Ġorg . green robot . event bus . EventBus Ċ // Ċ // Ċ // class ĠMessage Home Paging Adapter : Paged ListAdapter < Conversation DB , Message Home Paging Adapter . ViewHolder >( diff Callback ){ Ċ // ĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġdata Binding Ġ= ĠData Binding Util . inflate < Recycler view Item Message Binding >( LayoutInflater . from ( parent . context ), R . layout . recyclerview _ item _ message , parent , false ) Ċ // ĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( data Binding ) Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġval Ġitem Ġ= ĠgetItem ( position ) Ċ // ĠĠĠĠĠĠĠ Ġif Ġ( item Ġ!= Ġnull ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġholder . on Bind ( item ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġclass ĠViewHolder ( private Ġval Ġdata Binding : ĠView Data Binding ): RecyclerView . ViewHolder ( data Binding . root ){ Ċ // ĠĠĠĠĠĠĠ Ġfun Ġon Bind ( conversation DB : ĠCon versation DB ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmessage Item Ġ= ĠMessage Item () Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ// æł¹æį® id æŁ¥è¯¢ çĽ¸åħ³ ä¿¡æģ¯ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ ĠEvent Bus . getDefault (). post Sticky ( On Background Event { Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ä¸į åľ¨ éĢļ è®¯ å½ķ çļĦè¯Ŀ get ä¸įåĪ° åĵ ¦ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( message Item ){ Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Avatar . set ( conversation DB . avatar ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Name . set ( conversation DB . title ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Detail . set ( conversation DB . last Message ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Time . set ( conversation DB . update Time . toString ()) Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding . set Variable ( BR . message Item , message Item ) Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġ}) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ // ĠĠĠ Ġcompanion Ġobject Ġ{ Ċ // ĠĠĠĠĠĠĠ Ġprivate Ġval Ġdiff Callback Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Conversation DB >() Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠCon versation DB , Ġnew Item : ĠCon versation DB ): ĠBoolean Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . conversation Id Ġ== Ġnew Item . conversation Id Ċ // Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCon versation DB , Ġnew Item : ĠCon versation DB ): ĠBoolean Ġ= Ċ // ĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġare Items The Same ( old Item , new Item ) Ċ // ĠĠĠĠĠĠĠ Ġ} Ċ // ĠĠĠ Ġ} Ċ // Ċ //}