package Ġcom . se b astian op igh i . movie finder . activities Ċ Ċ import Ġandroid . arch . lifecycle . Observer Ċ import Ġandroid . arch . lifecycle . ViewModel Providers Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroid . widget . ImageView Ċ import Ġandroid . widget . TextView Ċ import Ġcom . se b astian op igh i . movie finder . R Ċ import Ġcom . se b astian op igh i . movie finder . models . Movie Details Ċ import Ġcom . se b astian op igh i . movie finder . utils . Base Activity Ċ import Ġcom . se b astian op igh i . movie finder . utils . Pic asso Image Loader Ċ import Ġcom . se b astian op igh i . movie finder . view models . Movie Details ViewModel Ċ import Ġcom . se b astian op igh i . movie finder . view models . factories . Movie Details ViewModel Factory Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . activity _ movie _ details .* ĊĊ Ċ class ĠMovie Details Activity Ġ: ĠBase Activity () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie Details ViewModel : ĠMovie Details ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie Back drop Image : ĠImageView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie Title Label : ĠTextView ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie Plot Overview Label : ĠTextView ĊĠĠĠ Ġprivate Ġvar Ġimage Loader : ĠPic asso Image Loader ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġvar Ġmovie Id : ĠInt Ġ= Ġ 0 ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠsetContentView ( R . layout . activity _ movie _ details ) ĊĠĠĠĠĠĠĠ ĠsetTitle ( R . string . movie _ details ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar ?. set Display Home As Up Enabled ( true ) ĊĊĠĠĠĠĠĠĠ ĠprogressBar Ġ= Ġmovie _ details _ progress ĊĠĠĠĠĠĠĠ Ġmovie Back drop Image Ġ= Ġmovie _ details _ backdrop _ image ĊĠĠĠĠĠĠĠ Ġmovie Title Label Ġ= Ġmovie _ details _ title ĊĠĠĠĠĠĠĠ Ġmovie Plot Overview Label Ġ= Ġmovie _ details _ plot _ overview ĊĠĠĠĠĠĠĠ Ġimage Loader Ġ= ĠPic asso Image Loader ( Pic asso . with ( this )) ĊĠĠĠĠĠĠĠ Ġmovie Id Ġ= Ġintent . getInt Extra ( MOV IE _ ID , Ġ 0 ) ĊĊĠĠĠĠĠĠĠ Ġval Ġnetwork Error Observer Ġ= ĠObserver < String >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. let Ġ{ Ġshow Dialog ( getString ( R . string . generic _ networking _ error _ title ), ĠgetString ( R . string . generic _ networking _ error ), Ġ ĠgetString ( R . string . retry )) Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġval Ġmovie Details Observer Ġ= ĠObserver < Movie Details >() Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . GONE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit ?. backdrop Path ?. let Ġ{ Ġimage Loader ?. load ( it , Ġmovie Back drop Image , Ġtrue ) Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Title Label . text Ġ= Ġit ?. title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Plot Overview Label . text Ġ= Ġit ?. overview ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġmovie Details ViewModel Ġ= ĠViewModel Providers . of ( this , ĠMovie Details ViewModel Factory ( getString ( R . string . api _ base _ url ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠgetString ( R . string . api _ key ), Ġmovie Id )). get ( Movie Details ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ Ġmovie Details ViewModel . get Network Error (). observe ( this , Ġnetwork Error Observer ) ĊĠĠĠĠĠĠĠ Ġmovie Details ViewModel . get Movie Details (). observe ( this , Ġmovie Details Observer ) ĊĠĠĠĠĠĠĠ Ġif ( check Internet Connection ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Details ViewModel . load Movie Details ( movie Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġreload Data () Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( check Internet Connection ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠprogressBar . visibility Ġ= ĠView . VISIBLE ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Details ViewModel . load Movie Details ( movie Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Support Navigate Up (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġreturn Ġtrue ĊĠĠĠ Ġ} Ċ Ċ } Ċ