package Ġru . rs . admin app . ui Ċ Ċ import Ġandroid . app . Dialog Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . DialogInterface Ċ import Ġandroid . preference . Preference Manager Ċ import Ġandroid . support . v 7 . app . AlertDialog Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . EditText Ċ Ċ import Ġru . rs . admin app .* Ċ import Ġru . rs . admin app . utils . PASSWORD Ċ import Ġru . rs . admin app . utils . PASSWORD _ DEFAULT _ VAL Ċ import Ġru . rs . admin app . utils . get 2 5 6 Sha Ċ import Ġru . rs . admin app . utils . show Long Toast Ċ Ċ /** Ċ Ġ* ĠFor Ġcreating Ġpassword Ġalert Ġdialog Ċ Ġ* Ċ Ġ* ĠCreated Ġby ĠArt em ĠBot ne v Ġon Ġ 0 8 / 2 4 / 2 0 1 8 Ċ Ġ*/ Ċ class ĠPassword Dialog ( private Ġval Ġcontext : ĠContext , Ġprivate Ġval Ġattempt Enable : ĠBoolean ) Ġ{ ĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠMIN _ PASSWORD _ LENGTH Ġ= Ġ 5 ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġresol vable Ġ= Ġcontext Ġas ĠRes olvable ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġroot : ĠView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġpassword View : ĠEditText ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġconfirm View : ĠEditText ĊĊĠĠĠ Ġfun Ġshow Password Dialog ( is Registration : ĠBoolean ): ĠDialog Ġ{ ĊĠĠĠĠĠĠĠ Ġ// Ġget Ġroot Ġview ĊĠĠĠĠĠĠĠ Ġroot Ġ= ĠLayoutInflater . from ( context ). inflate ( R . layout . password _ dialog , Ġnull ) ĊĠĠĠĠĠĠĠ Ġpassword View Ġ= Ġroot . findViewById ( R . id . password ) ĊĠĠĠĠĠĠĠ Ġconfirm View Ġ= Ġroot . findViewById ( R . id . confirm _ password ) ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! is Registration ) Ġconfirm View . visibility Ġ= ĠView . GONE ĊĊĠĠĠĠĠĠĠ Ġval Ġpassword Dialog Ġ= ĠAlertDialog . Builder ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setTitle ( if Ġ( is Registration ) ĠR . string . create _ password Ġelse ĠR . string . enter _ password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. setView ( root ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Positive Button ( android . R . string . ok , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. set Negative Button ( android . R . string . cancel , Ġnull ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĊĠĠĠĠĠĠĠ Ġpassword Dialog . setOn Show Listener Ġ{ Ġdialog Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġbutton Ġ= Ġ( dialog Ġas ĠAlertDialog ). get Button ( AlertDialog . BUTTON _ POSITIVE ) ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Registration ) Ġset Password ( dialog ) Ġelse Ġcheck Password ( dialog ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġpassword Dialog ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Password ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( password View . text . length Ġ< ĠMIN _ PASSWORD _ LENGTH ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Long Toast ( context , ĠR . string . short _ password ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( password View . text . contains (" Ġ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Long Toast ( context , ĠR . string . password _ space ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( password View . text . toString () Ġ!= Ġconfirm View . text . toString ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Long Toast ( context , ĠR . string . password _ confirm _ mismatch ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Long Toast ( context , ĠR . string . password _ set _ success ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. edit () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. putString ( PASSWORD , Ġget 2 5 6 Sha ( password View . text . toString ())) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. apply () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġresol vable . do Change ( attempt Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Password ( dialog : ĠDialog Interface ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= ĠPreference Manager . getDefault SharedPreferences ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. getString ( PASSWORD , ĠPASSWORD _ DEFAULT _ VAL ) ĊĠĠĠĠĠĠĠ Ġval Ġinput Password Sha Ġ= Ġget 2 5 6 Sha ( password View . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġif Ġ( password View . text . toString () Ġ== ĠPASSWORD _ DEFAULT _ VAL Ġ|| Ġinput Password Sha Ġ!= Ġpassword ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Long Toast ( context , ĠR . string . wrong _ password ) ĊĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġresol vable . do Change ( attempt Enable ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdialog . dismiss () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠAllows Ġchange Ġsm th Ġprotected Ġby Ġpassword ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġinternal Ġinterface ĠRes olvable Ġ{ ĊĠĠĠĠĠĠĠ Ġ/** ĊĠĠĠĠĠĠĠĠ Ġ* Ġchange Ġsm th Ġif Ġpassword Ġis Ġright ĊĠĠĠĠĠĠĠĠ Ġ* ĊĠĠĠĠĠĠĠĠ Ġ* Ġ@ param Ġenable Ġ- Ġaction Ġis Ġenabling Ġor Ġdisabling ĊĠĠĠĠĠĠĠĠ Ġ*/ ĊĠĠĠĠĠĠĠ Ġfun Ġdo Change ( enable : ĠBoolean ) ĊĠĠĠ Ġ} Ċ }