package Ġcom . gmail . e amos se . imdb . ui . home . fragment Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroid . widget . ImageView Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . navigation . fragment . nav Args Ċ import Ġcom . bump tech . glide . G lide Ċ import Ġcom . gmail . e amos se . idb data . api . response . Movie Response Ċ import Ġcom . gmail . e amos se . idb data . data . Video Ċ import Ġcom . gmail . e amos se . imdb . R Ċ import Ġcom . gmail . e amos se . imdb . databinding . Fragment Movie Binding Ċ import Ġcom . gmail . e amos se . imdb . ui . home . viewModel . Home ViewModel Ċ import Ġcom . pi er fr ances co so ff rit ti . android youtube player . core . player . YouTube Player Ċ import Ġcom . pi er fr ances co so ff rit ti . android youtube player . core . player . listeners . Abstract YouTube Player Listener Ċ import Ġcom . pi er fr ances co so ff rit ti . android youtube player . core . player . listeners . YouTube Player FullScreen Listener Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ Ċ class ĠMovie Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġargs : ĠMovie Fragment Args Ġby Ġnav Args () ĊĠĠĠ Ġprivate Ġval Ġhome ViewModel : ĠHome ViewModel Ġby ĠviewModel () ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Movie Binding ĊĠĠĠ Ġprivate Ġval Ġbase Post er Path Ġ= Ġ" https :// image . t mdb . org / t / p / w 5 0 0 " ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( ĊĠĠĠĠĠĠĠ Ġinflater : ĠLayoutInflater , ĊĠĠĠĠĠĠĠ Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ? ĊĠĠĠ Ġ): ĠView Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Movie Binding . inflate ( in flater , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . root ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġwith ( home ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Movie ById ( args . my Arg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġget Video Movie ById ( args . my Arg ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwith ( binding ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle . add Observer ( youtube ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyoutube . add YouTube Player Listener ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠAbstract YouTube Player Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ready (@ NonNull Ġyou Tube Player : ĠYouTube Player ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġvideo Id Ġ= Ġcheck Site AndGet Key ( videos . value !! ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyou Tube Player . load Video ( video Id , Ġ 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyoutube . add FullScreen Listener ( object Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠYouTube Player FullScreen Listener Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon YouTube Player Enter FullScreen () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyoutube . enter FullScreen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon YouTube Player Exit FullScreen () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyoutube . exit FullScreen () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġmovie . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupload Image ( imageView , Ġbase Post er Path Ġ+ Ġit . poster _ path ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġproduction Comp anies Value . text Ġ= Ġget Direct ors ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre Value . text Ġ= Ġget Gen res ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoriginal Language Value . text Ġ= Ġit . original _ language ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtitle . text Ġ= Ġget Title And Vote ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrelease Date Value . text Ġ= Ġit . release _ date ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġcheck Site AndGet Key ( videos : ĠList < Video >): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġkey YT Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġfor Ġ( video YT Ġin Ġvideos ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( video YT . site Ġ== Ġ" YouTube ") Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġkey YT Ġ= Ġvideo YT . key ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġkey YT ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupload Image ( image : ĠImageView , Ġload : ĠString ) Ġ{ ĊĠĠĠĠĠĠĠ ĠG lide . with ( image . context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. load ( load ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. error ( R . drawable . ic _ baseline _ image _ 2 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. into ( image ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Direct ors ( movie : ĠMovie Response ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġfor Ġ(( i , Ġdirector ) Ġin Ġmovie . production _ companies . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ+= Ġif Ġ( i Ġ== Ġmovie . production _ companies . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirector . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdirector . name Ġ+ Ġ", Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Gen res ( movie : ĠMovie Response ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġvar Ġvalue Ġ= Ġ"" ĊĠĠĠĠĠĠĠ Ġfor Ġ(( i , Ġgenre ) Ġin Ġmovie . genres . with Index ()) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġvalue Ġ+= Ġif Ġ( i Ġ== Ġmovie . genres . size Ġ- Ġ 1 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre . name ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġgenre . name Ġ+ Ġ", Ġ" ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġvalue ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget Title And Vote ( movie : ĠMovie Response ): ĠString Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġmovie . title Ġ+ Ġ" Ġ(" Ġ+ Ġmovie . vote _ average Ġ+ Ġ"/ 1 0 )" ĊĠĠĠ Ġ} Ċ } Ċ