package Ġdev . rick n out . r ug by rank er . match . ui Ċ Ċ import Ġandroid . content . res . Color State List Ċ import Ġandroidx . appcompat . content . res . AppCompat Resources Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . color . Material Colors Ċ import Ġdev . rick n out . r ug by rank er . core . util . Date Utils Ċ import Ġdev . rick n out . r ug by rank er . core . util . Flag Utils Ċ import Ġdev . rick n out . r ug by rank er . match . R Ċ import Ġdev . rick n out . r ug by rank er . match . databinding . ListItem Match Binding Ċ import Ġdev . rick n out . r ug by rank er . match . model . Half Ċ import Ġdev . rick n out . r ug by rank er . match . model . Match Ċ import Ġdev . rick n out . r ug by rank er . match . model . Status Ċ import Ġkotlin . math . floor Ċ Ċ class ĠMatch ViewHolder ( private Ġval Ġbinding : ĠListItem Match Binding ) Ġ: ĠRecyclerView . ViewHolder ( binding . root ) Ġ{ ĊĊĠĠĠ Ġfun Ġbind ( match : ĠMatch , Ġon Predict Click : Ġ( match : ĠMatch ) Ġ-> ĠUnit , Ġon Pin Click : Ġ( match : ĠMatch ) Ġ-> ĠUnit ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhome Flag . text Ġ= ĠFlag Utils . get Flag Emoji For Team Abbre viation ( match . first Team Abbre viation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaway Flag . text Ġ= ĠFlag Utils . get Flag Emoji For Team Abbre viation ( match . second Team Abbre viation ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhome Name . text Ġ= Ġmatch . first Team Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaway Name . text Ġ= Ġmatch . second Team Name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġis Current Day Ġ= ĠDate Utils . is Day Current Day ( match . time Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhigh Emp hasis Color Ġ= ĠColor State List . valueOf ( Material Colors . getColor ( root , ĠR . attr . color On Surface )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġmedium Emp hasis Color Ġ= ĠAppCompat Resources . getColor State List ( root . context , ĠR . color . material _ on _ surface _ emp hasis _ medium ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( match . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . UN PLAY ED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġif Ġ( is Current Day ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . context . getString ( R . string . today ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Utils . getDate ( Date Utils . DATE _ FORMAT _ E _ D _ MMM _ YYYY , Ġmatch . time Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= ĠDate Utils . getDate ( Date Utils . DATE _ FORMAT _ HH _ MM , Ġmatch . time Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . setTextColor ( medium Emp hasis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . text Ġ= Ġroot . context . getString ( R . string . vers us ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score Text . text Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . COMPLETE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġif Ġ( is Current Day ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . context . getString ( R . string . today ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Utils . getDate ( Date Utils . DATE _ FORMAT _ E _ D _ MMM _ YYYY , Ġmatch . time Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . setTextColor ( high Emp hasis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . text Ġ= Ġmatch . first Team Score . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score Text . text Ġ= Ġmatch . second Team Score . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . LI VE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġroot . context . getString ( R . string . live ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhalf Ġ= Ġwhen Ġ( match . half ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHalf . FIRST Ġ-> Ġroot . context . getString ( R . string . first _ half ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHalf . SECOND Ġ-> Ġroot . context . getString ( R . string . second _ half ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHalf . HALF _ TIME Ġ-> Ġroot . context . getString ( R . string . half _ time ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġif Ġ( match . minute Ġ!= Ġnull Ġ&& Ġhalf Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . context . getString ( R . string . half _ minute , Ġhalf , Ġmatch . minute ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . setTextColor ( high Emp hasis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . text Ġ= Ġmatch . first Team Score . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score Text . text Ġ= Ġmatch . second Team Score . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . POST P ON ED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġif Ġ( is Current Day ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . context . getString ( R . string . today ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Utils . getDate ( Date Utils . DATE _ FORMAT _ E _ D _ MMM _ YYYY , Ġmatch . time Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġroot . context . getString ( R . string . post p oned ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . setTextColor ( medium Emp hasis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . text Ġ= Ġroot . context . getString ( R . string . vers us ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score Text . text Ġ= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . CANCEL LED Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġif Ġ( is Current Day ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . context . getString ( R . string . today ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠDate Utils . getDate ( Date Utils . DATE _ FORMAT _ E _ D _ MMM _ YYYY , Ġmatch . time Millis ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlabel . text Ġ= Ġroot . context . getString ( R . string . cancelled ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . setTextColor ( high Emp hasis Color ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġhome Score Text . text Ġ= Ġmatch . first Team Score . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġaway Score Text . text Ġ= Ġmatch . second Team Score . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent . isVisible Ġ= Ġmatch . event Label Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġevent Text . text Ġ= Ġmatch . event Label ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace . isVisible Ġ= Ġmatch . venue Name Ġ!= Ġnull Ġ|| Ġmatch . venue Country Ġ!= Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġplace Text . text Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch . venue Name Ġ!= Ġnull Ġ&& Ġmatch . venue Country Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot . context . getString ( R . string . name _ country , Ġmatch . venue Name , Ġmatch . venue Country ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch . venue Name Ġ!= Ġnull Ġ-> Ġmatch . venue Name ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch . venue Country Ġ!= Ġnull Ġ-> Ġmatch . venue Country ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġnull ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmatch . predict able Ġ&& Ġ( match . status Ġ== ĠStatus . UN PLAY ED Ġ|| Ġmatch . status Ġ== ĠStatus . LI VE Ġ|| Ġmatch . status Ġ== ĠStatus . POST P ON ED ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpredict . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpredict Button . setOnClickListener Ġ{ Ġon Predict Click ( match ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpredict . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpredict Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( match . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠStatus . LI VE Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpin Button . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpin Button . setOnClickListener Ġ{ Ġon Pin Click ( match ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpin Button . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpin Button . setOnClickListener ( null ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspan Count Ġ= ĠitemView . context . resources . getInteger ( R . integer . span _ count _ grid ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġrow Ġ= Ġfloor ( absolute Adapter Position Ġ/ Ġspan Count . toFloat ()). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠbackgroundColor Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( span Count Ġ% Ġ 2 Ġ!= Ġ 0 Ġ|| Ġrow Ġ% Ġ 2 Ġ== Ġ 0 ) Ġ&& Ġabsolute Adapter Position Ġ% Ġ 2 Ġ== Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Resources . getColor State List ( item View . context , ĠR . color . on _ surface _ 5 ). default Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( span Count Ġ% Ġ 2 Ġ== Ġ 0 Ġ&& Ġrow Ġ% Ġ 2 Ġ!= Ġ 0 ) Ġ&& Ġabsolute Adapter Position Ġ% Ġ 2 Ġ!= Ġ 0 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAppCompat Resources . getColor State List ( item View . context , ĠR . color . on _ surface _ 5 ). default Color ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠMaterial Colors . getColor ( root , ĠR . attr . color Surface ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġroot . set BackgroundColor ( backgroundColor ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ