package Ġcom . mm ore no . fav movies Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . text . format . Date Utils Ċ 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 Provider Ċ import Ġcom . like . Like Button Ċ import Ġcom . like . On Like Listener Ċ import Ġcom . mm ore no . fav movies . model . Movie Ċ import Ġcom . mm ore no . fav movies . view model . Movies ViewModel Ċ import Ġcom . squareup . pic asso . Pic asso Ċ import Ġkotlinx . android . synt hetic . main . fragment _ movie _ detail .* Ċ Ċ /** Ċ Ġ* ĠSecond Ġfragment Ġthat Ġshows Ġthe Ġdetail Ġof Ġa Ġmo view Ċ Ġ*/ Ċ class ĠMovie Detail Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovie : ĠMovie ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġmovies ViewModel : ĠMov ies ViewModel ĊĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOver riding Ġdefault Ġmethod ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState Ġbundle Ġobject Ġto Ġstore Ġstate ĊĠĠĠĠ Ġ* Ġof Ġthe Ġfragment ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ Ġmovies ViewModel Ġ= ĠViewModel Provider ( this ). get ( Movies ViewModel :: class . java ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOver riding Ġdefault ĠonCreate View ĊĠĠĠĠ Ġ* Ġ@ param Ġinflater Ġobject Ġto Ġinf late Ġan ĠXML ĊĠĠĠĠ Ġ* Ġ@ param Ġcontainer Ġview group Ġto Ġthe Ġnew Ġview Ġbe Ġattached Ġlater ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState Ġbundle Ġto Ġsave / recover Ġstate ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Unit ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġ// ĠInf late Ġthe Ġlayout Ġfor Ġthis Ġfragment ĊĠĠĠĠĠĠĠ Ġreturn Ġinflater . inflate ( R . layout . fragment _ movie _ detail , Ġcontainer , Ġfalse ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠOver riding Ġdefault Ġon View Created Ġmethod ĊĠĠĠĠ Ġ* Ġ@ param Ġview Ġthe Ġfragment 's Ġview ĊĠĠĠĠ Ġ* Ġ@ param ĠsavedInstanceState Ġbundle Ġwith Ġsaved Ġstate ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Unit ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġextract Arguments () ĊĠĠĠĠĠĠĠ Ġset Listeners () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠCustom Ġmethod Ġfor Ġsetting Ġthe Ġlisteners ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Unit ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġset Listeners () Ġ{ ĊĠĠĠĠĠĠĠ Ġfavorite Button . setOn Like Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĠOn Like Listener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġlik ed ( like Button : ĠLike Button ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovie . is Favorite Ġ= Ġtrue ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovies ViewModel . update Movie ( movie ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġun Lik ed ( like Button : ĠLike Button ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovie . is Favorite Ġ= Ġfalse ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovies ViewModel . update Movie ( movie ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġrating Bar Detail . setOn Rating Bar ChangeListener Ġ{ Ġ_, Ġrating , Ġ_ Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrun Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovie . rating Ġ= Ġrating ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovies ViewModel . update Movie ( movie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġto Ġextract Ġthe Ġarguments Ġpassed Ġto Ġthis Ġdetail Ġfragment ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Unit ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġextract Arguments () Ġ{ ĊĠĠĠĠĠĠĠ Ġarguments ?. let Ġ{ Ġit Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġargs Ġ= ĠMovie Detail Fragment Args . from Bundle ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmovies ViewModel . findById ( args . movie Id ). observe ( view Lifecycle Owner , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovie Ġ= Ġit ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow Movie ( movie ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ/** ĊĠĠĠĠ Ġ* ĠMethod Ġto Ġextract Ġand Ġshow Ġthe Ġinformation ĊĠĠĠĠ Ġ* Ġabout Ġthe Ġmovie Ġobject ĊĠĠĠĠ Ġ* Ġ@ param Ġmovie Ġinstance Ġof ĠMovie Ġto Ġbe Ġshown ĊĠĠĠĠ Ġ* Ġ@ return Ġ[ Unit ] ĊĠĠĠĠ Ġ*/ ĊĠĠĠ Ġprivate Ġfun Ġshow Movie ( movie : ĠMovie ) Ġ{ ĊĠĠĠĠĠĠĠ Ġmovie Title . text Ġ= Ġmovie . title ĊĠĠĠĠĠĠĠ Ġrelease Date Movie . text Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠDate Utils . format DateTime ( context , Ġmovie . release Date . time , ĠDate Utils . FORMAT _ SHOW _ DATE ) ĊĠĠĠĠĠĠĠ Ġgenre Movie . text Ġ= Ġmovie . genre ĊĠĠĠĠĠĠĠ Ġsummary Movie . text Ġ= Ġmovie . summary ĊĠĠĠĠĠĠĠ ĠPic asso . get (). load ( movie . poster ). into ( poster Movie ) ĊĠĠĠĠĠĠĠ Ġrating Bar Detail . rating Ġ= Ġmovie . rating ĊĠĠĠĠĠĠĠ Ġfavorite Button . is Lik ed Ġ= Ġmovie . is Favorite ĊĠĠĠ Ġ} ĊĊ Ċ } Ċ