package Ġcom . e gor iku . lad y happy . landing . presentation Ċ Ċ import Ġandroid . os . Bundle Ċ import Ġandroid . view . View Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġby . kir ich 1 4 0 9 . view binding delegate . view Binding Ċ import Ġcom . e gor iku . lad y happy . core . feature . About Us Feature Ċ import Ġcom . e gor iku . lad y happy . extensions . browse Url Ċ import Ġcom . e gor iku . lad y happy . extensions . g one Ċ import Ġcom . e gor iku . lad y happy . extensions . visible Ċ import Ġcom . e gor iku . lad y happy . landing . R Ċ import Ġcom . e gor iku . lad y happy . landing . common . parallax . Par allax Scroll Listener Ċ import Ġcom . e gor iku . lad y happy . landing . databinding . Fragment Landing Binding Ċ import Ġcom . e gor iku . lad y happy . landing . presentation . controller .* Ċ import Ġcom . e gor iku . lad y happy . ui . controller . No Data Controller Ċ import Ġorg . k oin . android x . scope . Scope Fragment Ċ import Ġorg . k oin . android x . view model . ext . android . viewModel Ċ import Ġru . surf studio . android . easy adapter . Easy Adapter Ċ import Ġru . surf studio . android . easy adapter . ItemList Ċ import Ġkotlin . properties . Deleg ates Ċ Ċ class ĠLand ing Page Fragment Ġ: ĠScope Fragment ( R . layout . fragment _ landing ), ĠAbout Us Feature Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġbinding Ġby Ġview Binding ( Fragment Landing Binding :: bind ) ĊĊĠĠĠ Ġprivate Ġval Ġlanding ViewModel Ġby ĠviewModel < Landing ViewModel >() ĊĊĠĠĠ Ġprivate Ġvar Ġpar allax Scroll Listener : ĠPar allax Scroll Listener ? Ġ= Ġnull ĊĊĠĠĠ Ġprivate Ġval Ġlanding Adapter Ġ= ĠEasy Adapter () ĊĊĠĠĠ Ġprivate Ġvar Ġheader Controller : ĠHeader Controller Ġby ĠDeleg ates . notNull () ĊĠĠĠ Ġprivate Ġvar Ġno Data Controller : ĠNo Data Controller Ġby ĠDeleg ates . notNull () ĊĠĠĠ Ġprivate Ġvar Ġabout Controller : ĠAbout Controller Ġby ĠDeleg ates . notNull () ĊĠĠĠ Ġprivate Ġvar Ġquotes Controller : ĠQu otes Controller Ġby ĠDeleg ates . notNull () ĊĠĠĠ Ġprivate Ġvar Ġour Team Controller : ĠOur Team Controller Ġby ĠDeleg ates . notNull () ĊĠĠĠ Ġprivate Ġvar Ġsections Header Controller : ĠSe ctions Header Controller Ġby ĠDeleg ates . notNull () ĊĊĠĠĠ Ġoverride Ġfun Ġon View Created ( view : ĠView , ĠsavedInstanceState : ĠBundle ?) Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on View Created ( view , ĠsavedInstanceState ) ĊĊĠĠĠĠĠĠĠ Ġlanding ViewModel . screen State . observe ( view Lifecycle Owner ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġrender ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġinit Views () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġinit Views () Ġ{ ĊĠĠĠĠĠĠĠ Ġbinding . re cyclerView . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlayout Manager Ġ= ĠLinearLayoutManager ( context ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġadapter Ġ= Ġlanding Adapter ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġpar allax Scroll Listener Ġ= ĠPar allax Scroll Listener (). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġinit With ( binding . re cyclerView , Ġlifecycle ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġheader Controller Ġ= ĠHeader Controller () ĊĠĠĠĠĠĠĠ Ġno Data Controller Ġ= ĠNo Data Controller Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġlanding ViewModel . retry Loading () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġabout Controller Ġ= ĠAbout Controller () ĊĠĠĠĠĠĠĠ Ġsections Header Controller Ġ= ĠSe ctions Header Controller () ĊĠĠĠĠĠĠĠ Ġquotes Controller Ġ= ĠQu otes Controller ( parallax Scroll Listener ) ĊĠĠĠĠĠĠĠ Ġour Team Controller Ġ= ĠOur Team Controller ( parallax Scroll Listener ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbrowse Url ( it ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġrender ( screen Model : ĠLand ing Screen Model ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval Ġitem List Ġ= ĠItem List . create () ĊĊĠĠĠĠĠĠĠ Ġwhen Ġ( screen Model . load State ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ ĠLoad State . PROGRESS Ġ-> Ġshow Progress () ĊĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> Ġhide Progress () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġitem List . add If ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġscreen Model . isEmpty () Ġ&& Ġscreen Model . load State Ġ== ĠLoad State . ERROR _ LOADING , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġno Data Controller ĊĠĠĠĠĠĠĠ Ġ) ĊĊĠĠĠĠĠĠĠ Ġscreen Model . landing Model ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitem List . add ( header Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add ( it . about Info , Ġabout Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add If ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . quotes . isNotEmpty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . landing _ adapter _ item _ header _ quotes , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsections Header Controller ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add If ( it . quotes . isNotEmpty (), Ġit . quotes , Ġquotes Controller ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. add If ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġit . team Members . isNotEmpty (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠR . string . landing _ adapter _ item _ header _ our _ team , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsections Header Controller ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. addAll ( it . team Members , Ġour Team Controller ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġlanding Adapter . set Items ( item List ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġshow Progress () Ġ= Ġwith ( binding . h ats Progress Animation View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstart Animation () ĊĠĠĠĠĠĠĠ Ġvisible () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun Ġhide Progress () Ġ= Ġwith ( binding . h ats Progress Animation View ) Ġ{ ĊĠĠĠĠĠĠĠ Ġstop Animation () ĊĠĠĠĠĠĠĠ Ġgone () ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġfun Ġon Destroy () Ġ{ ĊĠĠĠĠĠĠĠ Ġsuper . on Destroy () ĊĠĠĠĠĠĠĠ Ġpar allax Scroll Listener Ġ= Ġnull ĊĠĠĠ Ġ} Ċ }