package Ġcom . t izio In cognito . bottom single cho ic em enu Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . support . annotation . Drawable Res Ċ import Ġandroid . support . annotation . String Res Ċ import Ġandroid . support . design . widget . Bottom Sheet Dialog Fragment Ċ import Ġandroid . support . v 4 . app . FragmentManager Ċ import Ġandroid . support . v 7 . app . AppCompatActivity Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . LinearLayout Ċ import Ġandroid . widget . TextView Ċ Ċ import Ġjava . util . Vector Ċ Ċ class ĠSingle Choice Bottom Sheet Menu Ġ: ĠBottom Sheet Dialog Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġtitle : ĠString ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġsub Title : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ String Res Ġprivate Ġvar Ġtitle Res : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġ@ String Res Ġprivate Ġvar Ġsub Title Res : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġmenu Items Ġ= ĠVector < MenuItem >() ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠMenuItem (@ param : Drawable Res Ġ@ field : Drawable Res Ġvar Ġicon : ĠInt , Ġvar Ġtitle : ĠString , Ġvar Ġsub Title : ĠString ?, Ġvar ĠonClick Listener : Ġ() Ġ-> ĠUnit ) ĊĊĠĠĠ Ġfun Ġadd MenuItem ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Drawable Res Ġicon : ĠInt , Ġtitle : ĠString , Ġsub Title : ĠString ?, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon MenuItem ClickListener : () Ġ-> ĠUnit ): ĠSingle Choice Bottom Sheet Menu Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmenu Item Ġ= ĠMenuItem ( icon , Ġtitle , Ġsub Title , Ġon MenuItem ClickListener ) ĊĠĠĠĠĠĠĠ Ġmenu Items . add ( menuItem ) ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Menu Title ( title : ĠString ): ĠSingle Choice Bottom Sheet Menu Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Menu Title (@ String Res Ġtitle Res : ĠInt ): ĠSingle Choice Bottom Sheet Menu Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . title Res Ġ= Ġtitle Res ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Menu Sub Title ( sub Title : ĠString ): ĠSingle Choice Bottom Sheet Menu Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . sub Title Ġ= Ġsub Title ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġset Menu Sub Title (@ String Res Ġsub Title Res : ĠInt ): ĠSingle Choice Bottom Sheet Menu Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . sub Title Res Ġ= Ġsub Title Res ĊĠĠĠĠĠĠĠ Ġreturn Ġthis ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġfun Ġshow ( app Compat Activity : ĠAppCompatActivity ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . show ( app Compat Activity . support FragmentManager , Ġ" TAG ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcontent View Ġ= ĠView . inflate ( context , ĠR . layout . fragment _ list _ bottom _ sheet , Ġnull ) ĊĠĠĠĠĠĠĠ Ġval Ġitem List Ġ= Ġcontent View . findViewById < LinearLayout >( R . id . item List ) ĊĠĠĠĠĠĠĠ Ġfill Layout ( item List ) ĊĊĠĠĠĠĠĠĠ Ġreturn Ġcontent View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfill Layout ( item List : ĠLinearLayout ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtitle Menu Ġ= Ġitem List . findViewById < TextView >( R . id . title Menu ) ĊĠĠĠĠĠĠĠ Ġif Ġ( title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Menu . text Ġ= Ġtitle ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( title Res Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Menu . setText ( title Res !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Menu . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġval Ġsub Title Menu Ġ= Ġitem List . findViewById < TextView >( R . id . sub Title Menu ) ĊĠĠĠĠĠĠĠ Ġif Ġ( sub Title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsub Title Menu . text Ġ= Ġsub Title ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( sub Title Res Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Title Menu . setText ( sub Title Res !! ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Title Menu . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġfor Ġ( menuItem Ġin Ġmenu Items ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠitemView Ġ= ĠLayoutInflater . from ( item List . context ). inflate ( R . layout . list _ item , Ġitem List , Ġfalse ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġicon Ġ= ĠitemView . findViewById < ImageView >( R . id . icon ListItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġicon . setImage Resource ( menuItem . icon ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġtitle Ġ= ĠitemView . findViewById < TextView >( R . id . title ListItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġmenu Item . title ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsub Title Ġ= ĠitemView . findViewById < TextView >( R . id . sub Title ListItem ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( menuItem . sub Title Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Title . text Ġ= Ġmenu Item . sub Title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsub Title . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemView . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmenu Item . on ClickListener . invoke () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem List . addView ( item View ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate (): ĠSingle Choice Bottom Sheet Menu Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġinstance ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġprivate Ġval Ġinstance : ĠSingle Choice Bottom Sheet Menu ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfrag Ġ= ĠSingle Choice Bottom Sheet Menu () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfrag . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfrag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }