/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠSh rey as ĠPat il Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ Ċ package Ġdev . sh rey as pat il . not y . simple app . view . register Ċ Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . core . widget . add TextChanged Listener Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġdev . sh rey as pat il . not y . simple app . R Ċ import Ġdev . sh rey as pat il . not y . simple app . databinding . Register Fragment Binding Ċ import Ġdev . sh rey as pat il . not y . simple app . view . base . Base Fragment Ċ import Ġdev . sh rey as pat il . not y . simple app . view . h ilt Not y Main Nav Graph ViewModels Ċ import Ġdev . sh rey as pat il . not y . utils . ext . setError Ċ import Ġdev . sh rey as pat il . not y . utils . ext . toString OrEmpty Ċ import Ġdev . sh rey as pat il . not y . view . state . Register State Ċ import Ġdev . sh rey as pat il . not y . view . view model . Register ViewModel Ċ Ċ @ Android EntryPoint Ċ class ĠRegister Fragment Ġ: ĠBase Fragment < Register Fragment Binding , ĠRegister State , ĠRegister ViewModel >() Ġ{ ĊĊĠĠĠ Ġoverride Ġval ĠviewModel : ĠRegister ViewModel Ġby Ġh ilt Not y Main Nav Graph ViewModels () ĊĊĠĠĠ Ġoverride Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbutton Register . setOnClickListener Ġ{ ĠviewModel . register () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġback Button . setOnClickListener Ġ{ Ġnavigate Up () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Login Button . setOnClickListener Ġ{ Ġnavigate Up () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field Username . edit Text ?. add TextChanged Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Username ( it . toString OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field Password . edit Text ?. add TextChanged Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Password ( it . toString OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtext Field Confirm Password . edit Text ?. add TextChanged Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . set Confirm Password ( it . toString OrEmpty ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġrender ( state : ĠRegister State ) Ġ{ ĊĠĠĠĠĠĠĠ Ġshow Progress Dialog ( state . isLoading ) ĊĊĠĠĠĠĠĠĠ Ġbinding . textField Username . setError ( state . isValid Username Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . message _ field _ username _ invalid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . textField Password . setError ( state . isValid Password Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . message _ field _ password _ invalid ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġbinding . textField Confirm Password . setError ( state . isValid Confirm Password Ġ== Ġfalse ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . message _ password _ mis matched ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġif Ġ( state . is LoggedIn ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġnavigate To Notes Screen () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval ĠerrorMessage Ġ= Ġstate . error ĊĠĠĠĠĠĠĠ Ġif Ġ( errorMessage Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġshow Error Dialog ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle Ġ= ĠgetString ( R . string . dialog _ title _ signup _ failed ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmessage Ġ= ĠerrorMessage ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate To Notes Screen () Ġ{ ĊĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ register Fragment _ to _ notes Fragment ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġnavigate Up () Ġ= Ġfind Nav Controller (). navigate Up () ĊĊĠĠĠ Ġoverride Ġfun Ġget View Binding ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ? ĊĠĠĠ Ġ) Ġ= ĠRegister Fragment Binding . inflate ( in flater , Ġcontainer , Ġfalse ) Ċ } Ċ