package Ġsk . vin isoft . for mex ample Ċ Ċ import Ġandroid . os . AsyncTask Ċ import Ġandroidx . core . widget . add TextChanged Listener Ċ import Ġkotlinx . android . synt hetic . main . activity _ common _ ui .* Ċ import Ġjava . util .* ĊĊ Ċ class ĠNon Reactive Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġtimer : ĠTimer ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġasync Task : ĠIs Email Free Task ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ Ġsearch Input . add TextChanged Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Timer () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Task () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtimer Ġ= ĠTimer (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsearched Ġ= Ġit . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġschedule ( object Ġ: ĠTimer Task () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġrun () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcancel Task () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġasync Task Ġ= ĠIs Email Free Task (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġexecute ( sear ched ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}, ĠDEL AY ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcancel Task () Ġ{ ĊĠĠĠĠĠĠĠ Ġasync Task ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel ( true ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcancel Timer () Ġ{ ĊĠĠĠĠĠĠĠ Ġtimer ?. apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcancel () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġcancel Task () ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġinner Ġclass ĠIs Email Free Task Ġ: ĠAsync Task < String , ĠVoid , ĠInput Validation ?> () Ġ{ ĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġdo In Background ( var arg Ġparams : ĠString ?): ĠInput Validation ? Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġparams [ 0 ]?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠInput Validation ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Validation Service . is Email Valid ( it ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Registration Service . is Email Free ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Post Execute ( result : ĠInput Validation ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsuper . on Post Execute ( result ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresult ?. let Ġ{ Ġhandle Result ( it ) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ } Ċ