/* Ċ Ġ* Ġ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 . ri ot x . features . home . room . list . widget Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġandroidx . constraint layout . motion . widget . Motion Layout Ċ import Ġandroidx . core . view . isVisible Ċ import Ġcom . google . android . material . floating action button . Floating ActionButton Ċ import Ġim . vector . ri ot x . R Ċ import Ġim . vector . ri ot x . features . themes . Theme Utils Ċ import Ġkotlinx . android . synt hetic . main . motion _ fab _ menu _ merge . view .* Ċ Ċ class ĠF ab Menu View Ġ@ Jvm Over loads Ġconstructor ( context : ĠContext , Ġattrs : ĠAttributeSet ? Ġ= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdef Style Attr : ĠInt Ġ= Ġ 0 ) Ġ: ĠMotion Layout ( context , Ġattrs , Ġdef Style Attr ) Ġ{ ĊĊĠĠĠ Ġvar Ġlistener : ĠListener ? Ġ= Ġnull ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġinf late ( context , ĠR . layout . motion _ fab _ menu _ merge , Ġthis ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Finish Inf late () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Finish Inf late () ĊĊĠĠĠĠĠĠĠ Ġ// ĠT int Ġlabel Ġbackground ĊĠĠĠĠĠĠĠ ĠlistOf ( create Room Item Chat Label , Ġcreate Room ItemGroup Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setBackground Resource ( Theme Utils . getResource Id ( context , ĠR . drawable . vector _ label _ background _ light )) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠlistOf ( create Room Item Chat , Ġcreate Room Item Chat Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Fab Menu () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. create Direct Chat () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠlistOf ( create Room ItemGroup , Ġcreate Room ItemGroup Label ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclose Fab Menu () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener ?. open Room Directory () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcreate Room Touch Guard . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Fab Menu () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransition ToEnd () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . transition ToEnd () ĊĊĠĠĠĠĠĠĠ Ġcreate Room Button . content Description Ġ= Ġcontext . getString ( R . string . a 1 1 y _ create _ menu _ close ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġtransition To Start () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . transition To Start () ĊĊĠĠĠĠĠĠĠ Ġcreate Room Button . content Description Ġ= Ġcontext . getString ( R . string . a 1 1 y _ create _ menu _ open ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġshow () Ġ{ ĊĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġcreate Room Button . show () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġhide () Ġ{ ĊĠĠĠĠĠĠĠ Ġcreate Room Button . hide ( object Ġ: ĠFloating ActionButton . On Visibility Changed Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Hidden ( fab : ĠFloating ActionButton ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Hidden ( fab ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġclose Fab Menu () Ġ{ ĊĠĠĠĠĠĠĠ Ġtransition To Start () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġon Back Pressed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( currentState Ġ== ĠR . id . constraint _ set _ fab _ menu _ open ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġclose Fab Menu () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġcreate Direct Chat () ĊĠĠĠĠĠĠĠ Ġfun Ġopen Room Directory ( initial Filter : ĠString Ġ= Ġ"") ĊĠĠĠ Ġ} Ċ } Ċ