package Ġcom . d ow gal oly a . gw ent helper . adapters Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . d ow gal oly a . gw ent helper . R Ċ import Ġcom . d ow gal oly a . gw ent helper . db . Game Score Ċ import Ġcom . d ow gal oly a . gw ent helper . enums . Winner Ċ import Ġkotlinx . android . synt hetic . main . item _ score . view .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠScore Adapter Ġ: ĠRecyclerView . Adapter < RecyclerView . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġ_ scores : ĠList < Game Score > Ġ= Ġempty List () ĊĊĠĠĠ Ġobject ĠView Type Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠPL ACE HOLDER Ġ= ĠR . layout . item _ place h oder ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠFE ED Ġ= ĠR . layout . item _ score ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠRecyclerView . ViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( parent . context ). inflate ( view Type , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( view Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Type . PLACE HOLDER Ġ-> ĠPlace holder ViewHolder ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠView Type . FEED Ġ-> ĠFeed Item ViewHolder ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalArgumentException () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠRecyclerView . ViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFeed Item ViewHolder Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġholder . on Bind (_ scores [ position ]) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem ViewType ( ĊĠĠĠĠĠĠĠ Ġposition : ĠInt ĊĠĠĠ Ġ): ĠInt Ġ= Ġif Ġ(_ scores . isEmpty ()) ĠView Type . PLACE HOLDER Ġelse ĠView Type . FEED ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count (): ĠInt Ġ= Ġif Ġ(_ scores . isNull OrEmpty ()) Ġ 1 Ġelse Ġ_ scores . size ĊĊĠĠĠ Ġfun Ġadd All ( score : ĠList < Game Score >) Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ scores Ġ= Ġscore ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġclear All () Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ scores Ġ= Ġempty List () ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠFeed Item ViewHolder ( item View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( item View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġformatter Ġ= ĠSimpleDateFormat (" hh : mm Ġdd ĠM MM Ġy yyy ", ĠLocale . getDefault ()) ĊĊĠĠĠĠĠĠĠ Ġfun Ġon Bind ( item : ĠGame Score ) Ġ= Ġwith ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ game _ date . text Ġ= Ġformatter . format ( item . date ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ user _ 1 . text Ġ= Ġitem . first Player ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ user _ 2 . text Ġ= Ġitem . second Player ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ round _ 1 _ player _ 1 . text Ġ= Ġitem . first Round First Player Points ?. toString () Ġ?: Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ round _ 2 _ player _ 1 . text Ġ= Ġitem . second Round First Player Points ?. toString () Ġ?: Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ round _ 3 _ player _ 1 . text Ġ= Ġitem . third Round First Player Points ?. toString () Ġ?: Ġ"-" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ round _ 1 _ player _ 2 . text Ġ= Ġitem . first Round Second Player Points ?. toString () Ġ?: Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ round _ 2 _ player _ 2 . text Ġ= Ġitem . second Round Second Player Points ?. toString () Ġ?: Ġ"-" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtxt _ round _ 3 _ player _ 2 . text Ġ= Ġitem . third Round Second Player Points ?. toString () Ġ?: Ġ"-" ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ winner _ user _ 1 . is Activated Ġ= Ġitem . winner Ġ== ĠW inner . FIRST . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimg _ winner _ user _ 2 . is Activated Ġ= Ġitem . winner Ġ== ĠW inner . SECOND . name ĊĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinner Ġclass ĠPlace holder ViewHolder ( container View : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( container View ) Ċ Ċ }