package Ġcom . k rypt kode . farm z . screens . edit far mer . edit id Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . k rypt kode . farm z . R Ċ import Ġcom . k rypt kode . farm z . app . logger . Logger Ċ import Ġcom . k rypt kode . farm z . app . utils . Toast Helper Ċ import Ġcom . k rypt kode . farm z . app . utils . date . Displayed Date Formatter Ċ import Ġcom . k rypt kode . farm z . app . utils . li ved ata . extension . observe Event Ċ import Ġcom . k rypt kode . farm z . data return . Screen Data Return Buffer Ċ import Ġcom . k rypt kode . farm z . navigation . home . Home Navigator Ċ import Ġcom . k rypt kode . farm z . screens . common . View Factory Ċ import Ġcom . k rypt kode . farm z . screens . common . dialog . Dialog EventBus Ċ import Ġcom . k rypt kode . farm z . screens . common . fragment . Base Fragment Ċ import Ġcom . k rypt kode . farm z . screens . dated ialog . Date Selected Event Ċ import Ġcom . k rypt kode . farm z . screens . edit far mer . Edit Far mer ViewModel Ċ import Ġcom . k rypt kode . farm z . screens . edit far mer . edit id . view . Edit Id View Ċ import Ġcom . k rypt kode . farm z . screens . edit far mer . edit personal details . Edit Personal Details Fragment Args Ċ import Ġcom . k rypt kode . farm z . screens . farm ers . model . Far mer View Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠEdit Id Fragment Ġ: ĠBase Fragment (), ĠEdit Id View . Listener , ĠDialog EventBus . Listener Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġlogger : ĠLogger ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġtoast Helper : ĠToast Helper ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġhome Navigator : ĠHome Navigator ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġview Factory : ĠView Factory ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġvalidator : ĠId Validator ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġdialog EventBus : ĠDialog EventBus ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġdisplayed Date Formatter : ĠDisplay ed Date Formatter ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġscreen Data Return Buffer : ĠScreen Data Return Buffer ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Provider . Factory ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠEdit Far mer ViewModel Ġby Ġview Models Ġ{ ĠviewModel Factory Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġargs Ġby Ġnav Args < Edit Personal Details Fragment Args >() ĊĊĊĠĠĠ Ġprivate Ġvar Ġfar mer View : ĠFar mer View ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġview Mvc : ĠEdit Id View ĊĊĠĠĠ Ġprivate Ġvar Ġlast Selected Date Type : ĠString ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ Ġcontroller Component . inject ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġlast Selected Date Type Ġ= ĠsavedInstanceState ?. getString ( SELECTED _ DATE _ KEY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġview Mvc Ġ= Ġview Factory . get Edit Id View ( container ) ĊĠĠĠĠĠĠĠ Ġinit IdType Data () ĊĠĠĠĠĠĠĠ Ġsetup Observer s () ĊĠĠĠĠĠĠĠ ĠviewModel . get Far mer ( args . far mer Id ) ĊĠĠĠĠĠĠĠ Ġreturn Ġview Mvc . root View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit IdType Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġg enders Ġ= Ġresources . getString Array ( R . array . data _ id _ types ). toList () ĊĠĠĠĠĠĠĠ Ġview Mvc . bind IdType Items ( g enders ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ Ġview Mvc . register Listener ( this ) ĊĠĠĠĠĠĠĠ Ġdialog EventBus . register Listener ( this ) ĊĠĠĠĠĠĠĠ Ġcheck If Id Was Updated () ĊĠĠĠĠĠĠĠ Ġcheck If Fingerprint Was Updated () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck If Id Was Updated () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= ĠgetId Photo Return Key () ĊĠĠĠĠĠĠĠ Ġif Ġ( screen Data Return Buffer . has Data For Token ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Photo Uri Ġ= Ġscreen Data Return Buffer . getValue < String >( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . d (" New Ġphoto : Ġ$ new Photo Uri ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Photo Uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfar mer View ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfar mer View Ġ= Ġit . copy ( id Image Ġ= Ġnew Photo Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Passport ( far mer View !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . bind Id Photo ( new Photo Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Data Return Buffer . remove Value ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . d (" updating Ġphoto ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast Helper . showMessage ( getString ( R . string . update _ image _ error _ msg )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck If Fingerprint Was Updated () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġkey Ġ= Ġget F inger Print Photo Return Key () ĊĠĠĠĠĠĠĠ Ġif Ġ( screen Data Return Buffer . has Data For Token ( key )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġnew Photo Uri Ġ= Ġscreen Data Return Buffer . getValue < String >( key ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . d (" New Ġphoto : Ġ$ new Photo Uri ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( new Photo Uri Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfar mer View ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfar mer View Ġ= Ġit . copy ( fingerprint Ġ= Ġnew Photo Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . update Passport ( far mer View !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . bind F inger Print Photo ( new Photo Uri ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Data Return Buffer . remove Value ( key ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlogger . d (" updating Ġphoto ...") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast Helper . showMessage ( getString ( R . string . update _ image _ error _ msg )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsetup Observer s () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġvalidator . id TypeError . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . show Id TypeError ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvalidator . id Number Error . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . show Id Number Error ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvalidator . expiry Date Error . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . show Id Expiry Date Error ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvalidator . iss ued Date Error . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . show Id Issue Date Error ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvalidator . reg Number Error . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . show Reg Num Error ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġvalidator . b vn Error . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . show B vn Error ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . show Loading . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . show Loading () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . hide Loading . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . hide Loading () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . goTo Next . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhome Navigator . navigate Up () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . show ErrorMessage . observe Event ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtoast Helper . showMessage ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . far mer . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfar mer View Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġview Mvc . bind Far mer ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save InstanceState ( out State : ĠBundle ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Save InstanceState ( out State ) ĊĠĠĠĠĠĠĠ Ġout State . putString ( SELECTED _ DATE _ KEY , Ġlast Selected Date Type ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ Ġview Mvc . unregister Listener ( this ) ĊĠĠĠĠĠĠĠ Ġdialog EventBus . unregister Listener ( this ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonChange Id Pic () Ġ{ ĊĠĠĠĠĠĠĠ Ġfar mer View ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhome Navigator . to Image Viewer ( it . id Image , ĠgetId Photo Return Key ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonChange F inger Print Pic () Ġ{ ĊĠĠĠĠĠĠĠ Ġfar mer View ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġhome Navigator . to Image Viewer ( it . fingerprint , Ġget F inger Print Photo Return Key ()) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Choose Expiry Date ( date : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Selected Date Type Ġ= ĠEX PI RY _ DATE ĊĠĠĠĠĠĠĠ Ġhome Navigator . to DatePicker ( display ed Date Formatter . parse Displayed Date ( date )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Choose Issue Date ( date : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ Ġlast Selected Date Type Ġ= ĠISS UE _ DATE ĊĠĠĠĠĠĠĠ Ġhome Navigator . to DatePicker ( display ed Date Formatter . parse Displayed Date ( date )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Save ( far mer : ĠFar mer View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġview Mvc . clear Errors () ĊĠĠĠĠĠĠĠ Ġif Ġ( validator . validate Personal Details ( far mer )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . save ( far mer ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Click () Ġ{ ĊĠĠĠĠĠĠĠ Ġhome Navigator . navigate Up () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Dialog Event ( event : ĠAny ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġwhen Ġ( event ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis ĠDate Selected Event Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġdate Ġ= Ġevent . date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( last Selected Date Type ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠISS UE _ DATE Ġ-> Ġview Mvc . on Issue Date Selected ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplayed Date Formatter . format To Displayed Date ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠEX PI RY _ DATE Ġ-> Ġview Mvc . on Expiry Date Selected ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdisplayed Date Formatter . format To Displayed Date ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdate ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlast Selected Date Type Ġ= Ġnull ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġget F inger Print Photo Return Key (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjava Class . name . plus ( F ING ER PRINT _ PH OTO _ RETURN _ KEY ) ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠgetId Photo Return Key (): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġjava Class . name . plus ( ID _ PH OTO _ RETURN _ KEY ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠID _ PH OTO _ RETURN _ KEY Ġ= Ġ" ID _ PH OTO _ RETURN _ KEY " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠF ING ER PRINT _ PH OTO _ RETURN _ KEY Ġ= Ġ" F ING ER PRINT _ PH OTO _ RETURN _ KEY " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠISS UE _ DATE Ġ= Ġ" ISSUE _ DATE " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠEX PI RY _ DATE Ġ= Ġ" EXPI RY _ DATE " ĊĠĠĠĠĠĠĠ Ġprivate Ġconst Ġval ĠSELECT ED _ DATE _ KEY Ġ= Ġ" SELECTED _ DATE _ KEY " ĊĠĠĠ Ġ} Ċ Ċ }