package Ġcom . thi ha . android 4 k . test firebase vide ostream ing . view . adapters Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . Diff Util Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . thi ha . android 4 k . test firebase vide ostream ing . R Ċ import Ġcom . thi ha . android 4 k . test firebase vide ostream ing . models . Collection ĊĊ Ċ class ĠCollection Adapter ( val ĠonClick Interface : ĠOnClick ) Ġ: ĊĠĠĠ ĠList Adapter < Collection , ĠCollection Adapter . Video ViewHolder >( object Ġ: ĊĠĠĠĠĠĠĠ ĠDiff Util . Item Callback < Collection >() Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Items The Same ( old Item : ĠCollection , Ġnew Item : ĠCollection ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item Ġ== Ġnew Item ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġare Contents The Same ( old Item : ĠCollection , Ġnew Item : ĠCollection ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġold Item . name Ġ== Ġnew Item . name Ġ&& Ġold Item . thumbnail Ġ== Ġnew Item . thumbnail ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ}) Ġ{ ĊĠĠĠ Ġinner Ġclass ĠVideo ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġbind ( item : ĠCollection ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( item View . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( item . thumbnail ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . download ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. thumbnail ( G lide . with ( item View . context ). load ( item . thumbnail )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( item View . findViewById ( R . id . iv Item )) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . findViewById < TextView >( R . id . tv Name ). text Ġ= Ġitem . name ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠonClick Interface . on Clicked ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠVideo ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġv Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( R . layout . item _ collection , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠVideo ViewHolder ( v ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠVideo ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( current List [ position ]) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOnClick Ġ{ ĊĠĠĠĠĠĠĠ Ġfun ĠonClick ed ( item : ĠCollection ) ĊĠĠĠ Ġ} Ċ Ċ }