package Ġcom . sc ud der apps . movies up . fragments . movie details Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . lifecycle . ViewModel Providers Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġbutter knife . BindView Ċ import Ġbutter knife . B utter Kn ife Ċ import Ġcom . sc ud der apps . movies up . R Ċ import Ġcom . sc ud der apps . movies up . adapter . common . Cre w ListAdapter Ċ import Ġcom . sc ud der apps . movies up . api . T mdb Api Interface Ċ import Ġcom . sc ud der apps . movies up . api . The TM DB Client Ċ import Ġcom . sc ud der apps . movies up . models . common . Cre w Detail Ċ import Ġcom . sc ud der apps . movies up . repository . movie . movie details . Movie Detail Repository Ċ import Ġcom . sc ud der apps . movies up . view model . Movie Detail ViewModel Ċ Ċ class ĠMovie Cre w Fragment ( private Ġvar Ġmovie Id : ĠInt ) Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġroot View : ĠView ĊĊĠĠĠ Ġ@ BindView ( R . id . movie _ cre w _ list ) ĊĠĠĠ Ġlateinit Ġvar Ġmovie Cre w View : ĠRecyclerView ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcre w Adapter : ĠCre w ListAdapter ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġcre w Detail List : ĠArrayList < Cre w Detail > ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar ĠviewModel : ĠMovie Detail ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie Repository : ĠMovie Detail Repository ĊĠĠĠ Ġlateinit Ġvar Ġlinear LayoutManager : ĠLinearLayoutManager ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġroot View Ġ= Ġinflater . inflate ( R . layout . movie _ cre w _ fragment , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ ĠB utter Kn ife . bind ( this , Ġroot View ) ĊĠĠĠĠĠĠĠ Ġval Ġapi Service : ĠT mdb Api Interface Ġ= ĠThe TM DB Client . getClient () ĊĠĠĠĠĠĠĠ Ġmovie Repository Ġ= ĠMovie Detail Repository ( api Service ) ĊĠĠĠĠĠĠĠ ĠviewModel Ġ= Ġget ViewModel ( movie Id ) ĊĠĠĠĠĠĠĠ ĠviewModel . cast Details . observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcre w Detail List Ġ= Ġit . cre w Detail ĊĠĠĠĠĠĠĠĠĠĠĠ Ġcre w Adapter Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCre w ListAdapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcre w Detail List , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġroot View . context ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinear LayoutManager Ġ= ĠLinearLayoutManager ( activity ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlinear LayoutManager . orientation Ġ= ĠLinearLayoutManager . VERTICAL ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Cre w View . layout Manager Ġ= Ġlinear LayoutManager ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Cre w View . set Has Fixed Size ( true ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Cre w View . adapter Ġ= Ġcre w Adapter ĊĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġreturn Ġroot View ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget ViewModel ( movie Id : ĠInt ): ĠMovie Detail ViewModel Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠViewModel Providers . of ( this , Ġobject Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ@ Suppress (" UN CHECK ED _ CAST ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠMovie Detail ViewModel ( movie Repository , Ġmovie Id ) Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) [ Movie Detail ViewModel :: class . java ] ĊĠĠĠ Ġ} Ċ } Ċ