package Ġchat . w ew e . android . widget . internal Ċ Ċ import Ġandroid . annotation . Target Api Ċ import Ġandroid . content . Context Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . os . Build Ċ import Ġandroid . support . annotation . Color Res Ċ import Ġandroid . support . graphics . drawable . Vector Drawable Compat Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . Frame Layout Ċ import Ġchat . w ew e . android . widget . R Ċ import Ġchat . w ew e . android . widget . helper . Avatar Helper . getText Drawable Ċ import Ġchat . w ew e . android . widget . helper . Drawable Helper Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . bump tech . glide . load . engine . Disk Cache Strategy Ċ import Ġcom . bump tech . glide . load . resource . drawable . G lide Drawable Ċ import Ġcom . bump tech . glide . request . RequestListener Ċ import Ġcom . bump tech . glide . request . target . Target Ċ import Ġkotlinx . android . synt hetic . main . room _ list _ item . view .* Ċ Ċ /** Ċ Ġ* ĠRoom Ġlist - item Ġview Ġused Ġin Ġsidebar . Ċ Ġ*/ Ċ class ĠRoom ListItem View Ġ: ĠFrame Layout Ġ{ ĊĠĠĠ Ġlateinit Ġprivate Ġvar Ġroom Id : ĠString ĊĠĠĠ Ġprivate Ġval Ġprivate Channel Drawable : ĠDrawable ? Ġ= ĠVector Drawable Compat . create ( resources , ĠR . drawable . ic _ ch anel _ vector _ room , Ġnull ) ĊĠĠĠ Ġprivate Ġval Ġpublic Channel Drawable : ĠDrawable ? Ġ= ĠVector Drawable Compat . create ( resources , ĠR . drawable . ic _ public _ ch anel _ vector _ room , Ġnull ) ĊĠĠĠ Ġprivate Ġval Ġlive Chat Channel Drawable : ĠDrawable ? Ġ= ĠVector Drawable Compat . create ( resources , ĠR . drawable . ic _ live chat _ white _ 2 4 dp , Ġnull ) ĊĠĠĠ Ġprivate Ġval Ġuser Status Drawable : ĠDrawable ? Ġ= ĠVector Drawable Compat . create ( resources , ĠR . drawable . ic _ user _ status _ black _ 2 4 dp , Ġnull )?. mutate () ĊĊĠĠĠ Ġconstructor ( context : ĠContext ) Ġ: Ġsuper ( context ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ) Ġ: Ġsuper ( context , Ġattrs ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Target Api ( Build . VERSION _ CODES . LO L LI POP ) ĊĠĠĠ Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet , Ġdef Style Attr : ĠInt , Ġdef Style Res : ĠInt ) Ġ: Ġsuper ( context , Ġattrs , Ġdef Style Attr , Ġdef Style Res ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitialize ( context ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinitialize ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlayout Params Ġ= ĠFrame Layout . LayoutParams ( Frame Layout . LayoutParams . MATCH _ PARENT , ĠFrame Layout . LayoutParams . WRAP _ CONTENT ) ĊĊĠĠĠĠĠĠĠ Ġval Ġarray Ġ= Ġcontext ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. theme ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. obtain Styled Attributes ( int ArrayOf ( R . attr . selectable Item Background )) ĊĊĠĠĠĠĠĠĠ Ġbackground Ġ= Ġarray . get Drawable ( 0 ) ĊĠĠĠĠĠĠĠ Ġarray . recycle () ĊĊĠĠĠĠĠĠĠ ĠView . inflate ( context , ĠR . layout . room _ list _ item , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Room Id ( roomId : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . roomId Ġ= Ġroom Id ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Un read Count ( count : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( count Ġ> Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert Count . text Ġ= Ġcount . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert Count . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġalert Count . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Alert ( alert : ĠBoolean ) Ġ{ ĊĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġset Room Name ( room Name : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġname . text Ġ= Ġroom Name ĊĊĠĠĠĠĠĠĠ Ġval Ġplaceholder Drawable Ġ= ĠgetText Drawable ( room Name , Ġcontext ) ĊĠĠĠĠĠĠĠ Ġavatar . load Image (" https :// chat . w el tw elle . com / avatar /$ room Name ", Ġplaceholder Drawable ) ĊĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġset Room Time ( time Ġ: ĠString Ġ){ ĊĠĠĠĠĠĠĠ Ġtime Text . setText ( time ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Room Last Message ( msg Ġ: ĠString Ġ){ ĊĠĠĠĠĠĠĠ Ġmessage _ out . setText ( msg ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġshow Private Channel Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġtype . setImage Drawable ( private Channel Drawable ) ĊĠĠĠĠĠĠĠ Ġprepare Drawable And Show ( R . color . color _ user _ status _ offline ) ĊĠĠĠĠĠĠĠ Ġuser Status . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠ Ġtype . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Public Channel Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġtype . setImage Drawable ( private Channel Drawable ) ĊĠĠĠĠĠĠĠ Ġprepare Drawable And Show ( R . color . color _ user _ status _ offline ) ĊĠĠĠĠĠĠĠ Ġuser Status . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġtype . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Live chat Channel Icon () Ġ{ ĊĠĠĠĠ Ġ// ĠĠ Ġtype . setImage Drawable ( live Chat Channel Drawable ) ĊĠĠĠĠ Ġ// ĠĠ Ġuser Status . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠ Ġ// Ġ Ġtype . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Online User Status Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġprepare Drawable And Show ( R . color . color _ user _ status _ online ) ĊĠĠĠĠĠĠĠ Ġname . alpha Ġ= Ġ 1 . 0 F ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Busy User Status Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġprepare Drawable And Show ( R . color . color _ user _ status _ busy ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Away User Status Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġprepare Drawable And Show ( R . color . color _ user _ status _ away ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow Offline User Status Icon () Ġ{ ĊĠĠĠĠĠĠĠ Ġprepare Drawable And Show ( R . color . color _ user _ status _ offline ) ĊĠĠĠĠĠĠĠ Ġname . alpha Ġ= Ġ 0 . 9 F ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġprepare Drawable And Show (@ Color Res Ġres Id : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ ĠDrawable Helper . wrap Drawable ( user Status Drawable ) ĊĠĠĠĠĠĠĠ ĠDrawable Helper . tint Drawable ( user Status Drawable , Ġcontext , Ġres Id ) ĊĠĠĠĠĠĠĠ Ġuser Status . setImage Drawable ( user Status Drawable ) ĊĠĠĠĠĠĠĠ Ġtype . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ Ġuser Status . visibility Ġ= ĠView . VISIBLE ĊĠĠĠ Ġ} ĊĊĊ Ċ }