/* Ċ Ġ* Ġ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 Ċ Ċ import Ġandroidx . annotation . String Res Ċ import Ġcom . air bnb . mv rx . Async Ċ import Ġcom . air bnb . mv rx . Mv Rx State Ċ import Ġcom . air bnb . mv rx . Un initialized Ċ import Ġim . vector . matrix . android . api . session . room . model . Room Summary Ċ import Ġim . vector . ri ot x . R Ċ Ċ data Ġclass ĠRoom ListView State ( ĊĠĠĠĠĠĠĠ Ġval ĠdisplayMode : ĠRoom List Fragment . DisplayMode , ĊĠĠĠĠĠĠĠ Ġval Ġasync Rooms : ĠAsync < List < Room Summary >> Ġ= ĠUn initialized , ĊĠĠĠĠĠĠĠ Ġval Ġasync Filtered Rooms : ĠAsync < Room Sum maries > Ġ= ĠUn initialized , ĊĠĠĠĠĠĠĠ Ġ// ĠList Ġof Ġroom Ids Ġthat Ġthe Ġuser Ġwants Ġto Ġjoin ĊĠĠĠĠĠĠĠ Ġval Ġjoining Rooms Ids : ĠSet < String > Ġ= Ġempty Set (), ĊĠĠĠĠĠĠĠ Ġ// ĠList Ġof Ġroom Ids Ġthat Ġthe Ġuser Ġwants Ġto Ġjoin , Ġbut Ġan Ġerror Ġoccurred ĊĠĠĠĠĠĠĠ Ġval Ġjoining Error Rooms Ids : ĠSet < String > Ġ= Ġempty Set (), ĊĠĠĠĠĠĠĠ Ġ// ĠList Ġof Ġroom Ids Ġthat Ġthe Ġuser Ġwants Ġto Ġjoin ĊĠĠĠĠĠĠĠ Ġval Ġreject ing Rooms Ids : ĠSet < String > Ġ= Ġempty Set (), ĊĠĠĠĠĠĠĠ Ġ// ĠList Ġof Ġroom Ids Ġthat Ġthe Ġuser Ġwants Ġto Ġreject , Ġbut Ġan Ġerror Ġoccurred ĊĠĠĠĠĠĠĠ Ġval Ġreject ing Error Rooms Ids : ĠSet < String > Ġ= Ġempty Set (), ĊĠĠĠĠĠĠĠ Ġval Ġis Invite Expanded : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġval Ġis F avour ite Rooms Expanded : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġval Ġis Direct Rooms Expanded : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġval Ġis Group Rooms Expanded : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġval Ġis Low Priority Rooms Expanded : ĠBoolean Ġ= Ġtrue , ĊĠĠĠĠĠĠĠ Ġval Ġis Server Notice Rooms Expanded : ĠBoolean Ġ= Ġtrue Ċ ) Ġ: ĠM v Rx State Ġ{ ĊĊĠĠĠ Ġconstructor ( args : ĠRoom List Params ) Ġ: Ġthis ( displayMode Ġ= Ġargs . displayMode ) ĊĊĠĠĠ Ġfun Ġis Category Expanded ( room Category : ĠRoom Category ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( room Category ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . INV ITE ĠĠĠĠĠĠĠ Ġ-> Ġis Invite Expanded ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . FA VO UR ITE ĠĠĠĠ Ġ-> Ġis F avour ite Rooms Expanded ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . DIRECT ĠĠĠĠĠĠĠ Ġ-> Ġis Direct Rooms Expanded ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . GROUP ĠĠĠĠĠĠĠĠ Ġ-> Ġis Group Rooms Expanded ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . LOW _ PRIORITY Ġ Ġ-> Ġis Low Priority Rooms Expanded ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . SERVER _ NOTICE Ġ-> Ġis Server Notice Rooms Expanded ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġtoggle ( room Category : ĠRoom Category ): ĠRoom ListView State Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwhen Ġ( room Category ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . INV ITE ĠĠĠĠĠĠĠ Ġ-> Ġcopy ( is Invite Expanded Ġ= Ġ! is Invite Expanded ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . FA VO UR ITE ĠĠĠĠ Ġ-> Ġcopy ( is F avour ite Rooms Expanded Ġ= Ġ! is F avour ite Rooms Expanded ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . DIRECT ĠĠĠĠĠĠĠ Ġ-> Ġcopy ( is Direct Rooms Expanded Ġ= Ġ! is Direct Rooms Expanded ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . GROUP ĠĠĠĠĠĠĠĠ Ġ-> Ġcopy ( is Group Rooms Expanded Ġ= Ġ! is Group Rooms Expanded ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . LOW _ PRIORITY Ġ Ġ-> Ġcopy ( is Low Priority Rooms Expanded Ġ= Ġ! is Low Priority Rooms Expanded ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠRoom Category . SERVER _ NOTICE Ġ-> Ġcopy ( is Server Notice Rooms Expanded Ġ= Ġ! is Server Notice Rooms Expanded ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ Ċ type alias ĠRoom Sum maries Ġ= ĠLinkedHashMap < Room Category , ĠList < Room Summary >> Ċ Ċ enum Ġclass ĠRoom Category (@ String Res Ġval Ġtitle Res : ĠInt ) Ġ{ ĊĠĠĠ ĠIN V ITE ( R . string . inv itations _ header ), ĊĠĠĠ ĠF AV O UR ITE ( R . string . bottom _ action _ fav our ites ), ĊĠĠĠ ĠDIRECT ( R . string . bottom _ action _ people ), ĊĠĠĠ ĠGROUP ( R . string . bottom _ action _ rooms ), ĊĠĠĠ ĠLOW _ PRIORITY ( R . string . low _ priority _ header ), ĊĠĠĠ ĠSERVER _ NOTICE ( R . string . system _ alerts _ header ) Ċ } Ċ Ċ fun ĠRoom Sum maries ?. isNull OrEmpty (): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġthis Ġ== Ġnull Ġ|| Ġthis . values . flatten (). isEmpty () Ċ }