/* Ċ Ġ* ĠCopyright Ġ 2 0 1 9 ĠNew ĠVector ĠLtd Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġim . vector . app . features . room directory Ċ Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . air bnb . e po xy . E po xy Attribute Ċ import Ġcom . air bnb . e po xy . E po xy Model Class Ċ import Ġim . vector . app . R Ċ import Ġim . vector . app . core . e po xy . Vector E po xy Holder Ċ import Ġim . vector . app . core . e po xy . Vector E po xy Model Ċ import Ġim . vector . app . core . extensions . setText Or Hide Ċ import Ġim . vector . app . core . platform . Button State View Ċ import Ġim . vector . app . features . home . Avatar Renderer Ċ import Ġorg . matrix . android . sdk . api . util . Matrix Item Ċ Ċ @ E po xy Model Class ( layout Ġ= ĠR . layout . item _ public _ room ) Ċ abstract Ġclass ĠPublic Room Item Ġ: ĠVector E po xy Model < Public Room Item . Holder >() Ġ{ ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġlateinit Ġvar Ġavatar Renderer : ĠAvatar Renderer ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġlateinit Ġvar Ġmatrix Item : ĠMatrix Item ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġroom Alias : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġroom Topic : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġnb Of Members : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġjoin State : ĠJoin State Ġ= ĠJoin State . NOT _ JOIN ED ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġglobal Listener : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġ@ E po xy Attribute ĊĠĠĠ Ġvar Ġjoin Listener : Ġ(() Ġ-> ĠUnit )? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġbind ( holder : ĠH older ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . bind ( holder ) ĊĠĠĠĠĠĠĠ Ġholder . root View . setOnClickListener Ġ{ Ġglobal Listener ?. invoke () Ġ} ĊĊĠĠĠĠĠĠĠ Ġavatar Renderer . render ( matrix Item , Ġholder . avatar View ) ĊĠĠĠĠĠĠĠ Ġholder . name View . text Ġ= Ġmatrix Item . displayName ĊĠĠĠĠĠĠĠ Ġholder . alias View . setText Or Hide ( room Alias ) ĊĠĠĠĠĠĠĠ Ġholder . topic View . setText Or Hide ( room Topic ) ĊĠĠĠĠĠĠĠ Ġ// ĠTODO ĠUse Ġformatter Ġfor Ġbig Ġnumbers ? ĊĠĠĠĠĠĠĠ Ġholder . counter View . text Ġ= Ġnb Of Members . toString () ĊĊĠĠĠĠĠĠĠ Ġholder . button State . render ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( join State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJoin State . NOT _ JOIN ED ĠĠĠ Ġ-> ĠButton State View . State . Button ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJoin State . JOIN ING ĠĠĠĠĠĠ Ġ-> ĠButton State View . State . Loading ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJoin State . JOIN ED ĠĠĠĠĠĠĠ Ġ-> ĠButton State View . State . Loaded ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠJoin State . JOIN ING _ ERROR Ġ-> ĠButton State View . State . Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġholder . button State . callback Ġ= Ġobject Ġ: ĠButton State View . Callback Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Button Clicked () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġjoin Listener ?. invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Retry Clicked () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠSame Ġaction ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Button Clicked () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠH older Ġ: ĠVector E po xy Holder () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot View Ġby Ġbind < ViewGroup >( R . id . item Public Room Layout ) ĊĊĠĠĠĠĠĠĠ Ġval Ġavatar View Ġby Ġbind < ImageView >( R . id . item Public Room Avatar ) ĊĠĠĠĠĠĠĠ Ġval Ġname View Ġby Ġbind < TextView >( R . id . item Public Room Name ) ĊĠĠĠĠĠĠĠ Ġval Ġalias View Ġby Ġbind < TextView >( R . id . item Public Room Alias ) ĊĠĠĠĠĠĠĠ Ġval Ġtopic View Ġby Ġbind < TextView >( R . id . item Public Room Topic ) ĊĠĠĠĠĠĠĠ Ġval Ġcounter View Ġby Ġbind < TextView >( R . id . item Public Room Members Count ) ĊĊĠĠĠĠĠĠĠ Ġval Ġbutton State Ġby Ġbind < Button State View >( R . id . item Public Room Button State ) ĊĠĠĠ Ġ} Ċ } Ċ