package Ġcom . gest ib ank . application . fragments . sign ĊĊ Ċ import Ġandroid . content . Context Ċ import Ġandroid . os . Bundle Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . Toast Ċ import Ġandroidx . fragment . app . Fragment Transaction Ċ Ċ import Ġcom . gest ib ank . application . R Ċ import Ġcom . gest ib ank . application . api . API Service Ċ import Ġcom . gest ib ank . application . fragments . users . admin . Admin Fragment Ċ import Ġcom . gest ib ank . application . fragments . users . client . Client Fragment Ċ import Ġcom . gest ib ank . application . models . User Model Ċ import Ġcom . google . gson . Gson Ċ import Ġkotlinx . android . synt hetic . main . activity _ sign _ up .* Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ /** Ċ Ġ* ĠAccounts Fragment Ċ Ġ*/ Ċ Ċ class ĠSign Up Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . activity _ sign _ up , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġbtn _ sign _ up . setOnClickListener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġuser Model Ġ= ĠUser Model ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ pre nom . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ email . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ phone . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" CLIENT ", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ name . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġedit _ pwd . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ" 1 0 0 0 " ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSign Up ( user Model ) ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġreplace Fragment ( fragment : ĠFragment ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġfragment Transaction : ĠFragment Transaction Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. support FragmentManager ?. beginTransaction () !! ĊĠĠĠĠĠĠĠ Ġfragment Transaction . add ( R . id . main _ nav _ host , Ġfragment ) ĊĠĠĠĠĠĠĠ Ġfragment Transaction . addTo Back Stack ( null ) ĊĠĠĠĠĠĠĠ Ġfragment Transaction . commit Allow ing State Loss () ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġprivate Ġfun ĠSign Up ( ĊĠĠĠĠĠĠĠ Ġuser Model : ĠUser Model ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠgetClient Service Ġ= ĠAPI Service . getClient Service () ĊĊĠĠĠĠĠĠĠ Ġval Ġcall : ĠCall < User Model > Ġ= ĠgetClient Service !!. sign Up Client ( user Model ) ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < User Model ?> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < User Model ?> ?, Ġresponse : ĠResponse < User Model ?> ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response !!. body () Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response . is Successful ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġshared Pref Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity ?. get Preferences ( Context . MODE _ PRIVATE ) Ġ?: Ġreturn ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgson Ġ= ĠGson () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġjson User Ġ= Ġgson . toJson ( user Model ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( shared Pref . edit ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġput String ( getString ( R . string . session ), Ġjson User ). apply () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( user Model . role Ġ== Ġ" CLIENT ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Fragment ( Client Fragment ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġif Ġ( user Model . role Ġ== Ġ" ADMIN ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreplace Fragment ( Admin Fragment ()) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < User Model ? >, Ġt : ĠThrowable ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( activity , Ġ" Email Ġor ĠPassword Ġincorrect ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠ Ġ} ĊĊ Ċ } ĊĊ