package Ġnet . app tr onic . test . commons _ sample _ app . registration Ċ Ċ import Ġnet . app tr onic . core . commons . routing . inject Navigation Router Ċ import Ġnet . app tr onic . core . context . Context Ċ import Ġnet . app tr onic . core . context . Context ual Ċ import Ġnet . app tr onic . core . context . child Context Ċ import Ġnet . app tr onic . core . entity . commons . generic Event Ċ import Ġnet . app tr onic . core . entity . commons . null Value Ċ import Ġnet . app tr onic . core . entity . commons . set As Ċ import Ġnet . app tr onic . core . entity . commons . value Ċ import Ġnet . app tr onic . core . entity . extensions . forEach Change Any Of Ċ import Ġnet . app tr onic . core . entity . function .* Ċ import Ġnet . app tr onic . core . view model . ViewModel Ċ import Ġnet . app tr onic . test . commons _ sample _ app . Back To Login Ċ import Ġnet . app tr onic . test . commons _ sample _ app . app . HttpClient Descriptor Ċ import Ġnet . app tr onic . test . commons _ sample _ app . app . Platform Definition Ċ import Ġnet . app tr onic . test . commons _ sample _ app . app . Platform Descriptor Ċ import Ġnet . app tr onic . test . commons _ sample _ app . login . Registration Listener Ċ Ċ fun ĠContext ual . registration ViewModel ( listener : ĠRegistration Listener ) Ġ= ĊĠĠĠ ĠRegistration ViewModel ( child Context (), Ġlistener ) Ċ Ċ class ĠRegistration ViewModel Ġinternal Ġconstructor ( ĊĠĠĠ Ġcontext : ĠContext , Ġprivate Ġval Ġlistener : ĠRegistration Listener Ċ ) Ġ: ĠViewModel ( context ) Ġ{ ĊĊĠĠĠ Ġprivate Ġval ĠhttpClient Ġ= Ġinject ( HttpClient Descriptor ) ĊĠĠĠ Ġprivate Ġval Ġplatform Ġ= Ġinject ( Platform Descriptor ) ĊĠĠĠ Ġprivate Ġval Ġrouter Ġ= Ġinject Navigation Router () ĊĊĠĠĠ Ġval Ġemail Ġ= Ġvalue ("") ĊĠĠĠ Ġval Ġpassword Ġ= Ġvalue ("") ĊĠĠĠ Ġval Ġpassword Confirmation Ġ= Ġvalue ("") ĊĊĠĠĠ Ġprivate Ġval Ġconfirmed Password Ġ= Ġvalue < String ?> (). set As ( ĊĠĠĠĠĠĠĠ Ġwhenever ( password Ġis Equals To Ġpassword Confirmation ) Ġthen Ġ( password . to Nullable () Ġor Else Ġnull Value ()) ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġregister Button Enabled Ġ= ĊĠĠĠĠĠĠĠ Ġemail . isNotEmpty () Ġand Ġpassword . isNotEmpty () Ġand Ġpassword Confirmation . isNotEmpty () ĊĊĠĠĠ Ġval Ġshow Password s DoesNot Match Error Ġ= Ġvalue ( false ) ĊĊĠĠĠ Ġval Ġregister Button Click Event Ġ= Ġgeneric Event () ĊĊĠĠĠ Ġinit Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( platform Ġ== ĠPlatform Definition . Android ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// do Ġ 1 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġif Ġ( platform Ġ== ĠPlatform Definition . iOS ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ// do Ġ 2 ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠforEach Change Any Of ( password , Ġpassword Confirmation ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Password s DoesNot Match Error . set ( false ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġregister Button Click Event . subscribe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( confirmed Password . get OrNull () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlistener . on Registration Done ( email . get ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrouter . send Commands Sync ( Back To Login ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Password s DoesNot Match Error . set ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} Ċ Ċ }