package Ġru . har on code . word learn . common . ui Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . WindowManager Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġkotlinx . android . synt hetic . main . layout _ input _ text _ dialog .* Ċ import Ġru . har on code . word learn . common . R Ċ import Ġru . har on code . word learn . common . extension . args Ċ Ċ /** Ċ Ġ* Ġ@ author ĠHar on Code . ĠDate Ġ 1 2 . 0 6 . 2 0 1 9 . Ċ Ġ*/ Ċ class ĠInput Text Dialog Fragment Ġ: ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġstart Tag : ĠString Ġby Ġargs () ĊĠĠĠ Ġprivate Ġvar Ġtitle : ĠString Ġby Ġargs () ĊĠĠĠ Ġprivate Ġvar Ġpositive Text : ĠString Ġby Ġargs () ĊĠĠĠ Ġprivate Ġvar Ġnegative Text : ĠString Ġby Ġargs () ĊĊĠĠĠ Ġprivate Ġval Ġclick Listener ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġparent Fragment Ġis ĠOn ClickListener Ġ-> Ġparent Fragment Ġas ĠOn ClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Ġis ĠOn ClickListener Ġ-> Ġactivity Ġas ĠOn ClickListener ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġobject Ġ: ĠOn ClickListener Ġ{} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Inf late Params ") ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. inflate ( R . layout . layout _ input _ text _ dialog , Ġnull ) ĊĊĠĠĠĠĠĠĠ Ġreturn ĠAlertDialog . Builder ( require Context ()). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetTitle ( getString ( R . string . create _ category _ title )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset View ( view ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Positive Button ( positive Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetUp Negative Button ( negative Text ) ĊĠĠĠĠĠĠĠ Ġ}. create () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Cancel ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Cancel ( dialog ) ĊĠĠĠĠĠĠĠ Ġclick Listener . input Dialog Canceled ( start Tag ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġrequire Dialog (). input Text . request Focus () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġdialog ?. window ?. set Soft Input Mode ( WindowManager . LayoutParams . SOFT _ INPUT _ STATE _ VISIBLE ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĊĠĠĠĠĠĠĠ Ġfun Ġcreate ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtitle : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpositive : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnegative : ĠString Ġ= Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtag : ĠString Ġ= Ġ" message _ dialog " ĊĠĠĠĠĠĠĠ Ġ) Ġ= ĠInput Text Dialog Fragment (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . title Ġ= Ġtitle ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . start Tag Ġ= Ġtag ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . positive Text Ġ= Ġpositive ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . negative Text Ġ= Ġnegative ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġinterface ĠOn ClickListener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġinput Dialog Text Accepted ( tag : ĠString , Ġtext : ĠString ) Ġ{} ĊĠĠĠĠĠĠĠ Ġfun Ġinput Dialog Canceled ( tag : ĠString ) Ġ{} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAlertDialog . Builder . setUp Positive Button ( positive Text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Button Ġ= Ġif Ġ( positive Text . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpositive Text ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . action _ ok ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġset Positive Button ( text Button ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġstring Ġ= Ġrequire Dialog (). input Text . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( string . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener . input Dialog Text Accepted ( start Tag , Ġstring ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Allow ing State Loss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠAlertDialog . Builder . setUp Negative Button ( negative Text : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( negative Text . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġset Negative Button ( negative Text ) Ġ{ Ġ_, Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdismiss Allow ing State Loss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġclick Listener . input Dialog Canceled ( start Tag ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ