package Ġio . github . wy kop mob il ny . ui . dialogs Ċ Ċ import Ġandroid . app . AlertDialog Ċ import Ġandroid . content . Context Ċ import Ġio . github . a ak ira . n api er . N api er Ċ import Ġio . github . wy kop mob il ny . R Ċ import Ġio . github . wy kop mob il ny . api . error handler . W yk op Exception Parser Ċ import Ġio . github . wy kop mob il ny . base . Base Activity Ċ import Ġio . github . wy kop mob il ny . domain . error handling . Known Error Ċ import Ġio . github . wy kop mob il ny . ui . modules . tw of actor . Two Factor Authorization Activity Ċ import Ġok io . IOException Ċ import Ġjavax . net . ssl . SSL Exception Ċ Ċ fun ĠContext . show Exception Dialog ( throwable : ĠThrowable ) Ġ{ ĊĠĠĠ Ġif Ġ( this Ġis ĠBase Activity Ġ&& Ġis Running ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( throwable Ġis ĠKnown Error . Two Factor Authorization Required ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġthrowable Ġ= Ġthrowable , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Positive Ġ= ĠR . string . open _ 2 fa Ġto Ġ{ ĠstartActivity ( Two Factor Authorization Activity . create Intent ( this )) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġexception Dialog ( throwable Ġ= Ġthrowable ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. show () ĊĠĠĠ Ġ} ĊĠĠĠ Ġwhen Ġ( throwable ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis ĠKnown Error Ġ-> ĠN api er . i (" Known Ġerror ", Ġthrowable ) ĊĠĠĠĠĠĠĠ Ġis ĠSSL Exception Ġ-> ĠN api er . e (" SSL Ġerror ", Ġthrowable ) ĊĠĠĠĠĠĠĠ Ġis ĠIOException Ġ-> ĠN api er . w (" IO Ġerror ", Ġthrowable ) ĊĠĠĠĠĠĠĠ Ġelse Ġ-> ĠN api er . e (" Unknown Ġerror ", Ġthrowable ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ private Ġfun ĠContext . exception Dialog ( ĊĠĠĠ Ġthrowable : ĠThrowable , ĊĠĠĠ Ġon Positive : ĠPair < Int , Ġ() Ġ-> ĠUnit > Ġ= Ġandroid . R . string . ok Ġto Ġ{ Ġ}, Ċ ): ĠAlertDialog Ġ{ ĊĠĠĠ Ġval Ġmessage Ġ= Ġwhen Ġ{ ĊĠĠĠĠĠĠĠ Ġthrowable Ġis ĠW yk op Exception Parser . W yk op ApiException Ġ-> Ġ"${ throwable . message } Ġ(${ throwable . code })" ĊĠĠĠĠĠĠĠ Ġthrowable . message . isNull OrEmpty () Ġ-> Ġthrowable . toString () ĊĠĠĠĠĠĠĠ Ġelse Ġ-> Ġthrowable . message ĊĠĠĠ Ġ} ĊĠĠĠ Ġval Ġbuilder Ġ= ĠAlertDialog . Builder ( this ). apply Ġ{ ĊĠĠĠĠĠĠĠ ĠsetTitle ( context . getString ( R . string . error _ occ ured )) ĊĠĠĠĠĠĠĠ Ġset Message ( message ) ĊĠĠĠĠĠĠĠ Ġset Positive Button ( on Positive . first ) Ġ{ Ġ_, Ġ_ Ġ-> Ġon Positive . second () Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġbuilder . create () Ċ } Ċ