package Ġcom . em er chan tp ay . gateway . genesis android . api . ui Ċ Ċ import Ġandroid . app . Activity Ċ import Ġandroid . content . Intent Ċ import Ġandroid . graphics . Bitmap Ċ import Ġandroid . net . http . Ssl Error Ċ import Ġandroid . view . View Ċ import Ġandroid . webkit . Ssl ErrorHandler Ċ import Ġandroid . webkit . WebView Ċ import Ġandroid . webkit . WebView Client Ċ import Ġandroid . widget . ProgressBar Ċ Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . constants . Error Messages Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . constants . Intent Extras Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . constants . URL Constants Ċ import Ġcom . em er chan tp ay . gateway . genesis android . api . models . Genesis Error Ċ Ċ open Ġclass ĠGen esis WebView Client ( // ĠWebView ĠActivity ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠwebView Activity : ĠGen esis WebView Activity , Ġ// ĠProgress ĠBar ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠprogressBar : ĠProgress Bar ) Ġ: ĠWebView Client () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Started ( view : ĠWebView , Ġurl : ĠString , Ġicon : ĠBitmap ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Page Started ( view , Ġurl , Ġicon ) ĊĊĠĠĠĠĠĠĠ Ġ// ĠShow ĠProgress Ġbar ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġ// ĠDestroy Ġweb view Ġactivity ĊĠĠĠĠĠĠĠ Ġval Ġreturn Intent Ġ= ĠIntent () ĊĠĠĠĠĠĠĠ Ġvar ĠresultCode : ĠInt ? Ġ= Ġnull ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . contains ( URL Constants . FAILURE _ ENDPOINT ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Intent . putExtra ( Intent Extras . EXTRA _ RESULT , Ġ" failure ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠresultCode Ġ= ĠActivity . RESULT _ OK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . contains ( URL Constants . CANCEL _ ENDPOINT ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Intent . putExtra (" cancel ", Ġ" cancel ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠresultCode Ġ= ĠActivity . RESULT _ C ANCE LED ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġurl . contains ( URL Constants . SUCCESS _ ENDPOINT ) Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Intent . putExtra (" success ", Ġ" success ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠresultCode Ġ= ĠActivity . RESULT _ OK ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠresultCode Ġ!= Ġnull Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠresultCode ?. let Ġ{ ĠwebView Activity . set Result ( it , Ġreturn Intent ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstop Loading () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Page Finished ( view : ĠWebView , Ġurl : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Page Finished ( view , Ġurl ) ĊĠĠĠĠĠĠĠ Ġview . title ?. let Ġ{ ĠwebView Activity . set ActionBar Title ( it ) Ġ} ĊĊĠĠĠĠĠĠĠ Ġ// ĠDis miss ĠProgress Ġbar ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Received Error ( view : ĠWebView , ĠerrorCode : ĠInt , Ġdescription : ĠString , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfailing Url : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish Activity ( view , ĠerrorCode , Ġdescription ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Received Ssl Error ( view : ĠWebView , Ġhandler : ĠS sl ErrorHandler , Ġerror : ĠS sl Error ) Ġ{ ĊĠĠĠĠĠĠĠ Ġhandler . cancel () ĊĠĠĠĠĠĠĠ Ġfinish Activity ( view , Ġerror . primary Error , ĠError Messages . SSL _ ERROR ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġstop Loading () Ġ{ ĊĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠ ĠwebView Activity . finish () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġfinish Activity ( view : ĠWebView , ĠerrorCode : ĠInt , Ġdescription : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview . stop Loading () ĊĠĠĠĠĠĠĠ ĠwebView Activity . finish With Result ( Genesis Error ( errorCode , Ġdescription )) ĊĠĠĠ Ġ} Ċ } Ċ