package Ġcom . xy o ye . user _ component . ui . activities . register Ċ Ċ import Ġandroidx . databinding . Observable Field Ċ import Ġandroidx . lifecycle . Mutable LiveData Ċ import Ġandroidx . lifecycle . viewModel Scope Ċ import Ġcom . xy o ye . common _ component . base . Base ViewModel Ċ import Ġcom . xy o ye . common _ component . network . Ret rofit Module Ċ import Ġcom . xy o ye . common _ component . network . request . httpRequest Ċ import Ġcom . xy o ye . common _ component . utils . Security Helper Ċ import Ġcom . xy o ye . common _ component . utils . UserInfo Helper Ċ import Ġcom . xy o ye . common _ component . weight . Toast Center Ċ import Ġcom . xy o ye . data _ component . data . Login Data Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠRegister ViewModel Ġ@ Inject Ġconstructor ( ĊĠĠĠ Ġval ĠRet rofit : ĠRet rofit Module Ċ ) Ġ Ġ: ĠBase ViewModel () Ġ{ ĊĊĠĠĠ Ġval Ġaccount Field Ġ= ĠObservable Field < String >(" ") ĊĠĠĠ Ġval Ġemail Field Ġ= ĠObservable Field < String >(" ") ĊĠĠĠ Ġval Ġpassword Field Ġ= ĠObservable Field < String >(" ") ĊĠĠĠ Ġval Ġscreen Name Field Ġ= ĠObservable Field < String >(" ") ĊĊĠĠĠ Ġval Ġaccount Error LiveData Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġval Ġpassword Error LiveData Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġval Ġemail Error LiveData Ġ= ĠMutable LiveData < String >() ĊĠĠĠ Ġval Ġscreen Name Error LiveData Ġ= ĠMutable LiveData < String >() ĊĊĠĠĠ Ġval Ġregister LiveData Ġ= ĠMutable LiveData < Login Data >() ĊĊĠĠĠ Ġfun Ġregister () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġaccount Ġ= Ġaccount Field . get () ĊĠĠĠĠĠĠĠ Ġval Ġemail Ġ= Ġemail Field . get () ĊĠĠĠĠĠĠĠ Ġval Ġpassword Ġ= Ġpassword Field . get () ĊĠĠĠĠĠĠĠ Ġval Ġscreen Name Ġ= Ġscreen Name Field . get () ĊĊĠĠĠĠĠĠĠ Ġval Ġallow Register Ġ= Ġcheck Account ( account ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġcheck Password ( password ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġcheck Email ( email ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ&& Ġcheck Screen Name ( screen Name ) ĊĠĠĠĠĠĠĠ Ġif Ġ(! allow Register ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĊĊĠĠĠĠĠĠĠ ĠhttpRequest < Login Data >( viewModel Scope ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠonStart Ġ{ Ġshow Loading () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġapi Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval ĠappId Ġ= ĠSecurity Helper . getInstance (). appId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġunix Timestamp Ġ= ĠSystem . currentTimeMillis () Ġ/ Ġ 1 0 0 0 ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Info Ġ= ĠappId Ġ+ Ġemail Ġ+ Ġpassword Ġ+ Ġscreen Name Ġ+ Ġunix Timestamp Ġ+ Ġaccount ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġhash Ġ= ĠSecurity Helper . getInstance (). build Hash ( hash Info ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġparams Ġ= ĠHashMap < String , ĠString >() ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" appId "] Ġ= ĠappId ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" userName "] Ġ= Ġaccount !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" password "] Ġ= Ġpassword !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" email "] Ġ= Ġemail !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" screen Name "] Ġ= Ġscreen Name !! ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" unix Timestamp "] Ġ= Ġunix Timestamp . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġparams [" hash "] Ġ= Ġhash ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠRet rofit . service . register ( params ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠonSuccess Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( UserInfo Helper . login ( it )){ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Center . show Success (" æ³¨åĨĮ æĪĲåĬŁ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġregister LiveData . post Value ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast Center . show Error (" æ³¨åĨĮ éĶĻè¯¯ ï¼Į è¯· ç¨ į åĲİ åĨį è¯ķ ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠonError Ġ{ Ġshow Network Error ( it ) Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ ĠonComplete Ġ{ Ġhide Loading () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Account ( account : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( account . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Error LiveData . post Value (" è¯·è¾ĵåħ¥ å¸ Ĳ åı· ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( account . length Ġ< Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Error LiveData . post Value (" å¸ Ĳ åı· éķ¿åº¦ éľĢ ä¸º 5 - 2 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ(! account . matches ("^ [ a - zA - Z 0 - 9 ]+ $ ". to Regex ())) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Error LiveData . post Value (" å¸ Ĳ åı· ä»ħ æĶ¯æĮģ èĭ± æĸĩ åĴĮ æķ°åŃĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( account . first (). is Digit ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġaccount Error LiveData . post Value (" å¸ Ĳ åı· é¦ĸ ä½į ä¸įèĥ½ ä¸º æķ°åŃĹ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Password ( password : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( password . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Error LiveData . post Value (" è¯·è¾ĵåħ¥ å¯Ĩçłģ ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( password . length Ġ< Ġ 5 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Error LiveData . post Value (" å¯Ĩçłģ éķ¿åº¦ éľĢ ä¸º 5 - 2 0 ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Email ( email : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( email . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemail Error LiveData . post Value (" è¯·è¾ĵåħ¥ éĤ®ç®± ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Screen Name ( screen Name : ĠString ?): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( screen Name . isNull OrEmpty ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Name Error LiveData . post Value (" è¯·è¾ĵåħ¥ æĺ µ ç§° ") ĊĠĠĠĠĠĠĠĠĠĠĠ Ġreturn Ġfalse ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ }