package Ġcom . alex k . n adl ans ales . ui . est ates data Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . paging . Paged ListAdapter Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġcom . alex k . n adl ans ales . R Ċ import Ġcom . alex k . n adl ans ales . databinding . E state Data Item Binding Ċ import Ġcom . alex k . n adl ans ales . model . network . est ates . E state Info ĊĊ Ċ /** Ċ Ġ* ĠCreated Ġby Ġa lex k oro lov Ġon Ġ 0 8 / 0 3 / 2 0 2 0 . Ċ Ġ*/ Ċ Ċ class ĠE states History Data Adapter Ġ: ĠP aged ListAdapter < E state Info , ĠE state History Holder >( DIFF _ CALLBACK ) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠE state History Holder , Ġposition : ĠInt ) Ġ= ĊĠĠĠĠĠĠĠ ĠgetItem ( position ). let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . bind ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠE state History Holder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠ Ġval Ġest ate Data Item Binding : ĠE state Data Item Binding Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠData Binding Util . inflate ( in flater , ĠR . layout . est ate _ data _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠE state History Holder ( est ate Data Item Binding ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠDIFF _ CALLBACK Ġ= Ġobject Ġ: ĠDiff Util . Item Callback < E state Info >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠE state Info , Ġnew Item : ĠE state Info ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item . KEY VALUE Ġ== Ġnew Item . KEY VALUE ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠE state Info , Ġnew Item : ĠE state Info ): ĠBoolean Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġold Item Ġ== Ġnew Item ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }