/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 1 9 ĠV en om Vendor . ĠAll Ġrights Ġreserved . Ċ Ġ* ĠCreated Ġby ĠV en om Vendor Ġon Ġ 1 8 - Feb - 2 0 1 9 . Ċ Ġ*/ Ċ Ċ package Ġcom . ven om vendor . t iger spike . ui . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bump tech . glide . Request Manager Ċ import Ġcom . ven om vendor . sdk . core . model . gallery . Feed Ċ import Ġcom . ven om vendor . t iger spike . R Ċ import Ġcom . ven om vendor . t iger spike . ui . factory . On ItemClickListener Ċ import Ġcom . ven om vendor . t iger spike . util . Diff Util Helper Ċ Ċ /** Ċ Ġ* ĠRe cycler ĠAdapter Ġfor Ġdisplaying Ġlist Ġof Ġresults . Ċ Ġ*/ Ċ internal Ġclass ĠGallery ListAdapter ( glide Manager : ĠRequest Manager ) Ġ: ĊĠĠĠ ĠList Adapter < Feed , ĠGallery ListAdapter . Gallery ViewHolder >( Diff Util Helper . FEED _ DIFF ) Ġ{ ĊĊĠĠĠ Ġ// ĠImage Ġrenderer ĊĠĠĠ Ġprivate Ġval Ġg lide Ġ= Ġg lide Manager ĊĠĠĠ Ġ// ĠEvent Ġlistener ĊĠĠĠ Ġprivate Ġvar Ġitem ClickListener : ĠOn ItemClickListener < Feed >? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠGallery ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġitem Ġview ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . gallery _ item , Ġparent , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠGallery ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠGallery ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠGet Ġitem ĊĠĠĠĠĠĠĠ Ġval Ġfeed Ġ= ĠgetItem ( position ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠUpdate Ġviews ĊĠĠĠĠĠĠĠ Ġholder . author . text Ġ= Ġfeed . author ĊĠĠĠĠĠĠĠ Ġholder . published . text Ġ= Ġfeed . published . toString () ĊĊĠĠĠĠĠĠĠ Ġ// ĠLoad Ġimage ĊĠĠĠĠĠĠĠ Ġg lide . load ( feed . media . medium ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. center Crop () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġplace Ġholder Ġuntil Ġimage Ġloads ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . ic _ launcher _ background ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( holder . media ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset On Item Click Lister ( listener : ĠOn ItemClickListener < Feed > ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġitem ClickListener Ġ= Ġlistener ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠView ĠH older Ġpattern , Ġused Ġby Ġre cycler Ġview . ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġinner Ġclass ĠGallery ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ), ĊĠĠĠĠĠĠĠ ĠView . OnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġauthor : ĠTextView Ġ= ĠitemView . findViewById ( R . id . author ) ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġpublished : ĠTextView Ġ= ĠitemView . findViewById ( R . id . desc ) ĊĠĠĠĠĠĠĠ Ġinternal Ġval Ġmedia : ĠImageView Ġ= ĠitemView . findViewById ( R . id . media ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠAdd Ġevent Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener ( this ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonClick ( view : ĠView ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġselected Pos Ġ= Ġadapter Position ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( selected Pos Ġ== ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPass Ġon Ġto Ġroot Ġlevel Ġevent Ġlistener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem ClickListener ?. onClick ( getItem ( selected Pos ), Ġview , Ġselected Pos ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ