package Ġedu ardo . gl ad z ik . final project . activities Ċ Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġedu ardo . gl ad z ik . final project . R Ċ import Ġedu ardo . gl ad z ik . final project . extensions . toast Ċ import Ġedu ardo . gl ad z ik . final project . model . Spell Ċ import Ġedu ardo . gl ad z ik . final project . service . Ret rofit Initializer Ċ import Ġkotlinx . android . synt hetic . main . add _ spell s _ activity .* Ċ import Ġretrofit 2 . Call Ċ import Ġretrofit 2 . Callback Ċ import Ġretrofit 2 . Response Ċ Ċ class ĠAdd Spell s Activity Ġ: ĠAppCompatActivity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġspell : ĠSpell ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . add _ spell s _ activity ) ĊĊĠĠĠĠĠĠĠ Ġval Ġaction Bar Ġ= Ġsupport ActionBar ĊĠĠĠĠĠĠĠ Ġaction Bar ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . set Display Home As Up Enabled ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . title Ġ= ĠgetText ( R . string . add _ activity _ name ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd Spell s ProgressBar . visibility Ġ= ĠView . VISIBLE ĊĊĠĠĠĠĠĠĠ Ġif ( intent . has Extra (" spell ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġspell Ġ= Ġintent . get Serializable Extra (" spell ") Ġas ĠSpell ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( spell Ġ!= Ġnull ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . update ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s Button . setText ( getText ( R . string . update _ spell )) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Character Name . setText ( spell . character Name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Name . setText ( spell . name ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Range . setText ( spell . range . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Duration . setText ( spell . duration ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Level . setText ( spell . level . toString ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Classes . setText ( spell . classes ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Cast ing . setText ( spell . cast ing ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . add ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġadd Spell s Button . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s ProgressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif ( intent . has Extra (" spell ")) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell . character Name Ġ= Ġadd Spell s EditText Character Name . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell . name Ġ= Ġadd Spell s EditText Spell Name . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell . range Ġ= Ġadd Spell s EditText Spell Range . text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell . duration Ġ= Ġadd Spell s EditText Spell Duration . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell . level Ġ= Ġadd Spell s EditText Spell Level . text . toString (). toInt () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell . classes Ġ= Ġadd Spell s EditText Spell Classes . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell . cast ing Ġ= Ġadd Spell s EditText Spell Cast ing . text . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġon Back Pressed () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġsave () Ġ{ ĊĊĠĠĠĠĠĠĠ Ġspell Ġ= ĠSpell (- 2 0 , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Character Name . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Name . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Range . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Duration . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Level . text . toString (). toInt (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Classes . text . toString (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s EditText Spell Cast ing . text . toString ()) ĊĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= ĠRet rofit Initializer (). spell s Service (). save ( spell ) ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Spell > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Spell >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s ProgressBar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . error _ try _ again ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Spell >, Ġresponse : ĠResponse < Spell >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s ProgressBar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġspell Ġ= Ġresponse . body () Ġas ĠSpell ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . spell _ successfully _ registered ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġcall Ġ= ĠRet rofit Initializer (). spell s Service (). update ( this . spell . id , Ġthis . spell ) ĊĊĠĠĠĠĠĠĠ Ġcall . enqueue ( object Ġ: ĠCallback < Spell > Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Failure ( call : ĠCall < Spell >, Ġt : ĠThrowable ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s ProgressBar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . error _ try _ again ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Response ( call : ĠCall < Spell >, Ġresponse : ĠResponse < Spell >) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġadd Spell s ProgressBar . visibility Ġ= ĠView . IN VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif ( response . is Successful ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġspell Ġ= Ġresponse . body () Ġas ĠSpell ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtoast ( R . string . spell _ successfully _ updated ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} Ċ }