package Ġfi . t uni . sin ipel to . step counter Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ Ċ // ĠClass Ġfor Ġcreating Ġyes - no , Ġneutral , Ġor Ġnon - interactive Ġdialog Ġpromp ts Ġto Ġthe Ġuser . Ċ // ĠAllows Ġfor Ġeither Ġaccept - only Ġor Ġboth Ġaccept / deny Ġdialog s Ġwith Ġcaller - provided Ġaction Ġcallbacks Ċ // ĠIf Ġno Ġlistener Ġis Ġprovided Ġfor Ġthe Ġinput Ġ( null ), Ġthe Ġdialog Ġis Ġsimply Ġclosed Ġwhen Ġthe Ġaction Ġis Ġcalled . Ċ class ĠUser Prompt ( ĊĊĠĠĠ Ġctx : ĠContext , ĊĠĠĠ Ġprivate Ġval Ġtitle : ĠString , ĊĠĠĠ Ġprivate Ġval Ġmessage : ĠString , ĊĠĠĠ Ġprivate Ġval Ġaccept Value : ĠString ?, ĊĠĠĠ Ġprivate Ġval Ġaccept Callback : ĠDialog Interface . OnClickListener ?, ĊĠĠĠ Ġprivate Ġval Ġdeny Value : ĠString ?, ĊĠĠĠ Ġprivate Ġval Ġdeny Callback : ĠDialog Interface . OnClickListener ?, ĊĠĠĠ Ġprivate Ġval Ġdismiss Callback : ĠDialog Interface . On Dismiss Listener ? Ċ Ċ ) Ġ: ĠAlertDialog . Builder ( ctx ) Ġ{ ĊĊĠĠĠ Ġ// ĠSet Ġcancell ability Ġbased Ġon Ġthe Ġdialog Ġden ial Ġvalue . ĠIf Ġno Ġsuch Ġprovided , Ġcannot Ġcancel ĊĠĠĠ Ġoverride Ġfun Ġset Cancel able ( cancel able : ĠBoolean ): ĠAlertDialog . Builder Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . set Cancel able (! deny Value . isNull Or Blank ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ// ĠCreate Ġthe Ġdialog Ġdisplay . ĠShow ing Ġthe Ġdialog Ġis Ġleft Ġon Ġcaller Ġresponsibility ĊĠĠĠ Ġ// ĠCall Ġ. show () Ġto Ġshow Ġthe Ġdialog ĊĠĠĠ Ġoverride Ġfun Ġcreate (): ĠAlertDialog ? Ġ{ ĊĠĠĠĠĠĠĠ Ġthis . setTitle ( title ) ĊĠĠĠĠĠĠĠ Ġthis . setMessage ( message ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠBoth Ġactions Ġ( accept / deny ) Ġdefined ĊĠĠĠĠĠĠĠ Ġif Ġ( accept Value Ġ!= Ġnull Ġ&& Ġdeny Value Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Positive Button ( accept Value , Ġaccept Callback ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Negative Button ( deny Value , Ġdeny Callback ) Ġ// Ġdeny Callback Ġalso ĠNULL ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// ĠOnly Ġsingle Ġaction Ġdefined Ġ( accept ) ĊĠĠĠĠĠĠĠ Ġelse Ġif Ġ( deny Value Ġ== Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . set Neutral Button ( accept Value , Ġaccept Callback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ// Ġelse : Ġno Ġactions Ġdefined Ġ-> Ġmust Ġdefine Ġdismiss Callback Ġto Ġclose Ġthe Ġdialog ĊĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthis . setOn Dismiss Listener ( dismiss Callback ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . create () ĊĠĠĠ Ġ} Ċ Ċ }