package Ġio . rich ard king . bound . ui . common Ċ Ċ import Ġandroid . databinding . Data Binding Component Ċ import Ġandroid . databinding . Data Binding Util Ċ import Ġandroid . support . v 7 . util . Diff Util Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġio . rich ard king . bound . App Executors Ċ import Ġio . rich ard king . bound . R Ċ import Ġio . rich ard king . bound . vo . Book Ċ import Ġio . rich ard king . bound . databinding . Item Book Compact Binding Ċ Ċ /** Ċ Ġ* ĠA ĠRecyclerView Ġadapter Ġfor Ġ[ Book ] Ġclass Ċ Ġ* ĠUsed Ġfor Ġcompact Ġview Ġof Ġbook Ċ Ġ*/ Ċ class ĠComp act Book ListAdapter ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġdata Binding Component : ĠData Binding Component , ĊĠĠĠĠĠĠĠ Ġapp Executors : ĠApp Executors , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbook Click Callback : Ġ(( Book ) Ġ-> ĠUnit )? Ċ ) Ġ: ĠData Bound ListAdapter < Book , ĠItem Book Compact Binding >( ĊĠĠĠĠĠĠĠ Ġapp Executors Ġ= Ġapp Executors , ĊĠĠĠĠĠĠĠ Ġdiff Callback Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < Book >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠBook , Ġnew Item : ĠBook ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġold Item . volume Info . title Ġ== Ġnew Item . volume Info . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠBook , Ġnew Item : ĠBook ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ċ ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Binding ( parent : ĠViewGroup ): ĠItem Book Compact Binding Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < Item Book Compact Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . item _ book _ compact , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding Component ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . book ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbook Click Callback ?. invoke ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( binding : ĠItem Book Compact Binding , Ġitem : ĠBook ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . book Ġ= Ġitem ĊĠĠĠ Ġ} Ċ }