package Ġbr . com . digital house . play movie app . ui . view Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . lifecycle . ViewModel Ċ import Ġandroidx . lifecycle . ViewModel Provider Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġbr . com . digital house . play movie app . BASE _ URL _ IMAGE Ċ import Ġbr . com . digital house . play movie app . R Ċ import Ġbr . com . digital house . play movie app . databinding . Fragment Fil me D ia Home Binding Ċ import Ġbr . com . digital house . play movie app . domain . movie . Result Ċ import Ġbr . com . digital house . play movie app . get Gen res Ċ import Ġbr . com . digital house . play movie app . services . repository Ċ import Ġbr . com . digital house . play movie app . ui . viewModel . Fil me D ia ViewModel Ċ import Ġcom . bump tech . glide . G lide Ċ Ċ class ĠFil me D ia Fragment Ġ: ĠFragment () Ġ{ ĊĠĠĠ Ġprivate Ġvar Ġ_ binding : ĠFragment Fil me D ia Home Binding ? Ġ= Ġnull ĊĠĠĠ Ġprivate Ġval Ġbinding Ġget () Ġ= Ġ_ binding !! ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġfil me : ĠResult ĊĠĠĠ Ġval ĠviewModel Ġby Ġview Models < Fil me D ia ViewModel > Ġ{ ĊĠĠĠĠĠĠĠ Ġobject Ġ: ĠViewModel Provider . Factory Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġ< T Ġ: ĠViewModel ?> Ġcreate ( model Class : ĠClass < T >): ĠT Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġreturn ĠFil me D ia ViewModel ( repository ) Ġas ĠT ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġcompanion Ġobject Ġ{ ĊĠĠĠĠĠĠĠ Ġfun Ġnew Instance () Ġ= ĠFil me D ia Fragment () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= ĠFragment Fil me D ia Home Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġbinding . root ĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) Ċ // ĠĠĠĠĠĠĠ Ġbinding . root . setOnClickListener Ġ{ Ċ // ĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( R . id . action _ fil me D ia Fragment _ to _ res um o N ivel Fragment ) Ċ // ĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel . search Pop ular Movie () ĊĠĠĠĠĠĠĠ ĠviewModel . popular Movie . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfil me Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ(! fil me . backdrop _ path . toString (). isBlank ()) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( BASE _ URL _ IMAGE Ġ+ Ġ" original " Ġ+ Ġfil me . backdrop _ path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . fil me Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠG lide . with ( this ). as Bitmap () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( BASE _ URL _ IMAGE Ġ+ Ġ" original " Ġ+ Ġfil me . poster _ path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. placeholder ( R . drawable . progress _ animation ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( binding . fil me Image ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Nome Fil me . text Ġ= Ġfil me . title ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġgener os Ġ= Ġarray ListOf < String >() ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfor Ġ( genre Ġin Ġfil me . genre _ ids ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgener os . add ( get Gen res (). filter Ġ{ Ġit . id Ġ== Ġgenre Ġ} [ 0 ]. name ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ"${ fil me . release _ date . substring ( 0 , Ġ 4 )} Ġ- Ġ${ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ"$ gener os ". trim ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ'[ ', ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ' ]' ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ". also Ġ{ Ġbinding . tv An o Fil me . text Ġ= Ġit Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . tv Not a Fil me . text Ġ= Ġfil me . vote _ average . toString () ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . iv Mo view Detail . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġaction Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠFil me D ia Fragment Directions . action Fil me D ia Fragment To Det al hes Activity ( fil me . id ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( action ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ Ġ_ binding Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }