package Ġcom . ts iem ens . android script er . dialog Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġandroidx . appcompat . app . AlertDialog Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġcom . ts iem ens . android script er . R Ċ Ċ class ĠScript Edit Dialog : ĠDialog Fragment () Ġ{ ĊĠĠĠ Ġinterface ĠOn Ok Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Ok ( name : ĠString , Ġurl : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġdialog View : ĠView ĊĊĠĠĠ Ġvar Ġon Ok Listener : ĠOn Ok Listener ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġinitial Name : ĠString Ġ= Ġ"" ĊĠĠĠ Ġprivate Ġvar Ġinitial Url : ĠString Ġ= Ġ"" ĊĊĠĠĠ Ġfun Ġset Initial Vals ( name : ĠString , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġinitial Name Ġ= Ġname ĊĠĠĠĠĠĠĠ Ġinitial Url Ġ= Ġurl ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġactivity ?. let Ġ{ Ġfrag Activity Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( frag Activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġinflater Ġ= Ġrequire Activity (). layout Inflater ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setTitle (" New ĠScript ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠInf late Ġand Ġset Ġthe Ġlayout Ġfor Ġthe Ġdialog ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPass Ġnull Ġas Ġthe Ġparent Ġview Ġbecause Ġits Ġgoing Ġin Ġthe Ġdialog Ġlayout ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View Ġ= Ġinflater . inflate ( R . layout . dialog _ script _ edit , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . name _ et ). setText ( initial Name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog View . findViewById < EditText >( R . id . url _ et ). setText ( initial Url ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . setView ( dialog View ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// ĠPositive Ġclick Ġlistener Ġis Ġset ĠonStart Ġto Ġoverride Ġthe Ġdismiss Ġbehaviour ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . ok , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuilder . create () ĊĊĠĠĠĠĠĠĠ Ġ} Ġ?: Ġthrow ĠIllegalStateException (" Activity Ġcannot Ġbe Ġnull ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġval Ġd Ġ= Ġdialog Ġas ĠAlertDialog ĊĠĠĠĠĠĠĠ Ġd . get Button ( Dialog . BUTTON _ POSITIVE ). setOnClickListener Ġ{ Ġdo Ok () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġdo Ok () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġname Et Ġ= Ġdialog View . findViewById < EditText >( R . id . name _ et ) ĊĠĠĠĠĠĠĠ Ġval Ġurl Et Ġ= Ġdialog View . findViewById < EditText >( R . id . url _ et ) ĊĊĠĠĠĠĠĠĠ Ġvar ĠsetError Ġ= Ġfalse ĊĠĠĠĠĠĠĠ Ġif Ġ( name Et . text . toString (). trim (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Et . error Ġ= Ġ" Name Ġmust Ġnot Ġbe Ġempty " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetError Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( url Et . text . toString (). trim (). isEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl Et . error Ġ= Ġ" URL Ġmust Ġnot Ġbe Ġempty " ĊĠĠĠĠĠĠĠĠĠĠĠ ĠsetError Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! setError ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Ok Listener ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . on Ok ( name Et . text . toString (), Ġurl Et . text . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog ?. dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }