/* Ċ Ġ* ĠCopyright Ġ( C ) Ġ 2 0 1 8 ĠThe ĠAndroid ĠOpen ĠSource ĠProject Ċ Ġ* Ċ Ġ* Ġ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 . example . android . code labs . paging . ui Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . net . Uri Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . example . android . code labs . paging . R Ċ import Ġcom . example . android . code labs . paging . databinding . Repo View Item Binding Ċ import Ġcom . example . android . code labs . paging . model . Repo Ċ Ċ /** Ċ Ġ* ĠView ĠH older Ġfor Ġa Ġ[ Repo ] ĠRecyclerView Ġlist Ġitem . Ċ Ġ*/ Ċ class ĠRepo ViewHolder ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġbinding : ĠRepo View Item Binding Ċ ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġrepo : ĠRepo ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrepo ?. url ?. let Ġ{ Ġurl Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( Intent . ACTION _ VIEW , ĠUri . parse ( url )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . context . startActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind ( repo : ĠRepo ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( repo Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresources Ġ= ĠitemView . resources ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . repo Name . text Ġ= Ġresources . getString ( R . string . loading ) ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . repo Description . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . repo Language . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . repo St ars . text Ġ= Ġresources . getString ( R . string . unknown ) ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . repo Fork s . text Ġ= Ġresources . getString ( R . string . unknown ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Repo Data ( repo ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Repo Data ( repo : ĠRepo ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . repo Ġ= Ġrepo ĊĠĠĠĠĠĠ Ġbinding . repo Name . text Ġ= Ġrepo . fullName ĊĊĠĠĠĠĠĠĠ Ġ// Ġif Ġthe Ġdescription Ġis Ġmissing , Ġhide Ġthe ĠTextView ĊĠĠĠĠĠĠĠ Ġvar Ġdescription Visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġif Ġ( repo . description Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . repo Description . text Ġ= Ġrepo . description ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdescription Visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠ Ġbinding . repo Description . visibility Ġ= Ġdescription Visibility ĊĊĠĠĠĠĠĠ Ġbinding . repo St ars . text Ġ= Ġrepo . stars . toString () ĊĠĠĠĠĠĠ Ġbinding . repo Fork s . text Ġ= Ġrepo . fork s . toString () ĊĊĠĠĠĠĠĠĠ Ġ// Ġif Ġthe Ġlanguage Ġis Ġmissing , Ġhide Ġthe Ġlabel Ġand Ġthe Ġvalue ĊĠĠĠĠĠĠĠ Ġvar Ġlanguage Visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġif Ġ(! repo . language . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġresources Ġ= Ġthis . item View . context . resources ĊĠĠĠĠĠĠĠĠĠĠ Ġbinding . repo Language . text Ġ= Ġresources . getString ( R . string . language , Ġrepo . language ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanguage Visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġbinding . repo Language . visibility Ġ= Ġlanguage Visibility ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( parent : ĠViewGroup ): ĠRepo ViewHolder Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . repo _ view _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠRepo View Item Binding . bind ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠRepo ViewHolder ( binding ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ