package Ġcom . root strap . android . ui . activity . main Ċ Ċ import Ġandroid . content . Intent Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġcom . root strap . android . R Ċ import Ġcom . root strap . android . databinding . Activity SignUp Binding Ċ import Ġcom . root strap . android . metrics . Analytics Ċ import Ġcom . root strap . android . metrics . Page Events Ċ import Ġcom . root strap . android . metrics . VISIT _ SIGN _ UP Ċ import Ġcom . root strap . android . network . models . User Ċ import Ġcom . root strap . android . ui . base . Base Activity Ċ import Ġcom . root strap . android . ui . view . Auth View Ċ import Ġcom . root strap . android . util . Network State Ċ import Ġcom . root strap . android . util . extensions . value Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ Ċ @ Android EntryPoint Ċ class ĠSign Up Activity Ġ: ĠBase Activity (), ĠAuth View Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠSign Up Activity ViewModel Ġby Ġview Models () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity SignUp Binding ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠActivity SignUp Binding . inflate ( layout Inflater ) ĊĊĠĠĠĠĠĠĠ ĠsetContentView ( binding . root ) ĊĠĠĠĠĠĠĠ ĠAnalytics . track ( Page Events . visit ( VISIT _ SIGN _ UP )) ĊĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign Up Button . setOnClickListener Ġ{ Ġsign Up () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġsign In TextView . setOnClickListener Ġ{ Ġsign In () Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġlifecycle . add Observer ( viewModel ) ĊĠĠĠĠĠĠĠ Ġset Observer s () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġshow Profile () Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity Clear Task ( Profile Activity ()) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsign In () Ġ{ ĊĠĠĠĠĠĠĠ ĠstartActivity ( Intent ( this , ĠSign In Activity :: class . java )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsign Up () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġuser Ġ= ĠUser ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġemail Ġ= Ġemail EditText . value (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Ġ= ĠfirstName EditText . value (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Ġ= ĠlastName EditText . value (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġpassword Ġ= Ġpassword EditText . value () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . sign Up ( user ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset Observer s () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel . state . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSign Up State . sign Up Failure Ġ-> Ġshow Error ( viewModel . error ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSign Up State . sign Up Success Ġ-> Ġshow Profile () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ ĠviewModel . network State . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork State . loading Ġ-> Ġshow Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠNetwork State . idle Ġ-> Ġhide Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġshow Error ( viewModel . error Ġ?: ĠgetString ( R . string . default _ error )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ } Ċ