package Ġcom . fox hole . games keeper . ui . single Game Ċ Ċ import Ġandroid . graphics . Color Ċ import Ġandroidx . appcompat . app . AppCompatActivity Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . MenuItem Ċ import Ġandroid . view . View Ċ import Ġandroidx . activity . view Models Ċ import Ġandroidx . annotation . NonNull Ċ import Ġandroidx . lifecycle . Observer Ċ import Ġandroidx . lifecycle . lifecycle Scope Ċ import Ġcom . fox hole . games keeper . R Ċ import Ġcom . fox hole . games keeper . adapter . Screenshot Adapter Ċ import Ġcom . fox hole . games keeper . base . Base Activity Ċ import Ġcom . fox hole . games keeper . databinding . Activity Single Game Binding Ċ import Ġcom . fox hole . games keeper . model . Game Ċ import Ġcom . fox hole . games keeper . ui . single Game . overview . Overview Fragment Ċ import Ġcom . fox hole . games keeper . ui . single Game . screenshot . Screenshot Fragment Ċ import Ġcom . fox hole . games keeper . utils . Resource Ċ import Ġcom . og acle j apan . smart tab layout . utils . v 4 . Fragment Pager Item Adapter Ċ import Ġcom . og acle j apan . smart tab layout . utils . v 4 . Fragment Pager Items Ċ 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 . views . YouTube Player View Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġkotlinx . coroutines . delay Ċ import Ġkotlinx . coroutines . launch Ċ import Ġtim ber . log . Tim ber Ċ import Ġjava . util .* Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠSingle Game Activity Ġ: ĠBase Activity < Activity Single Game Binding >() Ġ{ ĊĊĠĠĠ Ġval Ġsingle Game ViewModel : ĠSingle Game ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġvar Ġis Favorite : ĠBoolean Ġ= Ġfalse ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġscreenshot Adapter : ĠScreen shot Adapter ĊĊĠĠĠ Ġoverride Ġfun Ġon View Ready ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Ready ( savedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġset Support ActionBar ( binding . action Bar ) ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Home As Up Enabled ( true ); ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. set Display Show Home Enabled ( true ); ĊĠĠĠĠĠĠĠ Ġsupport ActionBar !!. title Ġ= Ġ"" ĊĊĠĠĠĠĠĠĠ Ġlifecycle . add Observer ( binding . youtube Player View ) ĊĊĠĠĠĠĠĠĠ Ġval Ġfragment Adapter Ġ= ĠFragment Pager Item Adapter ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsupport FragmentManager , ĠFragment Pager Items . with ( this ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Overview ", ĠOverview Fragment :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add (" Screenshots ", ĠScreen shot Fragment :: class . java ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. create () ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġbinding . view Pager . adapter Ġ= Ġfragment Adapter ĊĠĠĠĠĠĠĠ Ġbinding . tab Layout . set ViewPager ( binding . view Pager ) ĊĊĠĠĠĠĠĠĠ Ġsingle Game ViewModel . game . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ( it . status ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Status . LOADING Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" loading ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Status . SUCCESS Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" success ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġupdate UI ( it . data ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠResource . Status . ERROR Ġ-> Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠTim ber . d (" error ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġsingle Game ViewModel . is Favorite . observe ( this , ĠObserver Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Favorite Ġ= Ġit ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġbinding . floating ActionButton . setColor Filter ( Color . RED ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġbinding . floating ActionButton . setColor Filter ( Color . WHITE ) ĊĠĠĠĠĠĠĠ Ġ}) ĊĊĠĠĠĠĠĠĠ Ġbinding . floating ActionButton . setOnClickListener Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( is Favorite ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Game ViewModel . delete Favorite Game () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow T ost ify (" Removed Ġfrom Ġfavorite Ġlist Ġ! ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsingle Game ViewModel . add Game To Favorite () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġlifecycle Scope . launch Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġshow T ost ify (" Added Ġto Ġfavorite Ġlist Ġ! ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġ} ĊĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġupdate UI ( game : ĠGame ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġgame ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . youtube Player View . add YouTube Player Listener ( object Ġ: ĠAbstract YouTube Player Listener () Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġon Ready ( you Tube Player : ĠYouTube Player ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . video ?. let Ġ{ Ġclip Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyou Tube Player . load Video ( clip . vide oid , Ġ 0 F ) ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ/// Un Mute Ġfor Ġsound ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġyou Tube Player . mute () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġ?: Ġyou Tube Player . load Video (" A 6 7 Zk Ad 1 wm I ", Ġ 0 F ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġoverride Ġfun Ġon Options ItemSelected ( item : ĠMenuItem ): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġif Ġ( item . itemId Ġ== Ġandroid . R . id . home ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfinish () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġreturn Ġsuper . on Options ItemSelected ( item ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġset Binding (): ĠActivity Single Game Binding Ġ= ĠActivity Single Game Binding . inflate ( layout Inflater ) ĊĊĠĠĠ Ġsuspend Ġfun Ġshow T ost ify ( message : ĠString ) Ġ{ ĊĊĠĠĠĠĠĠĠ Ġbinding . include . message Tv . text Ġ= Ġmessage ĊĊĠĠĠĠĠĠĠ Ġbinding . include . message Bg . animate (). translation Y (- 8 0 f ). duration Ġ= Ġ 2 0 0 L ĊĠĠĠĠĠĠĠ Ġbinding . include . message Tv . animate (). translation Y (- 8 0 f ). duration Ġ= Ġ 2 0 0 L ĊĊĠĠĠĠĠĠĠ Ġdelay ( 2 0 0 0 L ) ĊĊĠĠĠĠĠĠĠ Ġbinding . include . message Bg . animate (). translation Y ( 8 0 f ). duration Ġ= Ġ 5 0 0 L ĊĠĠĠĠĠĠĠ Ġbinding . include . message Tv . animate (). translation Y ( 8 0 f ). duration Ġ= Ġ 5 0 0 L ĊĠĠĠ Ġ} Ċ Ċ }