package Ġme . px q . eye pet izer . home . adapters Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġme . px q . framework . model . Item Ċ import Ġme . px q . eye pet izer . home . databinding . Home Rv Item Special Square Grid Item Binding Ċ import Ġme . px q . framework . view model . Base ViewModel Ċ Ċ /** Ċ Ġ* ĠDescription : Ġ çĥŃ éĹ¨ åĪĨç±» Ġrv Ġadapter Ċ Ġ* ĠAuthor Ġ: Ġpx q Ċ Ġ* ĠDate Ġ: Ġ 2 0 2 0 / 8 / 3 Ġ 1 1 : 1 5 ĠPM Ċ Ġ*/ Ċ class ĠSpecial Square Adapter ( val Ġaction MV : ĠBase ViewModel ) Ġ: ĊĠĠĠ ĠList Adapter < Item , ĠSpecial Square Adapter . Special Square Holder >( Category Diff CallBack ()) Ġ{ ĊĊĠĠĠ Ġinner Ġclass ĠSpecial Square Holder ( private Ġval Ġbinding : ĠHome Rv Item Special Square Grid Item Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠItem ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcategory Ġ= Ġitem ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġaction MV ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute Pending Bindings () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġinternal Ġclass ĠCategory Diff CallBack Ġ: ĠDiff Util . Item Callback < Item >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠItem , Ġnew Item : ĠItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠItem , Ġnew Item : ĠItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . data . title Ġ== Ġnew Item . data . title ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSpecial Square Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠSpecial Square Holder ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠHome Rv Item Special Square Grid Item Binding . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent . context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ), Ġparent , Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSpecial Square Holder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} Ċ }