package Ġtech . sk ot . core . components Ċ Ċ import Ġandroid . os . Parcelable Ċ import Ġandroidx . fragment . app . Fragment Ċ import Ġandroidx . recyclerview . widget . RecyclerView Ċ import Ġtech . sk ot . view . live . Mutable SK LiveData Ċ import Ġtech . sk ot . view . live . SK Message Ċ import Ġtech . sk ot . view legacy . R Ċ Ċ open Ġclass ĠSK ListView Proxy ( ĊĠĠĠ Ġprivate Ġval Ġlayout Mode : ĠSK List VC . Layout Mode Ġ= ĠSK List VC . Layout Mode . Linear ( true ), ĊĠĠĠ Ġprivate Ġval Ġreverse : ĠBoolean Ġ= Ġfalse , ĊĠĠĠ Ġprivate Ġval Ġanimate : ĠBoolean Ġ= Ġtrue , ĊĠĠĠ Ġprivate Ġval Ġanimate Item : ĠBoolean Ġ= Ġfalse Ċ ) Ġ: ĠSK Component View Proxy < RecyclerView >(), ĠSK List VC Ġ{ ĊĊĠĠĠ Ġprivate Ġval Ġitems LD : ĠMutable SK LiveData < List < Triple < SK Component View Proxy <* >, ĠAny , Ġ( ()-> Unit )? >>> Ġ= ĠMutable SK LiveData ( emptyList ()) ĊĊĠĠĠ Ġoverride Ġvar Ġitems : ĠList < Triple < SK Component VC , ĠAny , Ġ( ()-> Unit )? >> ĊĠĠĠĠĠĠĠ Ġget () Ġ= Ġitems LD . value ĊĠĠĠĠĠĠĠ Ġset ( new Val ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġitems LD . post Value ( new Val Ġas ĠList < Triple < SK Component View Proxy <* >, ĠAny , Ġ( ()-> Unit )? >>) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġs roll To Position Message Ġ= ĠSK Message < Int >() ĊĠĠĠ Ġoverride Ġfun Ġscroll To Position ( position : ĠInt ) Ġ{ ĊĠĠĠĠĠĠĠ Ġs roll To Position Message . post ( position ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġval Ġsave Signal : ĠSK Message < Unit > Ġ= ĠSK Message () ĊĠĠĠ Ġprivate Ġvar Ġ_ state : ĠParcel able ? Ġ= Ġnull ĊĊĠĠĠ Ġoverride Ġfun Ġsave State () Ġ{ ĊĠĠĠĠĠĠĠ Ġsave Signal . post ( Unit ) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġoverride Ġval Ġlayout Id Ġ= ĠR . layout . sk _ list ĊĊĠĠĠ Ġoverride Ġfun Ġbind To ( activity : ĠSK Activity , Ġfragment : ĠFragment ?, Ġbinding : ĠRecyclerView ) Ġ= ĊĠĠĠĠĠĠĠĠĠĠĠ ĠSK ListView ( layout Mode , Ġreverse , Ġanimate , Ġanimate Item , Ġthis , Ġactivity , Ġfragment , Ġbinding ). apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġitems LD . observe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġon Items ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsave Signal . observe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state Ġ= Ġsave State () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġs roll To Position Message . observe Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscroll To Position ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ_ state ?. let Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġrestore State ( it ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĊĊ Ċ }