/* ĠThis ĠSource ĠCode ĠForm Ġis Ġsubject Ġto Ġthe Ġterms Ġof Ġthe ĠMozilla ĠPublic Ċ Ġ* ĠLicense , Ġv . Ġ 2 . 0 . ĠIf Ġa Ġcopy Ġof Ġthe ĠM PL Ġwas Ġnot Ġdistributed Ġwith Ġthis Ċ Ġ* Ġfile , ĠYou Ġcan Ġobtain Ġone Ġat Ġhttp :// mozilla . org / MPL / 2 . 0 /. Ġ*/ Ċ Ċ package Ġse ve ida . fire tv for reddit . sub reddit Ċ Ċ import Ġandroid . graphics . Port er D uff Ċ import Ġandroid . graphics . Port er D uff Color Filter Ċ import Ġandroid . graphics . drawable . Color Drawable Ċ import Ġandroid . graphics . drawable . State List Drawable Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġbar on . se ver in . business _ logic . d agger . INITIAL _ STATE Ċ import Ġbar on . se ver in . presentation _ objects . Colors Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġse ve ida . fire tv for reddit . R Ċ import Ġbar on . se ver in . presentation _ objects . Thread Item State Ċ import Ġkotlinx . android . synt hetic . main . thread _ item . view .* Ċ import Ġjavax . inject . Inject Ċ import Ġjavax . inject . Named Ċ Ċ class ĠSub reddit Adapter Ġ@ Inject Ġconstructor (@ Named ( INITIAL _ STATE ) Ġvar Ġcolors : ĠColors ) Ġ: ĠRecyclerView . Adapter < Sub reddit ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġitems Ġ= Ġempty List < Thread Item State >() ĊĊĠĠĠ Ġfun Ġset Items ( items : ĠList < Thread Item State >) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . items Ġ= Ġitems ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () Ġ// ĠTODO Ġdiff util ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠSub reddit ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġ ĠLayoutInflater . from ( parent . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . thread _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠSub reddit ViewHolder ( view ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġitems . size ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠSub reddit ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġthread Ġ= Ġitems [ position ] ĊĠĠĠĠĠĠĠ Ġwith Ġ( holder . item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPic asso . get (). load ( thread . imageUrl ). into ( thread ImageView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Title . text Ġ= Ġthread . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Author . text Ġ= Ġthread . author ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Vote Count . text Ġ= Ġthread . vote Count ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Comment Count . text Ġ= Ġthread . comments ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġimage Wrapper Background Ġ= ĠState List Drawable () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Wrapper Background . add State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( android . R . attr . state _ focused ), Ġ// ĠF ocused ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Drawable ( colors . accent ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Wrapper Background . add State ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġint ArrayOf ( android . R . attr . state _ focused ), Ġ// ĠUn focused ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠColor Drawable ( if Ġ( thread . view ed ) Ġcolors . read Ġelse Ġcolors . unread ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Image Wrapper . background Ġ= Ġimage Wrapper Background ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠlistOf ( thread Up vote , Ġthread Down vote ). forEach Ġ{ Ġview Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOn Focus ChangeListener Ġ{ Ġv , Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcolor Ġ= Ġwhen Ġ( has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġcolors . accent ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġcolors . text ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġiv Ġ= Ġv Ġas ĠImageView ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġiv . color Filter Ġ= ĠPort er D uff Color Filter ( color , ĠPort er D uff . Mode . SRC _ AT OP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Wrapper . set BackgroundColor ( colors . unread ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthread Wrapper . setOn Focus ChangeListener Ġ{ Ġv , Ġhas Focus Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( has Focus ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue Ġ-> Ġv . set BackgroundColor ( colors . accent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse Ġ-> Ġv . set BackgroundColor ( colors . unread ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠSub reddit ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ċ