/* Ċ Ġ* ĠCopyright Ġ 2 0 2 1 ĠSO UP Ċ Ġ* Ċ Ġ* ĠLicensed Ġunder Ġthe ĠApache ĠLicense , ĠVersion Ġ 2 . 0 Ġ( the Ġ" License "); Ċ Ġ* Ġyou Ġmay Ġnot Ġuse Ġthis Ġfile Ġexcept Ġin Ġcompliance Ġwith Ġthe ĠLicense . Ċ Ġ* ĠYou Ġmay Ġobtain Ġa Ġcopy Ġof Ġthe ĠLicense Ġat Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttps :// www . apache . org / licenses / LICENSE - 2 . 0 Ċ Ġ* Ċ Ġ* ĠUnless Ġrequired Ġby Ġapplicable Ġlaw Ġor Ġagreed Ġto Ġin Ġwriting , Ġsoftware Ċ Ġ* Ġdistributed Ġunder Ġthe ĠLicense Ġis Ġdistributed Ġon Ġan Ġ" AS ĠIS " ĠBASIS , Ċ Ġ* ĠWITHOUT ĠWARRANTIES ĠOR ĠCONDITIONS ĠOF ĠANY ĠKIND , Ġeither Ġexpress Ġor Ġimplied . Ċ Ġ* ĠSee Ġthe ĠLicense Ġfor Ġthe Ġspecific Ġlanguage Ġgoverning Ġpermissions Ġand Ċ Ġ* Ġlimitations Ġunder Ġthe ĠLicense . Ċ Ġ*/ Ċ package Ġsoup . movie . home . favorite Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . core . app . Activity Options Compat Ċ import Ġandroidx . core . view . isVisible Ċ import Ġandroidx . fragment . app . view Models Ċ import Ġandroidx . navigation . Activity Navigator Extras Ċ import Ġandroidx . navigation . fragment . find Nav Controller Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġdagger . h ilt . android . Android EntryPoint Ċ import Ġjp . was ab eef . recyclerview . anim ators . Fade In Animator Ċ import Ġsoup . movie . analytics . Event Analytics Ċ import Ġsoup . movie . home . Home Fragment Directions Ċ import Ġsoup . movie . home . R Ċ import Ġsoup . movie . home . databinding . Home Tab Favorite Binding Ċ import Ġsoup . movie . home . tab . Home Tab Fragment Ċ import Ġsoup . movie . util . auto Cle ared Ċ import Ġjavax . inject . Inject Ċ Ċ @ Android EntryPoint Ċ class ĠHome Favorite Fragment Ġ: ĠHome Tab Fragment ( R . layout . home _ tab _ favorite ) Ġ{ ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar Ġanalytics : ĠEvent Analytics ĊĊĠĠĠ Ġprivate Ġvar Ġbinding : ĠHome Tab Favorite Binding Ġby Ġauto Cle ared () ĊĊĠĠĠ Ġprivate Ġval ĠviewModel : ĠHome Favorite ViewModel Ġby Ġview Models () ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠHome Tab Favorite Binding . bind ( view ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit ViewState ( viewModel ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠHome Tab Favorite Binding . init ViewState ( viewModel : ĠHome Favorite ViewModel ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġlist Adapter Ġ= ĠHome Favorite ListAdapter ( root . context ) Ġ{ Ġmovie , Ġshared Elements Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġanalytics . click Movie () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfind Nav Controller (). navigate ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠHome Fragment Directions . action To Detail ( movie ), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠActivity Navigator Extras ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġactivity Options Ġ= ĠActivity Options Compat ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. make Scene Transition Animation ( require Activity (), Ġ* shared Elements ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠlistView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġlist Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem Animator Ġ= ĠF ade In Animator () ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ ĠviewModel . contents Ui Model . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Items View . isVisible Ġ= Ġit . movies . isEmpty () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlist Adapter . submit List ( it . movies ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġscroll To Top () Ġ{ ĊĠĠĠĠĠĠĠ Ġget ListView ()?. scrollTo Top Internal () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Back Pressed (): ĠBoolean Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġget ListView ()?. scrollTo Top Internal () Ġ?: Ġfalse ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġget ListView (): ĠRecyclerView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġbinding . list View ĊĠĠĠ Ġ} Ċ } Ċ