package Ġchat . rocket . android . contacts . adapter Ċ Ċ import Ġandroid . content . res . Resources Ċ import Ġandroid . graphics . drawable . Drawable Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . view . is G one Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . recyclerview . selection . Item Details Lookup Ċ import Ġchat . rocket . android . R Ċ import Ġchat . rocket . android . chat rooms . adapter . ViewHolder Ċ import Ġchat . rocket . android . contacts . models . Contact Ċ import Ġkotlinx . android . synt hetic . main . item _ contact . view .* Ċ Ċ class ĠContact s ViewHolder ( item View : ĠView ) Ġ: ĠViewHolder < Contacts Item Holder >( item View ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġresources : ĠResources Ġ= ĠitemView . resources ĊĠĠĠ Ġprivate Ġval Ġonline : ĠDrawable Ġ= Ġresources . get Drawable ( R . drawable . ic _ status _ online _ 1 2 dp ) ĊĠĠĠ Ġprivate Ġval Ġaway : ĠDrawable Ġ= Ġresources . get Drawable ( R . drawable . ic _ status _ away _ 1 2 dp ) ĊĠĠĠ Ġprivate Ġval Ġbusy : ĠDrawable Ġ= Ġresources . get Drawable ( R . drawable . ic _ status _ busy _ 1 2 dp ) ĊĠĠĠ Ġprivate Ġval Ġoffline : ĠDrawable Ġ= Ġresources . get Drawable ( R . drawable . ic _ status _ invisible _ 1 2 dp ) ĊĊĠĠĠ Ġoverride Ġfun Ġbind Views ( data : ĠContact s Item Holder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontact : ĠContact Ġ= Ġdata . data ĊĠĠĠĠĠĠĠ Ġwith ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ image _ avatar . setImage URI ( contact . get Avatar Url ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ name . text Ġ= Ġcontact . getName () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Activated Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ status . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ checkbox . is G one Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contact . getUsername () Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ detail . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvite _ contact . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat _ username . is G one Ġ= Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( contact . is Phone ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ detail . text Ġ= Ġcontact . get PhoneNumber () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ detail . text Ġ= Ġcontact . get EmailAddress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ detail . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvite _ contact . is G one Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat _ username . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat _ username . text Ġ= Ġ"@ ${ contact . getUsername () }" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( contact . getIs Spot light Result ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat _ username . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchat _ username . text Ġ= Ġ"" ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinvite _ contact . isVisible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun ĠgetItem Details (): ĠItem Details Lookup . Item Details < Long > Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠItem Details Lookup . Item Details < Long >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Position (): ĠInt Ġ= Ġadapter Position ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġget Selection Key (): ĠLong ? Ġ= ĠitemId ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġbind Selection ( is Activated : ĠBoolean Ġ= Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( item View ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Activated Ġ= Ġis Activated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ status . isVisible Ġ= Ġ! is Activated ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcontact _ checkbox . isVisible Ġ= Ġis Activated ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Contact Status ( contact : ĠContact ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġcontact ?. getStatus ()?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . contact _ status . isVisible Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . contact _ status . setImage Drawable ( getStatus Drawable ( it )) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠgetStatus Drawable ( status : ĠString ?): ĠDrawable Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( status Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġoffline ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen ( status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" online " Ġ-> Ġonline ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" away " Ġ-> Ġaway ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" busy " Ġ-> Ġbusy ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġoffline ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ