package Ġcom . github . c 0 rr 4 do . expansion layout Ċ Ċ class ĠExp ansion Layout Group Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ single Select : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠSpecifies Ġwhether Ġmore Ġthan Ġone Ġ[ Expansion Layout ] Ġattached Ġto Ġthis Ġgroup Ġmay Ġbe Ġexpanded Ġat Ġthe Ġsame Ġtime ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġvar Ġsingle Select : ĠBoolean ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ single Select ĊĠĠĠĠĠĠĠ Ġset ( value ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ single Select Ġ= Ġvalue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġ_ expansion Layouts Ġ= Ġmutable ListOf < Expansion Layout >() ĊĊĠĠĠ Ġprivate Ġval Ġexpanded Layouts : ĠList < Expansion Layout > ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġ_ expansion Layouts . filter Ġ{ Ġit . expanded Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAdds Ġthe Ġspecified Ġ[ Expansion Layout ] Ġto Ġthis Ġgroup ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġadd ( expansion Layout : ĠExp ansion Layout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( single Select Ġ&& Ġexpanded Layouts . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpansion Layout . collapse ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ_ expansion Layouts . add ( expansion Layout ) ĊĠĠĠĠĠĠĠ Ġexpansion Layout . attach To Group ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠRemoves Ġthe Ġspecified Ġ[ Expansion Layout ] Ġfrom Ġthis Ġgroup ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġremove ( expansion Layout : ĠExp ansion Layout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġexpansion Layout . detach From Group () ĊĠĠĠĠĠĠĠ Ġ_ expansion Layouts . remove ( expansion Layout ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* Ġ@ return ĠA Ġshallow Ġcopy Ġof Ġall Ġ[ Expansion Layout ] s Ġattached Ġto Ġthis Ġgroup ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġfun Ġget Expansion Layouts () Ġ= Ġ_ expansion Layouts . toSet () ĊĊĠĠĠ Ġinternal Ġfun Ġon Expansion Toggle ( expansion Layout : ĠExp ansion Layout , Ġexpanded : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( single Select Ġ&& Ġexpanded ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexpanded Layouts . forEach Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it Ġ!= Ġexpansion Layout ) Ġit . collapse () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }