package Ġvin ova . intern . nh om xn xx . mex plorer . dialogs Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . KeyEvent Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Dialog Fragment Ċ import Ġcom . andro gn ito . pattern lock view . Pattern Lock View Ċ import Ġcom . andro gn ito . pattern lock view . listener . Pattern Lock View Listener Ċ import Ġcom . andro gn ito . pattern lock view . utils . Pattern Lock Utils Ċ import Ġes . dm oral . toast y . Toast y Ċ import Ġvin ova . intern . nh om xn xx . mex plorer . R Ċ Ċ @ Suppress (" UN RE ACH ABLE _ CODE ", Ġ" UNUSED _ EXPRESSION ") Ċ class ĠPassword Dialog : Dialog Fragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġvar Ġm Listener : ĠPassword Dialog . Dialog Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġ@ Suppress Lint (" Inf late Params ", Ġ" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun ĠonCreate Dialog ( savedInstanceState : ĠBundle ?): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġdialog Ġ= ĠDialog ( context !! , Ġtheme ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfunc Ġ= Ġarguments ?. getInt ( Password Dialog . FUNC ) ĊĊĠĠĠĠĠĠĠ Ġval Ġpass Ġ= Ġarguments ?. getString ( Password Dialog . PASS ) ĊĊĠĠĠĠĠĠĠ Ġval Ġis Turn Off Ġ= Ġarguments ?. getBoolean ( Password Dialog . T URN ) ĊĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= ĠLayoutInflater . from ( activity ). inflate ( R . layout . lock _ dialog , Ġnull ) ĊĠĠĠĠĠĠĠ Ġdialog . set ContentView ( view ) ĊĠĠĠĠĠĠĠ Ġdialog . set Cancel able ( true ) ĊĊĠĠĠĠĠĠĠ Ġval Ġheader Ġ= Ġview . findViewById < TextView >( R . id . tv _ pass ) ĊĠĠĠĠĠĠĠ Ġval Ġpattern Lock View Ġ= Ġview . findViewById < Pattern Lock View >( R . id . pattern _ lock _ view ) ĊĠĠĠĠĠĠĠ Ġif Ġ( func Ġ!= Ġ 1 ) Ġheader . text Ġ= Ġ" Verify Ġpassword " ĊĊĠĠĠĠĠĠĠ Ġpattern Lock View . add Pattern Lock Listener ( object : Pattern Lock View Listener { ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress Lint (" Commit Pref Ed its ", Ġ" SetText I 1 8 n ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun ĠonComplete ( pattern : ĠMutable List < Pattern Lock View . Dot > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen ( func ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ// Ġcreate Ġpass ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠPassword Dialog . newInstance ( 2 , Pattern Lock Utils . pattern ToString ( pattern Lock View , pattern )). show ( fragment Manager ," fragment ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Lock View . clear Pattern () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pass Ġ== ĠPattern Lock Utils . pattern ToString ( pattern Lock View , pattern )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener ?. save Pass ( Ġpass ?. toByteArray ( Charsets . UTF _ 8 ) !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Lock View . clear Pattern () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Lock View . clear Pattern () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĠToast y . error ( it ," Not Ġmatch ", ĠToast . LENGTH _ SHORT ). show () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( pass Ġ== ĠPattern Lock Utils . pattern ToString ( pattern Lock View , pattern ) Ġ&& Ġ! is Turn Off !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Lock View . clear Pattern () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener ?. is Auth ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif ( pass Ġ== ĠPattern Lock Utils . pattern ToString ( pattern Lock View , pattern ) Ġ&& Ġis Turn Off !! ){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Lock View . clear Pattern () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener ?. turn Off () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpattern Lock View . clear Pattern () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontext ?. let Ġ{ ĠToast y . error ( it ," Not Ġmatch ", ĠToast . LENGTH _ SHORT ). show () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Cle ared () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Started () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Progress ( progress Pattern : ĠMutable List < Pattern Lock View . Dot > ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġdialog . setOn Key Listener Ġ{ Ġ_, Ġi , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( i Ġ== ĠKeyEvent . KEYCODE _ BACK ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( func Ġ== Ġ 1 Ġ|| Ġfunc Ġ== Ġ 2 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener ?. set Switch ( false ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġif Ġ( func Ġ== Ġ 3 Ġ&& Ġis Turn Off !! ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener ?. set Switch ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtrue ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġdialog . set Canceled On Touch Outside ( false ) ĊĠĠĠĠĠĠĠ Ġreturn Ġdialog ĊĠĠĠ Ġ} ĊĠĠĠ Ġinterface ĠDialog Listener Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġis Auth ( is Auth : ĠBoolean ) ĊĠĠĠĠĠĠĠ Ġfun Ġsave Pass ( pass : ĠByteArray ) ĊĠĠĠĠĠĠĠ Ġfun Ġturn Off () ĊĠĠĠĠĠĠĠ Ġfun Ġset Switch ( isChecked : ĠBoolean ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġactivity Ġas ĠDialog Listener ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠClass CastException ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthrow ĠClass CastException ( activity . toString () Ġ+ Ġ" Ġmust Ġimplement ĠDialog Listener ") ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ Ġm Listener Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfrag Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠFUNC Ġ= Ġ" func " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠPASS Ġ= Ġ" pass " ĊĠĠĠĠĠĠĠ Ġprivate Ġval ĠT URN Ġ= Ġ" turn " ĊĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance ( func : ĠInt , Ġpass : ĠString ?, Ġis Turn Off : Boolean Ġ= Ġfalse ): ĠPassword Dialog Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġfragment Ġ= ĠPassword Dialog () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠBundle () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Int ( FUNC , Ġfunc ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . putString ( PASS , Ġpass ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġargs . put Boolean ( T URN , Ġis Turn Off ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġfragment . arguments Ġ= Ġargs ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfragment ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ }