package Ġcom . r avi . movies . ui . activity Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . widget . TextView Ċ import Ġandroidx . appcompat . widget . Toolbar Ċ import Ġandroidx . databinding . Data Binding Util Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġcom . r avi . movies . App Entry Ċ import Ġcom . r avi . movies . R Ċ import Ġcom . r avi . movies . databinding . Activity Detail Binding Ċ import Ġcom . r avi . movies . domain . model . Movie Detail Ċ import Ġcom . r avi . movies . factory . ViewModel Factory Ċ import Ġcom . r avi . movies . factory . base . Base Activity Ċ import Ġcom . r avi . movies . ui . adapter . Pic asso Image Loading Service Ċ import Ġcom . r avi . movies . view model . Details VM Ċ import Ġcom . r avi . movies . view model . contracts . Movie Detail Contract Ċ import Ġdagger . android . Android Injection Ċ import Ġkotlinx . android . synt hetic . main . activity _ detail .* Ċ import Ġss . com . b anners l ider . Slider Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠMovie Detail Activity Ġ: ĠBase Activity (), ĠMovie Detail Contract Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel Factory : ĠViewModel Factory ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠActivity Detail Binding ĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠDetails VM ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġtoolbar Title : ĠTextView ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMOV _ ID Ġ= Ġ" mov _ id " ĊĠĠĠĠĠĠĠ Ġconst Ġval ĠMOV _ NAME Ġ= Ġ" mov _ name " ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ ĠAndroid Injection . inject ( this ) ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠData Binding Util . set ContentView ( this , ĠR . layout . activity _ detail ) ĊĊĠĠĠĠĠĠĠ Ġset ToolBar () ĊĊĠĠĠĠĠĠĠ Ġinit View () ĊĠĠĠĠĠĠĠ ĠApp Entry . is Network Available . observe ( this , Ġget Network Observer ()) ĊĠĠĠĠĠĠĠ Ġinit ViewModel () ĊĊĠĠĠĠĠĠĠ Ġval Ġmov Id Ġ= Ġintent . getInt Extra ( MOV _ ID , Ġ 0 ) ĊĠĠĠĠĠĠĠ Ġif Ġ( mov Id Ġ!= Ġ 0 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . load Movie Details ( mov Id ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit View () Ġ{ ĊĠĠĠĠĠĠĠ Ġloading Indicator Ġ= Ġloading _ indicator ĊĠĠĠĠĠĠĠ Ġnetwork Sn ackBar Ġ= Ġget Network Sn ackBar ( layout _ root ) ĊĊĠĠĠĠĠĠĠ ĠSlider . init ( Pic asso Image Loading Service ( this )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit ViewModel () Ġ{ ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= ĠViewModel Providers . of ( this , ĠviewModel Factory ). get ( Details VM :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . contract Ġ= Ġthis ĊĠĠĠĠĠĠĠ ĠviewModel . response . observe ( this , ĠObserver Ġ{ Ġprocess Response ( it ) Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġset ToolBar () Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġapp Bar Ġ= Ġtoolbar Ġas ĠToolbar ĊĠĠĠĠĠĠĠ Ġtoolbar Title Ġ= Ġapp Bar . findViewById ( R . id . toolbar _ title ) Ġas ĠTextView ĊĠĠĠĠĠĠĠ Ġtitle Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġval Ġmov Name Ġ= Ġintent . getString Extra ( MOV _ NAME ) Ġ?: ĠgetString ( R . string . activity _ movie _ detail _ title ) ĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( app Bar ) ĊĠĠĠĠĠĠĠ Ġtoolbar Title . text Ġ= Ġmov Name ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Details Loaded ( movie Detail : ĠMovie Detail ) Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . mov Detail Ġ= Ġmovie Detail ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ