package Ġcom . may ar af elix . tip calculator . view Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . tele com . Call Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . may ar af elix . tip calculator . R Ċ Ċ class ĠSave Dialog Fragment : ĠDialog Fragment () Ġ{ ĊĊĠĠĠ Ġinterface ĠCallback Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġon Save Tip ( name : ĠString ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġvar Ġsave Tip Callback : ĠCallback ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġsave Tip Callback Ġ= Ġcontext Ġas ? ĠCallback Ġ// ĠCast Ġsafe ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġsave Tip Callback Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġsave Dialog Ġ= Ġcontext ?. let Ġ{ ctx Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġedit Text Ġ= ĠEditText ( ctx ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . id Ġ= Ġview Id ĊĠĠĠĠĠĠĠĠĠĠĠ Ġedit Text . hint Ġ= Ġcontext ?. getString ( R . string . save _ hint ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠAlertDialog . Builder ( ctx ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( edit Text ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( R . string . action _ cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( R . string . action _ save ) Ġ{ Ġ_, Ġ_ Ġ-> Ġon Save ( edit Text )} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsave Dialog !! ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Id Ġ= ĠView . generate View Id () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġon Save ( edit Text : ĠEditText ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġtext Ġ= Ġedit Text . text ĊĠĠĠĠĠĠĠ Ġif Ġ( text . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsave Tip Callback ?. on Save Tip ( text . toString ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ