package Ġcom . faf ad iate ch . news cout . activity Ċ Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . SharedPreferences Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . Button Ċ import Ġandroid . widget . EditText Ċ import Ġandroid . widget . TextView Ċ import Ġandroid . widget . Toast Ċ import Ġcom . faf ad iate ch . news cout . R Ċ import Ġcom . faf ad iate ch . news cout . api . ApiClient Ċ import Ġcom . faf ad iate ch . news cout . api . Api Interface Ċ import Ġcom . faf ad iate ch . news cout . app constants . App Constant Ċ import Ġcom . faf ad iate ch . news cout . custom component . Base AlertDialog Ċ import Ġcom . faf ad iate ch . news cout . model . SignUp Error Data Ċ import Ġcom . faf ad iate ch . news cout . model . SignUp Message Data Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠSign Up Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġlateinit Ġvar ĠfirstName : ĠEditText ĊĠĠĠ Ġlateinit Ġvar ĠlastName : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġuser Email : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġuser Pass Word : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġre type Password : ĠEditText ĊĠĠĠ Ġlateinit Ġvar Ġbtn Register : ĠButton ĊĠĠĠ Ġlateinit Ġvar ĠfirstName Text : ĠString ĊĠĠĠ Ġlateinit Ġvar ĠlastName Text : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġuser Email Text : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġuser Password Text : ĠString ĊĠĠĠ Ġlateinit Ġvar Ġapi Interface SignUp : ĠApi Interface ĊĠĠĠ Ġvar Ġstatus : ĠInt ? Ġ= Ġnull ĊĠĠĠ Ġlateinit Ġvar Ġtheme Preference : ĠSharedPreferences ĊĠĠĠ Ġvar Ġis Network : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġtheme Preference Ġ= Ġget SharedPreferences ( App Constant . APP PRE F , ĠContext . MODE _ PRIVATE ) ĊĠĠĠĠĠĠĠ Ġvar Ġthemes : ĠInt Ġ= Ġtheme Preference . getInt (" theme ", ĠR . style . Default Medium ) ĊĠĠĠĠĠĠĠ Ġthis . set Theme ( themes ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ sign _ up ) ĊĠĠĠĠĠĠĠ Ġvar Ġtoolbar Text Ġ= ĠfindViewById < TextView >( R . id . toolbar _ title ) ĊĠĠĠĠĠĠĠ Ġapi Interface SignUp Ġ= ĠApi Client . getClient (). create ( Api Interface :: class . java ) ĊĠĠĠĠĠĠĠ Ġval Ġlogin Ġ= ĠfindViewById < TextView >( R . id . txt _ already _ member ) ĊĠĠĠĠĠĠĠ Ġlogin . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( this , ĠSign In Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠfirstName Ġ= ĠfindViewById ( R . id . ed _ first _ name ) ĊĠĠĠĠĠĠĠ ĠlastName Ġ= ĠfindViewById ( R . id . ed _ last _ name ) ĊĠĠĠĠĠĠĠ Ġuser Email Ġ= ĠfindViewById ( R . id . ed _ enter _ email ) ĊĠĠĠĠĠĠĠ Ġuser Pass Word Ġ= ĠfindViewById ( R . id . ed _ password ) ĊĠĠĠĠĠĠĠ Ġre type Password Ġ= ĠfindViewById ( R . id . re type _ ed _ password ) ĊĠĠĠĠĠĠĠ Ġbtn Register Ġ= ĠfindViewById ( R . id . btn _ register ) ĊĊĠĠĠĠĠĠĠ Ġbtn Register . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠfirstName Text Ġ= ĠfirstName . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ ĠlastName Text Ġ= ĠlastName . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Email Text Ġ= Ġuser Email . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġuser Password Text Ġ= Ġuser Pass Word . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Network ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsignup Through Api () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠBase AlertDialog . show AlertDialog ( this , Ġresources . getString ( R . string . no _ signup _ msg )) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġfun Ġsignup Through Api () Ġ{ ĊĠĠĠĠĠĠĠ Ġtry Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġcall : ĠCall < SignUp Message Data > Ġ= Ġapi Interface SignUp . sign Up By Api ( firstName Text , ĠlastName Text , Ġuser Email Text , Ġuser Password Text ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < SignUp Message Data > Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < SignUp Message Data >, Ġresponse : ĠResponse < SignUp Message Data >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresponse Code Ġ= Ġresponse . code () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( response Code Ġ>= Ġ 2 0 0 Ġ&& Ġresponse Code Ġ< Ġ 4 0 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġresponse . body ()?. header ?. status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult : ĠString Ġ= Ġresponse . body ()?. body !!. Msg ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ SignUp Activity , Ġresult , ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġintent Ġ= ĠIntent ( this @ SignUp Activity , ĠSign In Activity :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġconverter Ġ= ĠApi Client . getClient (). response Body Converter < SignUp Error Data >( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSign Up Error Data :: class . java , ĠarrayOf Null s < Annotation >( 0 )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġerror Response : ĠSign Up Error Data ? ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġerror Response Ġ= Ġconverter ?. convert ( response . error Body ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġstatus Ġ= Ġerror Response ?. header ?. status ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġvar Ġresult Failed Ġ= Ġerror Response ?. errors ?. error List ! ![ 0 ]. field _ error ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ SignUp Activity , Ġ" Signup ĠError , ĠPlease Ġtry Ġagain ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < SignUp Message Data >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ SignUp Activity , Ġ" Signup ĠError , ĠPlease Ġtry Ġagain ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} Ġcatch Ġ( e : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠToast . makeText ( this @ SignUp Activity , Ġ" Signup ĠError , ĠPlease Ġtry Ġagain ", ĠToast . LENGTH _ SHORT ). show () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Network Connection Changed ( isConnected : ĠBoolean ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Network Connection Changed ( isConnected ) ĊĠĠĠĠĠĠĠ Ġis Network Ġ= Ġis Connected ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠ Ġ} Ċ } ĊĊ