package Ġcom . use less code works . card ify . views Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . Input Filter Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġcom . use less code works . card ify . R Ċ import Ġcom . use less code works . card ify . databinding . Box Dialog Binding Ċ Ċ class ĠAdd Box Dialog ( private Ġval Ġfragment : ĠFragment ) Ġ: ĠDialog Fragment () Ġ{ ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġlistener : ĠAdd Box Dialog Listener ĊĊĠĠĠ Ġinterface ĠAdd Box Dialog Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Add Box Click ( box Name : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġlistener Ġ= Ġfragment Ġas ĠAdd Box Dialog Listener ĊĠĠĠĠĠĠĠ Ġreturn Ġactivity ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġrequire Activity (). layout Inflater ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbinding Ġ= ĠData Binding Util . inflate < Box Dialog Binding >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġinflater , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . layout . box _ dialog , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . Box Name . filters Ġ+= ĠInput Filter . Length Filter ( 3 0 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setView ( binding . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . add Fab . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . Box Name . text . isNotBlank ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Add Box Click ( binding . Box Name . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . cancel Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. cancel () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . create () ĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠIllegalStateException (" Activity Ġcannot Ġbe Ġnull ") ĊĠĠĠ Ġ} Ċ } Ċ