package Ġcom . k rypt kode . farm z . screens . edit far mer . edit contact details Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Patterns Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġcom . k rypt kode . farm z . R Ċ import Ġcom . k rypt kode . farm z . app . utils . li ved ata . event . Event Ċ import Ġcom . k rypt kode . farm z . app . utils . li ved ata . extension . as LiveData Ċ import Ġcom . k rypt kode . farm z . screens . farm ers . model . Far mer View Ċ import Ġjavax . inject . Inject Ċ Ċ /** Ċ Ġ* ĠCreated Ġby Ġk rypt kode Ġon Ġ 1 1 / 2 4 / 2 0 1 9 . Ċ Ġ*/ Ċ class ĠContact Details Validator Ġ@ Inject Ġconstructor ( private Ġval Ġcontext : ĠContext ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġmutable Mobile Error Ġ= ĠMutable LiveData < Event < String >>() ĊĠĠĠ Ġval Ġmobile Number Error Ġ= Ġmutable Mobile Error . as LiveData () ĊĊĠĠĠ Ġprivate Ġval Ġmutable Email Error Ġ= ĠMutable LiveData < Event < String >>() ĊĠĠĠ Ġval Ġemail Address Error Ġ= Ġmutable Email Error . as LiveData () ĊĊĊĠĠĠ Ġfun Ġvalidate Contact ( far mer View : ĠFar mer View ): ĠBoolean Ġ{ Ċ // ĠĠĠĠĠĠĠ ĠHack Ġto Ġensure Ġall Ġfields Ġare Ġvalidated Ġat Ġonce ĊĠĠĠĠĠĠĠ Ġvar Ġresult Ġ= Ġvalidate Contact ( far mer View . mobile Number , Ġmutable Mobile Error ) ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġvalidate Email ( far mer View . email Address , Ġmutable Email Error ) Ġ|| Ġresult ĊĊĠĠĠĠĠĠĠ Ġreturn Ġresult Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Contact ( far mer View . mobile Number , Ġmutable Mobile Error ) Ġ&& ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvalidate Email ( far mer View . email Address , Ġmutable Email Error ) ĊĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Contact ( ĊĠĠĠĠĠĠĠ Ġname : ĠString ?, ĊĠĠĠĠĠĠĠ Ġname Error : ĠMutable LiveData < Event < String >> ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( name . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġname Error . post Value ( Event ( context . getString ( R . string . details _ mobile _ number _ required _ message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġvalidate Email ( ĊĠĠĠĠĠĠĠ Ġemail : ĠString ?, ĊĠĠĠĠĠĠĠ Ġemail Error : ĠMutable LiveData < Event < String >> ĊĠĠĠ Ġ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( email . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Error . post Value ( Event ( context . getString ( R . string . details _ email _ address _ required _ message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ(! Patterns . EMAIL _ ADDRESS . matcher ( email ). matches ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Error . post Value ( Event ( context . getString ( R . string . validation _ valid _ email _ required _ message ))) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ } Ċ