package Ġcom . tern ary op . photos he lf . tum blr . ui . core . adapter . photo Ċ Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġco il . load Ċ import Ġco il . target . ImageView Target Ċ import Ġcom . tern ary op . photos he lf . adapter . POST _ STYLE _ INDEX _ MENU _ OVER FLOW _ COLOR Ċ import Ġcom . tern ary op . photos he lf . adapter . POST _ STYLE _ INDEX _ TIME _ DESC _ TEXT _ COLOR Ċ import Ġcom . tern ary op . photos he lf . adapter . POST _ STYLE _ INDEX _ TITLE _ TEXT _ COLOR Ċ import Ġcom . tern ary op . photos he lf . adapter . POST _ STYLE _ INDEX _ VIEW _ BACKGROUND Ċ import Ġcom . tern ary op . photos he lf . tum blr . ui . core . R Ċ import Ġcom . tern ary op . photos he lf . tum blr . ui . core . adapter . Photo She lf Post Ċ import Ġcom . tern ary op . photos he lf . widget . Tag List Layout Ċ import Ġcom . tern ary op . tum blr . T um blr Alt Size Ċ import Ġcom . tern ary op . widget . Check able ImageView Ċ Ċ class ĠPhoto GridView Holder ( vi : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( vi ) Ġ{ ĊĠĠĠ Ġprivate Ġval Ġtag List : ĠTag List Layout Ġ= ĠitemView . findViewById ( R . id . tags _ container ) ĊĠĠĠ Ġprivate Ġval Ġthumb Image Ġ= Ġvi . findViewById < View >( R . id . thumbnail _ image ) Ġas ĠCheck able ImageView ĊĠĠĠ Ġprivate Ġval Ġmenu Ġ= Ġvi . findViewById < View >( R . id . menu ) Ġas ĠImageView ĊĠĠĠ Ġprivate Ġval Ġtime Desc : ĠTextView Ġ= ĠitemView . findViewById ( R . id . time _ desc ) ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpost : ĠPhoto She lf Post ĊĊĠĠĠ Ġfun Ġbind Model ( post : ĠPhoto She lf Post , Ġchecked : ĠBoolean , Ġpaint Grid Cell By Schedule Time Type : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . post Ġ= Ġpost ĊĠĠĠĠĠĠĠ Ġdisplay Image ( checked ) ĊĠĠĠĠĠĠĠ Ġupdate Texts () ĊĠĠĠĠĠĠĠ Ġupdate Item Colors ( paint Grid Cell By Schedule Time Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Colors ( res Array : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= ĠitemView . context . resources . obtain Typed Array ( res Array ) ĊĠĠĠĠĠĠĠ ĠitemView . background Ġ= Ġarray . get Drawable ( POST _ STYLE _ INDEX _ VIEW _ BACKGROUND ) ĊĠĠĠĠĠĠĠ Ġtime Desc . setTextColor ( array . getColor State List ( POST _ STYLE _ INDEX _ TIME _ DESC _ TEXT _ COLOR )) ĊĠĠĠĠĠĠĠ Ġmenu . image Tint List Ġ= Ġarray . getColor State List ( POST _ STYLE _ INDEX _ MENU _ OVER FLOW _ COLOR ) ĊĊĠĠĠĠĠĠĠ Ġtag List . setTag TextColor ( array . getColor State List ( POST _ STYLE _ INDEX _ TITLE _ TEXT _ COLOR )) ĊĊĠĠĠĠĠĠĠ Ġarray . recycle () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Item Colors ( color Cell By Schedule Time Type : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( color Cell By Schedule Time Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( post . schedule Time Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto She lf Post . Schedule Time . POST _ PUBL ISH _ NE VER Ġ-> Ġset Colors ( R . array . post _ never ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPhoto She lf Post . Schedule Time . POST _ PUBL ISH _ F UT URE Ġ-> Ġset Colors ( R . array . post _ future ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġset Colors ( R . array . post _ normal ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Colors ( R . array . post _ normal ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate Texts () Ġ{ ĊĠĠĠĠĠĠĠ Ġtag List . add Tags ( post . tags ) ĊĠĠĠĠĠĠĠ Ġtime Desc . text Ġ= Ġpost . last Published Timestamp AsString ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdisplay Image ( checked : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthumb Image . load ( checkNotNull ( post . get Closest Photo By Width ( T um blr Alt Size . IMAGE _ WIDTH _ 2 5 0 )). url ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplaceholder ( R . drawable . stub ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtarget ( object Ġ: ĠImageView Target ( thumb Image ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonSuccess ( result : ĠDrawable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Success ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthumb Image . isChecked Ġ= Ġchecked ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset OnClick Menu ( listener : ĠView . OnClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmenu . tag Ġ= Ġbinding Adapter Position ĊĠĠĠĠĠĠĠ Ġmenu . setOnClickListener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset OnClick Tags ( listener : ĠView . OnClickListener ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtag List . tag Ġ= Ġbinding Adapter Position ĊĠĠĠĠĠĠĠ Ġtag List . setOn Tag ClickListener ( listener ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset OnClick Thumbnail ( ĊĠĠĠĠĠĠĠ Ġlistener : ĠView . OnClickListener , ĊĠĠĠĠĠĠĠ Ġlong ClickListener : ĠView . On Long ClickListener ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthumb Image . tag Ġ= Ġbinding Adapter Position ĊĠĠĠĠĠĠĠ Ġthumb Image . setOnClickListener ( listener ) ĊĠĠĠĠĠĠĠ Ġthumb Image . setOn Long ClickListener ( long ClickListener ) ĊĠĠĠĠĠĠĠ Ġthumb Image . is Long Clickable Ġ= Ġtrue ĊĠĠĠ Ġ} Ċ }