package Ġcom . anim sh . mov iem . adapters Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . anim sh . mov iem . databinding . Layout Episode Container Binding Ċ import Ġcom . anim sh . mov iem . models . tv . episodes . Episode Ċ import Ġcom . anim sh . mov iem . util . Tv Diff Util Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġanim sh Ġon Ġ 5 / 1 5 / 2 0 2 1 . Ċ Ġ*/ Ċ class ĠEp isode s Adapter Ġ: ĠRecyclerView . Adapter < Episode s Adapter . Episode ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġep List Ġ= Ġempty List < Episode >() ĊĊĠĠĠ Ġclass ĠEp isode ViewHolder ( private Ġval Ġbinding : ĠLayout Episode Container Binding ) Ġ: ĊĠĠĠĠĠĠĠ ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind Data ( episode : ĠEp isode ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . episode Ġ= Ġepisode ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . execute Pending Bindings () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġfrom ( parent : ĠViewGroup ): ĠEp isode ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġlayout Inflater Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠLayout Episode Container Binding . inflate ( layout Inflater , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠEp isode ViewHolder ( binding ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠĠĠ Ġview Type : ĠInt ĊĠĠĠ Ġ): ĠEp isode ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠEp isode ViewHolder . from ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠEp isode ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcurrent Ġ= Ġep List [ position ] ĊĠĠĠĠĠĠĠ Ġholder . bind Data ( current ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġep List . size ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠsetData ( new Data : ĠList < Episode >) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdiff Util Ġ= ĠT v Diff Util ( ep List , ĠnewData ) ĊĠĠĠĠĠĠĠ Ġval Ġdiff Util Result Ġ= ĠDiff Util . calculate Diff ( diff Util ) ĊĠĠĠĠĠĠĠ Ġep List Ġ= ĠnewData ĊĠĠĠĠĠĠĠ Ġdiff Util Result . dispatch Updates To ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear List () Ġ{ ĊĠĠĠĠĠĠĠ Ġep List Ġ= Ġempty List () ĊĠĠĠ Ġ} Ċ }