/* Ċ Ġ* ĠCopyright Ġ( c ) ĠFacebook , ĠInc . Ġand Ġits Ġaffiliates . Ċ Ġ* Ċ Ġ* Ġ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 Ċ Ġ* Ċ Ġ* ĠĠĠĠ Ġhttp :// 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 Ġcom . facebook . samples . l ith o . kotlin . l ith o graphy . sections Ċ Ċ import Ġcom . facebook . l ith o . annotations . Prop Ċ import Ġcom . facebook . l ith o . sections . Children Ċ import Ġcom . facebook . l ith o . sections . Section Context Ċ import Ġcom . facebook . l ith o . sections . annotations . Group Section Spec Ċ import Ġcom . facebook . l ith o . sections . annotations . On Create Children Ċ import Ġcom . facebook . l ith o . sections . annotations . On Viewport Changed Ċ import Ġcom . facebook . l ith o . sections . common . Single Component Section Ċ import Ġcom . facebook . samples . l ith o . kotlin . l ith o graphy . components . Loading Component Ċ import Ġcom . facebook . samples . l ith o . kotlin . l ith o graphy . data . De cade Ċ import Ġcom . facebook . samples . l ith o . kotlin . l ith o graphy . data . Fetcher Ċ Ċ @ Group Section Spec Ċ object ĠL ith o Feed Section Spec Ġ{ ĊĊĠ Ġ@ On Create Children ĊĠ Ġfun ĠonCreate Children ( ĊĠĠĠĠĠ Ġc : ĠSection Context , ĊĠĠĠĠĠ Ġ@ Prop Ġde ca des : ĠList < De cade >, ĊĠĠĠĠĠ Ġ@ Prop Ġloading : ĠBoolean ): ĠChildren Ġ{ ĊĠĠĠ Ġval Ġchildren Ġ= ĠChildren . create () ĊĠĠĠ Ġval Ġde cade Sections Ġ= Ġde ca des ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠ ĠDec ade Section . create ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. de cade ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. key ("${ it . year }") ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. build () ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġchildren . child ( de cade Sections ) ĊĊĠĠĠ Ġif Ġ( loading ) Ġ{ ĊĠĠĠĠĠ Ġchildren . child ( ĊĠĠĠĠĠĠĠĠĠ ĠSingle Component Section . create ( c ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. component ( Loading Component ())) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġreturn Ġchildren . build () ĊĠ Ġ} ĊĊĠ Ġ@ On Viewport Changed ĊĠ Ġfun Ġon Viewport Changed ( ĊĠĠĠĠĠ Ġc : ĠSection Context , ĊĠĠĠĠĠ Ġfirst Visible : ĠInt , ĊĠĠĠĠĠ Ġlast Visible : ĠInt , ĊĠĠĠĠĠ Ġtotal Count : ĠInt , ĊĠĠĠĠĠ Ġf ist Fully Visible : ĠInt , ĊĠĠĠĠĠ Ġlast Fully Visible : ĠInt , ĊĠĠĠĠĠ Ġ@ Prop Ġfetch er : ĠFetch er , ĊĠĠĠĠĠ Ġ@ Prop Ġde ca des : ĠList < De cade > ĊĠ Ġ) Ġ{ ĊĠĠĠ Ġval Ġthreshold Ġ= Ġ 2 ĊĠĠĠ Ġif Ġ( total Count Ġ- Ġlast Visible Ġ< Ġthreshold ) Ġ{ ĊĠĠĠĠĠ Ġfetch er ( de ca des . last (). year ) ĊĠĠĠ Ġ} ĊĠ Ġ} Ċ } Ċ