package Ġde . end uni . monster l air . common . view . filter ch ips Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Attribute Set Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Ċ import Ġcom . google . android . material . chip . Chip Ċ import Ġcom . google . android . material . chip . Chip Drawable Ċ import Ġcom . google . android . material . chip . Chip Group Ċ import Ġde . end uni . monster l air . R Ċ import Ġde . end uni . monster l air . common . domain . Sort By Ċ import Ġde . end uni . monster l air . common . filter . Sort By Filter Store Ċ import Ġde . end uni . monster l air . common . getString Res Ċ import Ġde . end uni . monster l air . databinding . Bottom sheet Sort By Binding Ċ Ċ class ĠSort By Chip ( context : ĠContext , Ġattribute Set : ĠAttributeSet ?) Ġ: ĠCh ip ( context , Ġattribute Set ) Ġ{ ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . chip Icon Ġ= Ġcontext . get Drawable ( R . drawable . ic _ sort ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġsheet : ĠBottom Sheet ĊĊĠĠĠ Ġfun Ġsetup ( activity : ĠActivity , Ġfilter Store : ĠSort By Filter Store ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsheet Ġ= ĠBottom Sheet ( activity , Ġfilter Store ) ĊĠĠĠĠĠĠĠ Ġthis . setOnClickListener Ġ{ Ġsheet . show () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġupdate ( sortBy : ĠSort By ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsheet . update Sort By ( sortBy ) ĊĠĠĠĠĠĠĠ Ġtext Ġ= Ġcontext . getString ( sortBy . getString Res ()) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġclass ĠBottom Sheet ( activity : ĠActivity , Ġprivate Ġval Ġfilter Store : ĠSort By Filter Store ) Ġ: ĊĠĠĠĠĠĠĠ ĠBottom Sheet Dialog ( activity ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠBottom sheet Sort By Binding . inflate ( activity . layout Inflater , Ġnull , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sortBy Chips . build Sort By Chips () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġupdate Sort By ( sortBy : ĠSort By ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . sortBy Chips . build Sort By Chips ( sortBy ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġprivate Ġfun ĠCh ip Group . build Sort By Chips ( checked Sort By : ĠSort By Ġ= ĠSort By . NAME ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . is Single Selection Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . removeAll Views () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSort By . values (). forEach Ġ{ ĠsortBy Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchip Ġ= ĠCh ip ( this . context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġchip Drawable Ġ= ĠCh ip Drawable . createFrom Attributes ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . context , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . style . Widget _ Material Components _ Chip _ Choice ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchip . set Chip Drawable ( chip Drawable ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchip . text Ġ= Ġthis . context . getString ( sortBy . getString Res ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchip . isChecked Ġ= Ġchecked Sort By Ġ== ĠsortBy ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġchip . setOn Checked ChangeListener Ġ{ Ġ_, Ġis Checked Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( isChecked ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfilter Store . set Sort By ( sortBy ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . addView ( chip ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ }