package Ġcom . re vol gen x . an ilib . common . ui . dialog Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroidx . appcompat . view . Context Theme Wrapper Ċ import Ġandroidx . core . content . res . Resources Compat Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . Fragment Activity Ċ import Ġandroidx . preference . Preference Fragment Compat Ċ import Ġandroidx . view binding . View Binding Ċ import Ġcom . pr an av pan de y . android . dynamic . support . dialog . Dynamic Dialog Ċ import Ġcom . pr an av pan de y . android . dynamic . support . dialog . fragment . Dynamic Dialog Fragment Ċ import Ġcom . pr an av pan de y . android . dynamic . support . widget . Dynamic Button Ċ import Ġcom . re vol gen x . an ilib . R ĊĊ Ċ type alias ĠOn Show Listener Ġ= Ġ(( dialog : ĠDynamic Dialog , ĠsavedInstanceState : ĠBundle ?) Ġ-> ĠUnit )? Ċ type alias ĠOn Button Clicked Listener Ġ= Ġ(( dialog Interface : ĠDialog Interface , Ġwhich : ĠInt ) Ġ-> ĠUnit )? Ċ Ċ abstract Ġclass ĠBase Dialog Fragment < V Ġ: ĠView Binding > Ġ: ĠDynamic Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġprotected Ġopen Ġval Ġtitle Res : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġopen Ġval Ġpositive Text : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġopen Ġval Ġnegative Text : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġopen Ġval Ġneutral Text : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġopen Ġvar Ġmessage Text : ĠInt ? Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġopen Ġval Ġis Auto Dismiss Enabled Ġ= Ġfalse ĊĠĠĠ Ġprotected Ġopen Ġval Ġdismiss On Touch Outside Ġ= Ġtrue ĊĊĠĠĠ Ġprotected Ġvar Ġpositive Button : ĠButton ? Ġ= Ġnull ĊĠĠĠ Ġprotected Ġvar Ġtitle TextView : TextView ? Ġ= Ġnull ĊĊĠĠĠ Ġcompanion Ġobject { ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠDialog Fragment Tag Ġ= Ġ" Dialog Fragment Tag " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠV ? Ġ= Ġnull ĊĠĠĠ Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĊĠĠĠ Ġvar Ġon Show Listener : ĠOn Show Listener Ġ= Ġnull ĊĠĠĠ Ġvar Ġon Button Clicked Listener : ĠOn Button Clicked Listener Ġ= Ġnull ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Positive Clicked ( dialog Interface : ĠDialog Interface , Ġwhich : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Button Clicked Listener ?. invoke ( dialog Interface , Ġwhich ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Negative Clicked ( dialog Interface : ĠDialog Interface , Ġwhich : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Button Clicked Listener ?. invoke ( dialog Interface , Ġwhich ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Neutral Clicked ( dialog Interface : ĠDialog Interface , Ġwhich : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Button Clicked Listener ?. invoke ( dialog Interface , Ġwhich ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġopen Ġfun Ġon Show Listener ( alert Dialog : ĠDynamic Dialog , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġon Show Listener ?. invoke ( alert Dialog , ĠsavedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprotected Ġabstract Ġfun Ġbind View (): ĠV ? ĊĊĠĠĠ Ġoverride Ġfun Ġon Custom ise Builder ( ĊĠĠĠĠĠĠĠ Ġdialog Builder : ĠDynamic Dialog . Builder , ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠDynamic Dialog . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( dialog Builder ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Res ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġbind View () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ_ binding ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset View ( it . root ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Text ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Message ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Text ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Positive Button ( it ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Positive Clicked ( dialog , Ġwhich ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġnegative Text ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative Button ( it ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Negative Clicked ( dialog , Ġwhich ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġneutral Text ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġset Neutral Button ( it ) Ġ{ Ġdialog , Ġwhich Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Neutral Clicked ( dialog , Ġwhich ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Auto Dismiss Ġ= Ġis Auto Dismiss Enabled ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder ( dialog Builder , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Custom ise Builder ( dialog Builder , ĠsavedInstanceState ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ// use Ġfor Ġfurther Ġbuilding ĊĠĠĠ Ġprotected Ġopen Ġfun Ġbuilder ( ĊĠĠĠĠĠĠĠ Ġdialog Builder : ĠDynamic Dialog . Builder , ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ){} ĊĊĊĠĠĠ Ġprotected Ġval Ġprovide LayoutInflater : ĠLayoutInflater Ġget () = ĠLayoutInflater . from ( require Context ()) ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Custom ise Dialog ( ĊĠĠĠĠĠĠĠ Ġalert Dialog : ĠDynamic Dialog , ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠDynamic Dialog Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( alert Dialog ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset On Show Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( this @ Base Dialog Fragment . context Ġ== Ġnull ) Ġreturn @ setOn Show Listener ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Canceled On Touch Outside ( dismiss On Touch Outside ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfindViewById < TextView >( com . pr an av pan de y . android . dynamic . support . R . id . alert Title )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle TextView Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . type face Ġ= ĠResources Compat . getFont ( require Context (), ĠR . font . rub ik _ medium ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Button ( AlertDialog . BUTTON _ POSITIVE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Button Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠDynamic Button ). is All Caps Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Button ( AlertDialog . BUTTON _ NEGATIVE )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠDynamic Button ). is All Caps Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġget Button ( AlertDialog . BUTTON _ NE UT R AL )?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ( it Ġas ĠDynamic Button ). is All Caps Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Show Listener ( alert Dialog , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Custom ise Dialog ( alert Dialog , ĠsavedInstanceState ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĊĊĠĠĠ Ġ/** ĠShow Ġthe Ġbottom Ġsheet . Ġ*/ ĊĠĠĠ Ġfun Ġshow ( ctx : Context ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( ctx ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFragment Activity Ġ-> Ġshow ( ctx . support FragmentManager , ĠDialog Fragment Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠAppCompatActivity Ġ-> Ġshow ( ctx . support FragmentManager , ĠDialog Fragment Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠFragment Ġ-> Ġshow ( ctx . child FragmentManager , ĠDialog Fragment Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠPreference Fragment Compat Ġ-> Ġshow ( ctx . child FragmentManager , ĠDialog Fragment Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠContext Theme Wrapper Ġ-> Ġshow ( ctx . base Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġis Ġandroid . view . Context Theme Wrapper Ġ-> Ġshow ( ctx . base Context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrow ĠIllegalStateException (" Context Ġhas Ġno Ġwindow Ġattached .") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }