package Ġcom . bo gd an . co def or ces watcher . features . cont ests Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . bo gd an . co def or ces watcher . R Ċ import Ġio . xor um . co def or ces watcher . features . cont ests . models . Cont est Ċ import Ġio . xor um . co def or ces watcher . features . cont ests . models . Platform Ċ import Ġkotlinx . android . synt hetic . main . view _ contest _ item . view .* Ċ import Ġjava . text . SimpleDateFormat Ċ import Ġjava . util .* Ċ Ċ class ĠCont ests Adapter ( ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġcontext : ĠContext , ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠaddTo Calendar ClickListener : Ġ( Cont est ) Ġ-> ĠUnit , ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġitem ClickListener : Ġ( Cont est ) Ġ-> ĠUnit Ċ ) Ġ: ĠRecyclerView . Adapter < Cont ests Adapter . ViewHolder >() Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġitems : ĠList < Cont est > Ġ= ĠlistOf () ĊĊĠĠĠ Ġoverride Ġfun ĠgetItem Count () Ġ= Ġitems . size ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ViewHolder ( parent : ĠViewGroup , Ġview Type : ĠInt ): ĠViewHolder Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlayout Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . view _ contest _ item , Ġparent , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn ĠViewHolder ( layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Bind ViewHolder ( holder : ĠViewHolder , Ġposition : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontest Ġ= Ġitems [ position ] ĊĠĠĠĠĠĠĠ Ġwith ( holder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Cont est Name . text Ġ= Ġcontest . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtv Cont est Time . text Ġ= Ġget DateTime ( contest . startTime Seconds ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv Cont est . setImage Resource ( when Ġ( contest . platform ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . AT CODER Ġ-> ĠR . drawable . at coder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . TOP CODER Ġ-> ĠR . drawable . top coder ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . CODE FOR CES Ġ-> ĠR . drawable . co def or ces ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . CODE CHE F Ġ-> ĠR . drawable . code chef ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . CODE FOR CES _ GY M Ġ-> ĠR . drawable . co def or ces ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . LE ET CODE Ġ-> ĠR . drawable . leetcode ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . K ICK _ START Ġ-> ĠR . drawable . kick start ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . H ACK ERE AR TH Ġ-> ĠR . drawable . hack ere arth ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . H ACK ERR ANK Ġ-> ĠR . drawable . hack err ank ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPlatform . CS _ AC ADE MY Ġ-> ĠR . drawable . cs academy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġon AddTo Calendar ClickListener Ġ= Ġ{ ĠaddTo Calendar ClickListener ( contest ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon ItemClickListener Ġ= Ġ{ Ġitem ClickListener ( contest ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Items ( contest List : ĠList < Cont est >) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems Ġ= Ġcontest List ĊĠĠĠĠĠĠĠ Ġnotify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget DateTime ( seconds : ĠLong ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠdateFormat Ġ= ĠSimpleDateFormat (" kk : mm ĠM MM Ġd , ĠE EEE ", ĠLocale . getDefault ()) ĊĠĠĠĠĠĠĠ Ġreturn ĠdateFormat . format ( Date ( seconds )). toString () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠViewHolder ( view : ĠView ) Ġ: ĠRecyclerView . ViewHolder ( view ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtv Cont est Name : ĠTextView Ġ= Ġview . tv Cont est Name ĊĠĠĠĠĠĠĠ Ġval Ġtv Cont est Time : ĠTextView Ġ= Ġview . tv Cont est Time ĊĠĠĠĠĠĠĠ Ġval Ġiv Cont est : ĠImageView Ġ= Ġview . iv Cont est ĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġiv AddTo Calendar : ĠImageView Ġ= Ġview . iv AddTo Calendar ĊĊĠĠĠĠĠĠĠ Ġvar Ġon AddTo Calendar ClickListener : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġvar Ġon ItemClickListener : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġiv AddTo Calendar . setOnClickListener Ġ{ Ġon AddTo Calendar ClickListener ?. invoke () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview . setOnClickListener Ġ{ Ġon ItemClickListener ?. invoke () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ