package Ġcom . github . sky fe 7 9 . android . library . app . examples . collection view . reducer Ċ Ċ import Ġandroidx . recyclerview . widget . Grid LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear LayoutManager Ċ import Ġandroidx . recyclerview . widget . Linear Snap Helper Ċ import Ġandroidx . recyclerview . widget . St agger ed Grid LayoutManager Ċ import Ġcom . github . sky fe 7 9 . android . library . app . examples . collection view . Collection State Ċ import Ġcom . github . sky fe 7 9 . android . library . app . examples . collection view . Collection ViewModel Ċ import Ġcom . github . sky fe 7 9 . android . library . app . examples . collection view . action . Load Action Ċ import Ġcom . github . sky fe 7 9 . android . library . app . examples . emo j icol lection . models . Emoji Box Model Ċ import Ġcom . github . sky fe 7 9 . android . library . app . examples . emo j icol lection . util . Emoji Helper Ċ import Ġcom . github . sky fe 7 9 . android . library . app . examples . recyclerview . model . Text Message Ċ import Ġcom . github . sky fe 7 9 . android . react component kit . collection models . Default Section Model Ċ import Ġcom . github . sky fe 7 9 . android . react component kit . redux . Action Ċ import Ġcom . github . sky fe 7 9 . android . react component kit . redux . State Ċ import Ġio . reactivex . Observable Ċ Ċ fun ĠCollection ViewModel . load Emoji ( state : ĠCollection State , Ġaction : ĠLoad Action ): ĠCollection State Ġ{ ĊĠĠĠ Ġval Ġemoji Collection Ġ= Ġ( 1 .. 5 ) ĊĠĠĠĠĠĠĠ Ġ. map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ( 1 .. ( 4 0 .. 8 0 ). random ()). map Ġ{ ĠEmoji Helper . emoji Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġstate . copy ( emo jis Ġ= Ġemoji Collection ) Ċ } Ċ Ċ fun ĠCollection ViewModel . make Section Models ( state : ĠCollection State ): ĠCollection State Ġ{ ĊĠĠĠ Ġval Ġcolors Ġ= ĠlistOf ( ĊĠĠĠĠĠĠĠĠ 0 xff d 0 1 7 7 4 . toInt (), ĊĠĠĠĠĠĠĠĠ 0 xfff 7 f 9 3 c . toInt (), ĊĠĠĠĠĠĠĠĠ 0 xfff 0 7 7 7 7 . toInt (), ĊĠĠĠĠĠĠĠĠ 0 xff fc ce 6 2 . toInt (), ĊĠĠĠĠĠĠĠĠ 0 xff 5 8 c 8 d 8 . toInt () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġval Ġsection Models Ġ= Ġstate . emo jis . map Indexed Ġ{ Ġindex , Ġlist Ġ-> ĊĠĠĠĠĠĠĠ Ġval Ġemoji Box Models Ġ= Ġlist . map Ġ{ ĠEmoji Box Model ( it ) Ġ} ĊĠĠĠĠĠĠĠ ĠDefault Section Model ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġemoji Box Models , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheader Ġ= ĠText Message (" Section ĠHeader Ġ#$ index ", Ġcolors [ index ], Ġtrue ), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġfooter Ġ= ĠText Message (" Section ĠFooter Ġ#$ index ", Ġcolors [ index ], Ġfalse ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ{ Ġre cyclerView Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ Ġre cyclerView . layout Manager Ġ= Ġwhen ( index ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 0 Ġ-> ĠGrid LayoutManager ( getApplication (), Ġ 8 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 1 Ġ-> ĠGrid LayoutManager ( getApplication (), Ġ 4 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 2 Ġ-> ĠSt agger ed Grid LayoutManager ( 2 , ĠSt agger ed Grid LayoutManager . VERTICAL ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ 3 Ġ-> ĠGrid LayoutManager ( getApplication (), Ġ 3 ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġelse Ġ-> ĠLinearLayoutManager ( getApplication (), ĠLinearLayoutManager . HORIZONTAL , Ġfalse ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠ Ġif Ġ( index Ġ== Ġ 4 ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġsnap Helper Ġ= ĠLinear Snap Helper () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsnap Helper . attach To RecyclerView ( re cyclerView ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĠĠĠ Ġreturn Ġstate . copy ( sections Ġ= Ġsection Models ) Ċ }