package Ġorg . du ke con . android . ui . features . event detail Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . text . format . Date Utils Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . coordinator layout . widget . Coordinator Layout Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġkotlinx . android . synt hetic . main . view _ session _ detail . view .* Ċ import Ġorg . du ke con . android . ui . R Ċ import Ġorg . du ke con . android . ui . features . feedback . Feedback Dialog Ċ import Ġorg . du ke con . android . ui . features . speaker . Speaker Adapter Ċ import Ġorg . du ke con . android . ui . features . speaker detail . Speaker Navigator Ċ import Ġorg . du ke con . android . ui . utils . Drawable Utils Ċ import Ġorg . du ke con . core . Io C Provider Ċ import Ġorg . du ke con . date . to Millis Ċ import Ġorg . du ke con . presentation . feature . event detail . Event Detail Contract Ċ import Ġorg . du ke con . presentation . model . Event View Ċ import Ġorg . du ke con . presentation . model . Speaker View Ċ Ċ class ĠEvent Detail View ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , Ġdef Style : ĠInt Ġ= Ġ 0 ) Ġ: ĊĠĠĠĠĠĠĠ ĠCoord inator Layout ( context , Ġattrs , Ġdef Style ), ĠEvent Detail Contract . View Ġ{ ĊĠĠĠ Ġoverride Ġfun Ġshow Error ( throwable : ĠThrowable ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġpresenter : ĠEvent Detail Contract . Presenter Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠIo C Provider . get < Event Detail Contract . Presenter >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġspeaker Navigator : ĠS peaker Navigator Ġby Ġlazy Ġ{ ĊĠĠĠĠĠĠĠ ĠIo C Provider . get < Speaker Navigator >() ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġspeaker Adapter : ĠS peaker Adapter ĊĠĠĠ Ġprivate Ġvar ĠsessionId : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġthis ( context , Ġnull , Ġ 0 ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ?) Ġ: Ġthis ( context , Ġattrs , Ġ 0 ) ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ ĠLayoutInflater . from ( context ). inflate ( R . layout . view _ session _ detail , Ġthis , Ġtrue ) ĊĊĠĠĠĠĠĠĠ Ġspeaker Adapter Ġ= ĠS peaker Adapter ( true ) Ġ{ Ġspeaker Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspeaker Navigator . navigate ToS peaker ( speaker . id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġspeak ers . adapter Ġ= Ġspeaker Adapter ĊĠĠĠĠĠĠĠ Ġspeak ers . layout Manager Ġ= ĠLinearLayoutManager ( context , ĠRecyclerView . HORIZONTAL , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġ// Ġinitially Ġhide Ġthe Ġfeedback Ġbutton Ġuntil Ġwe Ġget Ġa Ġsession ĊĠĠĠĠĠĠĠ Ġfeedback . hide () ĊĠĠĠĠĠĠĠ Ġfeedback . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠFeedback Dialog ( context , ĠsessionId !! ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfavorite . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpresenter . toggle Favorite () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpresenter . on Attach ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detached From Window () Ġ{ ĊĠĠĠĠĠĠĠ Ġpresenter . on Detach () ĊĠĠĠĠĠĠĠ Ġsuper . on Detached From Window () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Session ( sessionId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . sessionId Ġ= ĠsessionId ĊĠĠĠĠĠĠĠ Ġpresenter . set SessionId ( sessionId ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġhas Session : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun Ġset Has Session ( has Session : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . has Session Ġ= Ġhas Session ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow No Event () Ġ{ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" Restricted Api ") ĊĠĠĠ Ġoverride Ġfun Ġshow Session Detail ( session Detail : ĠEvent View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġtoolbar . title Ġ= Ġsession Detail . title ĊĠĠĠĠĠĠĠ Ġval Ġactivity Ġ= Ġcontext Ġas ĠAppCompatActivity ĊĠĠĠĠĠĠĠ Ġactivity . set Support ActionBar ( toolbar ) ĊĠĠĠĠĠĠĠ Ġtoolbar . set Navigation OnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity . finish () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠstartTime Ġ= ĠDate Utils . format DateTime ( context , Ġsession Detail . startTime . to Millis (), ĠDate Utils . FORMAT _ SHOW _ TIME ) ĊĠĠĠĠĠĠĠ Ġval ĠendTime Ġ= ĠDate Utils . format DateTime ( context , Ġsession Detail . endTime . to Millis (), ĠDate Utils . FORMAT _ SHOW _ TIME ) ĊĊĠĠĠĠĠĠĠ Ġbanner . text Ġ= ĠString . format ( context . getString ( R . string . session _ detail _ time ), Ġsession Detail . room , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartTime , ĠendTime ) ĊĠĠĠĠĠĠĠ Ġdescription . text Ġ= Ġsession Detail . description ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO Ġtime ĊĊĠĠĠĠĠĠĠ Ġ/* val Ġinstant Ġ= ĠInstant . of Epoch Milli ( currentTime Provider . currentTimeMillis ()) ĊĠĠĠĠĠĠĠ Ġval Ġnow Ġ= Ġinstant . at Zone ( Zone Id . system Default ()). to Offset DateTime () ĊĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠM PP ĊĠĠĠĠĠĠĠ Ġ/* ĊĠĠĠĠĠĠĠ Ġif Ġ( session . startTime . is After ( now )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . visibility Ġ= ĠG ONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfeedback . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite . show () ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . visibility Ġ= ĠVIS IBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfavorite . hide () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstatus String Ġ= Ġif Ġ( session . endTime . is After ( now )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . status _ in _ progress ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . status _ over ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġstatus . setText ( status String ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( conference Configuration . supports Feedback Ġand Ġhas Session ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeedback . show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfeedback . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Speaker Info ( speak ers : ĠList < Speaker View >) Ġ{ ĊĠĠĠĠĠĠĠ Ġspeaker Adapter . speak ers . clear () ĊĠĠĠĠĠĠĠ Ġspeaker Adapter . speak ers . addAll ( speak ers ) ĊĠĠĠĠĠĠĠ Ġspeaker Adapter . notify DataSet Changed () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠsetIs Favorite ( is Favorite : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdrawable Ġ= Ġif Ġ( is Favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Utils . create ( context , ĠR . drawable . ic _ favorite _ white _ 2 4 dp ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDrawable Utils . create ( context , ĠR . drawable . ic _ favorite _ border _ white _ 2 4 dp ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġfavorite . setImage Drawable ( drawable ) ĊĠĠĠ Ġ} Ċ } ĊĊ