package Ġcom . j ason . rick and mort y . ui . episode Ċ Ċ import Ġandroid . annotation . Suppress Lint Ċ import Ġandroid . content . Context Ċ import Ġandroid . content . Intent Ċ import Ġandroid . content . res . Configuration Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . util . Log Ċ import Ġandroid . view . LayoutInflater Ċ import Ġandroid . view . View Ċ import Ġandroid . view . ViewGroup Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġcom . j ason . rick and mort y . R Ċ import Ġcom . j ason . rick and mort y . data . model . Episode Ċ import Ġcom . j ason . rick and mort y . databinding . Fragment Episode Binding Ċ import Ġcom . j ason . rick and mort y . ui . My Application Ċ import Ġcom . j ason . rick and mort y . ui . helper . Swipe Detector Ċ import Ġjavax . inject . Inject Ċ Ċ class ĠEp isode Fragment Ġ: ĠFragment () Ġ{ ĊĊĠĠĠ Ġcompanion Ġobject ; ĊĊĠĠĠ Ġ@ Inject ĊĠĠĠ Ġlateinit Ġvar ĠviewModel : ĠEp isode ViewModel ĊĠĠĠ Ġprivate Ġlateinit Ġvar Ġbinding : ĠFragment Episode Binding ĊĠĠĠ Ġprivate Ġval Ġview Adapter Ġ= ĠEp isode Adapter (). apply Ġ{ ĊĠĠĠĠĠĠĠ Ġparent Fragment Ġ= Ġthis @ Episode Fragment ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Attach ( context : ĠContext ) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Attach ( context ) ĊĠĠĠĠĠĠĠ ĠMy Application . app Component . inject ( this ) ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Attach ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onCreate ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Create ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonCreate View ( in flater : ĠLayoutInflater , Ġcontainer : ĠViewGroup ?, ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠsavedInstanceState : ĠBundle ?): ĠView ? Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġview Ġ= Ġinflater . inflate ( R . layout . fragment _ episode , Ġcontainer , Ġfalse ) ĊĠĠĠĠĠĠĠ Ġbinding Ġ= ĠFragment Episode Binding . bind ( view ) ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Create View ") ĊĊĠĠĠĠĠĠĠ Ġreturn Ġview ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġ@ Suppress Lint (" SetText I 1 8 n ") ĊĠĠĠ Ġoverride Ġfun Ġon Activity Created ( savedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Activity Created ( savedInstanceState ) ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Activity Created ") ĊĊĠĠĠĠĠĠĠ Ġ// viewModel Ġ= ĠViewModel Provider ( this ). get ( Episode ViewModel :: class . java ) ĊĠĠĠĠĠĠĠ ĠviewModel . is Last Page . observe ( view Lifecycle Owner , Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . root . resources . configuration . orientation Ġ== ĠConfiguration . OR IENTATION _ LAND SC APE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Hint . text Ġ= Ġ" ĠYou Ġ\ n ĠF etched Ġ\ n ĠAll Ġ\ n ĠPages " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Hint . text Ġ= Ġ" ĠSw ipe Ġ\ n ĠâĨ Ĳ Ġ\ n Ġto Ġ\ n Ġget Ġ\ n ĠEp isode s " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( it ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Hint . text Ġ= Ġ" ĠYou ĠF etched ĠAll ĠPages " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġbinding . text Hint . text Ġ= Ġ" ĠSw ipe ĠâĨ ĳ Ġto Ġget ĠEp isode s " ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ Ġbinding . recycler Episode . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġview Adapter ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= Ġif Ġ( binding . root . resources . configuration . orientation Ġ== ĠConfiguration . OR IENTATION _ LAND SC APE ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠGrid LayoutManager ( require Context (), Ġ 2 , ĠGrid LayoutManager . VERTICAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLinearLayoutManager ( require Context ()) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ ĠviewModel . episodes . observe ( view Lifecycle Owner , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠLog . d (" abc ", Ġ" observe Ġ${ it . size } Ġepisode s ") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġview Adapter . refresh DataList ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠĠĠĠĠ ĠSw ipe Detector ( binding . root ). setOn Swipe Listener ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġobject Ġ: ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSw ipe Detector . On Swipe Event Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġoverride Ġfun Ġswipe Event Detected ( v : ĠView ?, Ġswipe Type : ĠSw ipe Detector . Swipe TypeEnum ?) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( binding . root . resources . configuration . orientation Ġ== ĠConfiguration . OR IENTATION _ POR TRA IT ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( swipe Type Ġ== ĠSw ipe Detector . Swipe TypeEnum . BOTTOM _ TO _ TOP ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . load Episode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} Ġelse Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( swipe Type Ġ== ĠSw ipe Detector . Swipe TypeEnum . RIGHT _ TO _ LEFT ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠviewModel . load Episode () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ}) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun ĠonStart () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . onStart () ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Start ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Resume () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Resume () ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Resume ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Pause () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Pause () ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" on Pause ") ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Stop () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Stop () ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Stop ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy View () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy View () ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Destroy View ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Destroy ") ĊĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Detach () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Detach () ĊĠĠĠĠĠĠĠ ĠLog . d (" Episode Fragment ", Ġ" On Detach ") ĊĠĠĠ Ġ} ĊĊĊĠĠĠ Ġfun Ġon Episode Click ( episode : ĠEp isode ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġintent Ġ= ĠIntent ( require Activity (), ĠEp isode Detail Activity :: class . java ) ĊĠĠĠĠĠĠĠ Ġintent . putExtra (" episode ", Ġepisode ) ĊĠĠĠĠĠĠĠ ĠstartActivity ( intent ) ĊĊĠĠĠ Ġ} Ċ Ċ }