package Ġorg . mix it conf . model . entity Ċ Ċ import Ġandroid . net . Uri Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . room . Entity Ċ import Ġandroidx . room . Ignore Ċ import Ġandroidx . room . PrimaryKey Ċ import Ġcom . github . rj esch ke . txt mark . Processor Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġorg . mix it conf . Mi Xi T Application Ċ import Ġorg . mix it conf . R Ċ import Ġorg . mix it conf . model . enums . Link Type Ċ import Ġorg . mix it conf . to Html Ċ import Ġjava . util .* Ċ Ċ @ Entity Ċ data Ġclass ĠS peaker (@ PrimaryKey Ġval Ġlogin : ĠString , Ġval Ġfirst name : ĠString , Ġval Ġlastname : ĠString , Ġval Ġcompany : ĠString ?, Ġval Ġdescription Fr : ĠString ?, Ġval Ġdescription En : ĠString ?) Ġ{ ĊĠĠĠ Ġ// ĠThese Ġlist Ġis Ġonly Ġpopulated Ġwhen Ġwe Ġwant Ġto Ġsee Ġthe Ġspeaker Ġdetail ĊĠĠĠ Ġ@ Ignore ĊĠĠĠ Ġval Ġlinks : ĠMutable List < Link > Ġ= Ġmutable ListOf () ĊĊĠĠĠ Ġ@ Ignore ĊĠĠĠ Ġval Ġtalk s : ĠMutable List < Talk > Ġ= Ġmutable ListOf () Ċ } Ċ Ċ val ĠS peaker . fullname ĊĠĠĠ Ġget () Ġ= Ġ"$ firstname Ġ$ lastname ". trim () Ċ Ċ val ĠS peaker . description In Markdown ĊĠĠĠ Ġget () Ġ= Ġif Ġ( description Fr . isNull OrEmpty ()) Ġnull Ġelse ĠProcessor . process ( description Fr ). to Html () Ċ Ċ private Ġval ĠS peaker . social Link : ĠLink ? ĊĠĠĠ Ġget () Ġ= Ġif Ġ( links . isEmpty ()) Ġnull Ġelse Ġlinks . first OrNull Ġ{ Ġit . link Type Ġ== ĠLink Type . Social Ġ} Ċ Ċ private Ġval ĠS peaker . web Link : ĠLink ? ĊĠĠĠ Ġget () Ġ= Ġif Ġ( links . isEmpty ()) Ġnull Ġelse Ġlinks . first OrNull Ġ{ Ġit . link Type Ġ!= ĠLink Type . Social Ġ} Ċ Ċ val ĠS peaker . has Link ĊĠĠĠ Ġget () Ġ= Ġsocial Link Ġ!= Ġnull Ġ|| Ġweb Link Ġ!= Ġnull Ċ Ċ val ĠS peaker . link Uri ĊĠĠĠ Ġget () Ġ= ĠUri . parse ( social Link ?. url Ġ?: Ġweb Link ?. url Ġ?: Ġ" https :// mix it conf . org / user /${ login }") Ċ Ċ val ĠS peaker . image Link ResourceId ĊĠĠĠ Ġget () Ġ= Ġif Ġ( social Link Ġ!= Ġnull ) Ġsocial Link !!. social Type . resourceId Ġelse ĠR . drawable . m xt _ icon _ web ĊĊ Ċ fun ĠImageView . set Speaker Image ( speaker : ĠS peaker ) Ġ{ ĊĠĠĠ Ġ// ĠS peaker Ġimages Ġare Ġdownloaded Ġon Ġthe Ġapp Ġstartup ĊĠĠĠ Ġval Ġimage Resource Ġ= Ġcontext . resources . getIdentifier ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspeaker . login . to Slug (). to Valid Image Name (). toLowerCase ( Locale . getDefault ()), Ġ" drawable ", Ġcontext . application Info . packageName ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠ ĠPic asso . get (). load ( if Ġ( image Resource Ġ> Ġ 0 ) Ġimage Resource Ġelse ĠR . drawable . m xt _ icon _ unknown ). resize ( 1 6 0 , Ġ 1 6 0 ). into ( this ) Ċ } Ċ Ċ private Ġfun ĠString . to Slug (): ĠString Ġ= Ġto LowerCase ( Locale . getDefault ()). toCharArray (). map Ġ{ Ġif Ġ( Mi Xi T Application . SPECIAL _ SL UG _ CHAR ACT ERS [ it ] Ġ== Ġnull ) Ġit Ġelse ĠMi Xi T Application . SPECIAL _ SL UG _ CHAR ACT ERS [ it ] Ġ}. join ToString ("") Ċ Ċ private Ġfun ĠString . to Valid Image Name (): ĠString Ġ= Ġif Ġ( this . startsWith (" 1 ")) Ġ" S $ this " Ġelse Ġthis Ċ