/* Ċ Ġ* ĠCopyright Ġ 2 0 2 2 ĠP era ĠWallet , ĠL DA Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense Ċ Ġ*/ Ċ Ċ package Ġcom . al gor and . android . nft . ui . nfs detail Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . ListAdapter Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . al gor and . android . models . Base Diff Util Ċ import Ġcom . al gor and . android . models . Base ViewHolder Ċ import Ġcom . al gor and . android . nft . ui . model . Base Collect ible Media Item Ċ import Ġcom . al gor and . android . nft . ui . model . Base Collect ible Media Item . ItemType . G IF Ċ import Ġcom . al gor and . android . nft . ui . model . Base Collect ible Media Item . ItemType . IMAGE Ċ import Ġcom . al gor and . android . nft . ui . model . Base Collect ible Media Item . ItemType . NO _ MEDIA Ċ import Ġcom . al gor and . android . nft . ui . model . Base Collect ible Media Item . ItemType . UNSUPPORTED Ċ import Ġcom . al gor and . android . nft . ui . model . Base Collect ible Media Item . ItemType . VIDEO Ċ Ċ class ĠCollect ible Media Adapter ( ĊĠĠĠ Ġprivate Ġval Ġlistener : ĠMedia ClickListener Ċ ) Ġ: ĠList Adapter < Base Collect ible Media Item , ĠBase ViewHolder < Base Collect ible Media Item >>( Base Diff Util ()) Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( position : ĠInt ): ĠInt Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠgetItem ( position ). item Type . ordinal ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠBase ViewHolder < Base Collect ible Media Item > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠIMAGE . ordinal Ġ-> Ġcreate Image Media ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠV IDE O . ordinal Ġ-> Ġcreate Video Media ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠUNS UP PORT ED . ordinal Ġ-> Ġcreate Unsupported Media ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠGIF . ordinal Ġ-> Ġcreate Gif Media ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠNO _ MEDIA . ordinal Ġ-> Ġcreate No Media ViewHolder ( parent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException ("$ log Tag Ġ: ĠUnknown Ġview Ġtype ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠBase ViewHolder < Base Collect ible Media Item >, Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġholder . bind ( getItem ( position )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Image Media ViewHolder ( parent : ĠViewGroup ): ĠCollect ible Image Media ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCollect ible Image Media ViewHolder . create ( parent ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding Adapter Position Ġ!= ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Image Media Click ( getItem ( binding Adapter Position ). preview Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Video Media ViewHolder ( parent : ĠViewGroup ): ĠCollect ible Video Media ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCollect ible Video Media ViewHolder . create ( parent ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding Adapter Position Ġ!= ĠRecyclerView . NO _ POSITION ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Video Media Click ( getItem ( binding Adapter Position ). preview Url ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Unsupported Media ViewHolder ( parent : ĠViewGroup ): ĠCollect ible Unsupported Media ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCollect ible Unsupported Media ViewHolder . create ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate No Media ViewHolder ( parent : ĠViewGroup ): ĠCollect ible No Media ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCollect ible No Media ViewHolder . create ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcreate Gif Media ViewHolder ( parent : ĠViewGroup ): ĠCollect ible Gif Media ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠCollect ible Gif Media ViewHolder . create ( parent ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠMedia ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Video Media Click ( video Url : ĠString ?) ĊĠĠĠĠĠĠĠ Ġfun Ġon Image Media Click ( imageUrl : ĠString ?) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġlog Tag Ġ= ĠCollect ible Media Adapter :: class . java . simple Name ĊĠĠĠ Ġ} Ċ } Ċ