package Ġeu . pe tr far uz el . bottom sheets Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġcom . google . android . material . bottom sheet . Bottom Sheet Dialog Fragment Ċ Ċ class ĠSingle Select Dialog Fragment Ġprivate Ġconstructor () Ġ: ĠBottom Sheet Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġtitle : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġoptions : ĠList < String > Ġ= ĠlistOf () ĊĠĠĠ Ġprivate Ġvar Ġselected Option Index : ĠInt Ġ= Ġ- 1 ĊĠĠĠ Ġprivate Ġvar Ġon Selected Listener : ĠOn Selected Listener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġitem Height Ġ= Ġ 4 8 . px ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġm Title : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġre cyclerView : ĠRecyclerView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġadapter : ĠSingle Select Dialog Adapter ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġroot Ġ= Ġinflater . inflate ( R . layout . dialog _ simple , Ġcontainer , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġm Title Ġ= Ġroot . findViewById ( R . id . dialog _ simple _ title ) ĊĠĠĠĠĠĠĠ Ġm Title . text Ġ= Ġtitle ĊĊĠĠĠĠĠĠĠ Ġre cyclerView Ġ= Ġroot . findViewById ( R . id . dialog _ simple _ recyclerview ) ĊĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager ( require Context (), ĠLinearLayoutManager . VERTICAL , Ġfalse ) ĊĊĠĠĠĠĠĠĠ Ġadapter Ġ= ĠSingle Select Dialog Adapter ( object Ġ: ĠSingle Select Dialog Adapter . On Status Changed Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Selected ( item : ĠPair < String , ĠInt >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġselected Option Index Ġ= Ġitem . second ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Selected Listener ?. on Selected ( item ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġadapter . swap Data ( options , Ġselected Option Index ) ĊĠĠĠĠĠĠĠ Ġadapter . setItem Height ( item Height ) ĊĊĠĠĠĠĠĠĠ Ġre cyclerView . adapter Ġ= Ġadapter ĊĊĠĠĠĠĠĠĠ Ġreturn Ġroot ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠsetData From Builder ( builder : ĠBuilder ) Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġbuilder . title ĊĠĠĠĠĠĠĠ Ġthis . options Ġ= Ġbuilder . options ĊĠĠĠĠĠĠĠ Ġthis . selected Option Index Ġ= Ġbuilder . selected Option Index ĊĠĠĠĠĠĠĠ Ġthis . on Selected Listener Ġ= Ġbuilder . on Selected Listener ĊĠĠĠĠĠĠĠ Ġthis . item Height Ġ= Ġbuilder . item Height Dp ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġclass ĠBuilder Ġ{ ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġtitle : ĠString Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġoptions : ĠList < String > Ġ= ĠlistOf () ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġselected Option Index : ĠInt Ġ= Ġ- 1 ĊĠĠĠĠĠĠĠ Ġinternal Ġvar Ġon Selected Listener : ĠOn Selected Listener ? Ġ= Ġnull ĊĠĠĠĠĠĠĠ Ġinternal Ġ Ġvar Ġitem Height Dp : ĠInt Ġ= Ġ 4 8 . px ĊĊĊĠĠĠĠĠĠĠ Ġfun Ġtitle ( title : ĠString ) Ġ= Ġapply Ġ{ Ġthis . title Ġ= Ġtitle Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġoptions ( options : ĠList < String >) Ġ= Ġapply Ġ{ Ġthis . options Ġ= Ġoptions Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġselected Option Index ( option Index : ĠInt ) Ġ= Ġapply Ġ{ Ġthis . selected Option Index Ġ= Ġoption Index Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġon Selected Listener ( listener : ĠOn Selected Listener ) Ġ= Ġapply Ġ{ Ġthis . on Selected Listener Ġ= Ġlistener Ġ} ĊĠĠĠĠĠĠĠ Ġfun Ġitem Height ( height In Dp : ĠInt ) Ġ= Ġapply Ġ{ Ġthis . item Height Dp Ġ= Ġheight In Dp . px Ġ} ĊĊĠĠĠĠĠĠĠ Ġfun Ġbuild () Ġ= ĠSingle Select Dialog Fragment (). apply Ġ{ ĠsetData From Builder ( this @ Builder ) Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġinterface ĠOn Selected Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfun Ġon Selected ( item : ĠPair < String , ĠInt >) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }