package Ġcom . quick blo x . sample . chat . kotlin . utils Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . util . Patterns Ċ import Ġandroid . widget . EditText Ċ import Ġcom . quick blo x . chat . model . QB Attachment Ċ import Ġcom . quick blo x . sample . chat . kotlin . R Ċ import Ġjava . util . regex . Pattern Ċ Ċ private Ġconst Ġval ĠMAX _ LOGIN _ LENGTH Ġ= Ġ 5 0 Ċ private Ġconst Ġval ĠMAX _ FULL NAME _ LENGTH Ġ= Ġ 2 0 Ċ private Ġconst Ġval ĠMIN _ DIALOG NAME _ LENGTH Ġ= Ġ 3 Ċ private Ġconst Ġval ĠMAX _ DIALOG NAME _ LENGTH Ġ= Ġ 2 0 Ċ Ċ private Ġfun Ġis Entered Text Valid ( context : ĠContext , Ġedit Text : ĠEditText , Ġres FieldName : ĠInt , ĠmaxLength : ĠInt , Ġcheck Login : ĠBoolean ): ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġis Correct Ġ= Ġfalse ĊĠĠĠ Ġval Ġpattern Login Ġ= ĠPattern . compile ("^ [ a - zA - Z ][ a - zA - Z 0 - 9 ]{ 2 ," Ġ+ Ġ( maxLength Ġ- Ġ 1 ) Ġ+ Ġ"} +$ ") ĊĠĠĠ Ġval Ġpattern Email Ġ= Ġ ĠPattern s . EMAIL _ ADDRESS ĊĠĠĠ Ġval Ġpattern Username Ġ= ĠPattern . compile ("^ [ a - zA - Z ][ a - zA - Z Ġ 0 - 9 ]{ 2 ," Ġ+ Ġ( maxLength Ġ- Ġ 1 ) Ġ+ Ġ"} +$ ") ĊĊĠĠĠ Ġif Ġ( check Login ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmatcher Login Ġ= Ġpattern Login . matcher ( edit Text . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' }) ĊĠĠĠĠĠĠĠ Ġval Ġmatcher Email Ġ= Ġpattern Email . matcher ( edit Text . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' }) ĊĠĠĠĠĠĠĠ Ġif Ġ( matcher Login . matches () Ġ|| Ġ( matcher Email . matches () Ġ&& Ġedit Text . text . toString (). trim (). length Ġ< ĠMAX _ LOGIN _ LENGTH )) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Correct Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġmatcher Username Ġ= Ġpattern Username . matcher ( edit Text . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ' }) ĊĠĠĠĠĠĠĠ Ġif Ġ( matcher Username . matches ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Correct Ġ= Ġtrue ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġis Correct Ċ } Ċ Ċ fun Ġis Login Valid ( context : ĠContext , Ġedit Text : ĠEditText ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Entered Text Valid ( context , Ġedit Text , ĠR . string . field _ name _ user _ login , ĠMAX _ LOGIN _ LENGTH , Ġtrue ) Ċ } Ċ Ċ fun Ġis FullName Valid ( context : ĠContext , Ġedit Text : ĠEditText ): ĠBoolean Ġ{ ĊĠĠĠ Ġreturn Ġis Entered Text Valid ( context , Ġedit Text , ĠR . string . field _ name _ user _ fullname , ĠMAX _ FULL NAME _ LENGTH , Ġfalse ) Ċ } Ċ Ċ fun Ġis Dialog Name Valid ( edit Text : ĠEditText ) Ġ: ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġis Correct Ġ= Ġfalse ĊĠĠĠ Ġval Ġstring Ġ= Ġedit Text . text . toString (). trim Ġ{ Ġit Ġ<= Ġ' Ġ'} ĊĠĠĠ Ġif Ġ( string . length Ġin ĠMIN _ DIALOG NAME _ LENGTH .. MAX _ DIALOG NAME _ LENGTH ) Ġ{ ĊĠĠĠĠĠĠĠ Ġis Correct Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġis Correct Ċ } Ċ Ċ fun Ġis Attachment Valid ( attachment : ĠQ B Attachment ?) Ġ: ĠBoolean Ġ{ ĊĠĠĠ Ġvar Ġresult Ġ= Ġfalse ĊĠĠĠ Ġif Ġ( attachment != Ġnull Ġ&& Ġ! attachment . name . isNull OrEmpty () Ġ&& Ġattachment . type . isNotEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠ Ġresult Ġ= Ġtrue ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġresult Ċ }