package Ġnam . tran . mov ied b . view . detail Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Component Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġnam . tran . data . model . Movie Model Ċ import Ġnam . tran . data . model . Review Model Ċ import Ġnam . tran . mov ied b . R Ċ import Ġnam . tran . mov ied b . databinding . Adapter Movie Binding Ċ import Ġnam . tran . mov ied b . databinding . Adapter Review Binding Ċ import Ġtran . nam . common . Data Bound ListAdapter Ċ Ċ class ĠReview Adapter ( ĊĠĠĠ Ġprivate Ġval Ġdata Binding Component : ĠData Binding Component Ċ ) Ġ: ĠData Bound ListAdapter < Review Model , ĠAdapter Review Binding >( object Ġ: ĊĠĠĠ ĠDiff Util . Item Callback < Review Model >() Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠReview Model , Ġnew Item : ĠReview Model ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . id Ġ== Ġnew Item . id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠReview Model , Ġnew Item : ĠReview Model ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġold Item . content Ġ== Ġnew Item . content ĊĠĠĠ Ġ} Ċ Ċ }) Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġcreate Binding ( parent : ĠViewGroup ): ĠAdapter Review Binding Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠData Binding Util . inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . adapter _ review , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Binding Component ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( binding : ĠAdapter Review Binding , Ġitem : ĠReview Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . item Ġ= Ġitem ĊĠĠĠ Ġ} Ċ }