/* Ċ Ġ* ĠCopyright Ġ( c ) Ġ 2 0 2 0 ĠR az ew are ĠLLC Ċ Ġ* Ċ Ġ* ĠPermission Ġis Ġhereby Ġgranted , Ġfree Ġof Ġcharge , Ġto Ġany Ġperson Ġobtaining Ġa Ġcopy Ċ Ġ* Ġof Ġthis Ġsoftware Ġand Ġassociated Ġdocumentation Ġfiles Ġ( the Ġ" Software "), Ġto Ġdeal Ċ Ġ* Ġin Ġthe ĠSoftware Ġwithout Ġrestriction , Ġincluding Ġwithout Ġlimitation Ġthe Ġrights Ċ Ġ* Ġto Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ġdistribute , Ġsublicense , Ġand / or Ġsell Ċ Ġ* Ġcopies Ġof Ġthe ĠSoftware , Ġand Ġto Ġpermit Ġpersons Ġto Ġwhom Ġthe ĠSoftware Ġis Ċ Ġ* Ġfurnished Ġto Ġdo Ġso , Ġsubject Ġto Ġthe Ġfollowing Ġconditions : Ċ Ġ* Ċ Ġ* ĠThe Ġabove Ġcopyright Ġnotice Ġand Ġthis Ġpermission Ġnotice Ġshall Ġbe Ġincluded Ġin Ċ Ġ* Ġall Ġcopies Ġor Ġsubstantial Ġportions Ġof Ġthe ĠSoftware . Ċ Ġ* Ċ Ġ* ĠNot with standing Ġthe Ġfore going , Ġyou Ġmay Ġnot Ġuse , Ġcopy , Ġmodify , Ġmerge , Ġpublish , Ċ Ġ* Ġdistribute , Ġsublicense , Ġcreate Ġa Ġderivative Ġwork , Ġand / or Ġsell Ġcopies Ġof Ġthe Ċ Ġ* ĠSoftware Ġin Ġany Ġwork Ġthat Ġis Ġdesigned , Ġintended , Ġor Ġmarket ed Ġfor Ġped ag og ical Ġor Ċ Ġ* Ġinstruction al Ġpurposes Ġrelated Ġto Ġprogramming , Ġcoding , Ġapplication Ġdevelopment , Ċ Ġ* Ġor Ġinformation Ġtechnology . Ġ ĠPermission Ġfor Ġsuch Ġuse , Ġcopying , Ġmodification , Ċ Ġ* Ġmer ger , Ġpublication , Ġdistribution , Ġsublic ensing , Ġcreation Ġof Ġderivative Ġworks , Ċ Ġ* Ġor Ġsale Ġis Ġexpress ly Ġwith held . Ċ Ġ* Ċ Ġ* ĠTHE ĠSOFTWARE ĠIS ĠPROVIDED Ġ" AS ĠIS ", ĠWITHOUT ĠWARRANTY ĠOF ĠANY ĠKIND , ĠEXPRESS ĠOR Ċ Ġ* ĠIMPLIED , ĠINCLUDING ĠBUT ĠNOT ĠLIMITED ĠTO ĠTHE ĠWARRANTIES ĠOF ĠMERCHANTABILITY , Ċ Ġ* ĠFITNESS ĠFOR ĠA ĠPARTICULAR ĠPURPOSE ĠAND ĠNONINFRINGEMENT . ĠIN ĠNO ĠEVENT ĠSHALL ĠTHE Ċ Ġ* ĠAUTHORS ĠOR ĠCOPYRIGHT ĠHOLDERS ĠBE ĠLIABLE ĠFOR ĠANY ĠCLAIM , ĠDAMAGES ĠOR ĠOTHER Ċ Ġ* ĠLIABILITY , ĠWHETHER ĠIN ĠAN ĠACTION ĠOF ĠCONTRACT , ĠTORT ĠOR ĠOTHERWISE , ĠARISING ĠFROM , Ċ Ġ* ĠOUT ĠOF ĠOR ĠIN ĠCONNECTION ĠWITH ĠTHE ĠSOFTWARE ĠOR ĠTHE ĠUSE ĠOR ĠOTHER ĠDEALINGS ĠIN Ċ Ġ* ĠTHE ĠSOFTWARE . Ċ Ġ*/ Ċ Ċ package Ġcom . ray w ender lich . pod play . adapter Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . ray w ender lich . pod play . R Ċ import Ġcom . ray w ender lich . pod play . util . Date Utils Ċ import Ġcom . ray w ender lich . pod play . util . Html Utils Ċ import Ġcom . ray w ender lich . pod play . view model . Pod cast ViewModel . Episode ViewData Ċ import Ġkotlinx . android . synt hetic . main . episode _ item . view .* Ċ Ċ class ĠEp isode ListAdapter ( ĊĠĠĠ Ġprivate Ġvar Ġepisode View List : ĠList < Episode ViewData > ?, ĊĠĠĠ Ġprivate Ġval Ġepisode ListAdapter Listener : ĠEp isode ListAdapter Listener Ċ ) Ġ: ĠRecyclerView . Adapter < Episode ListAdapter . ViewHolder >() Ġ{ ĊĊĠ Ġinterface ĠEp isode ListAdapter Listener Ġ{ ĊĠĠĠ Ġfun Ġon Selected Episode ( episode ViewData : ĠEp isode ViewData ) ĊĠ Ġ} ĊĊĠ Ġclass ĠViewHolder ( ĊĠĠĠĠĠ Ġv : ĠView , ĊĠĠĠĠĠ Ġprivate Ġval Ġepisode ListAdapter Listener : ĠEp isode ListAdapter Listener ĊĠ Ġ) Ġ: ĠRecyclerView . ViewHolder ( v ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠ Ġv . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġepisode ViewData ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠ Ġepisode ListAdapter Listener . on Selected Episode ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġvar Ġepisode ViewData : ĠEp isode ViewData ? Ġ= Ġnull ĊĠĠĠ Ġval Ġtitle TextView : ĠTextView Ġ= Ġv . title View ĊĠĠĠ Ġval Ġdesc TextView : ĠTextView Ġ= Ġv . desc View ĊĠĠĠ Ġval Ġduration TextView : ĠTextView Ġ= Ġv . duration View ĊĠĠĠ Ġval Ġrelease Date TextView : ĠTextView Ġ= Ġv . release Date View ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠonCreate ViewHolder ( ĊĠĠĠĠĠ Ġparent : ĠViewGroup , ĊĠĠĠĠĠ Ġview Type : ĠInt ĊĠ Ġ): ĠViewHolder Ġ{ ĊĠĠĠ Ġreturn ĠViewHolder ( ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( parent . context ). inflate ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . episode _ item , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġepisode ListAdapter Listener ĊĠĠĠ Ġ) ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠ Ġval Ġepisode View List Ġ= Ġepisode View List Ġ?: Ġreturn ĊĠĠĠ Ġval Ġepisode View Ġ= Ġepisode View List [ position ] ĊĊĠĠĠ Ġholder . episode ViewData Ġ= Ġepisode View ĊĠĠĠ Ġholder . title TextView . text Ġ= Ġepisode View . title ĊĠĠĠ Ġholder . desc TextView . text Ġ= ĠHtml Utils . html To Sp ann able ( episode View . description Ġ?: Ġ"") ĊĠĠĠ Ġholder . duration TextView . text Ġ= Ġepisode View . duration ĊĠĠĠ Ġholder . release Date TextView . text Ġ= Ġepisode View . release Date ?. let Ġ{ ĠDate Utils . date To Short Date ( it ) Ġ} ĊĠ Ġ} ĊĊĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ{ ĊĠĠĠ Ġreturn Ġepisode View List ?. size Ġ?: Ġ 0 ĊĠ Ġ} Ċ } Ċ