/* Ċ Ġ* ĠCopyright Ġ 2 0 2 0 ĠI ce Rock ĠMAG ĠInc . ĠUse Ġof Ġthis Ġsource Ġcode Ġis Ġgoverned Ġby Ġthe ĠApache Ġ 2 . 0 Ġlicense . Ċ Ġ*/ Ċ Ċ package Ġdev . icer ock . mo ko . widgets . sample Ċ Ċ import Ġdev . icer ock . mo ko . mv vm . li ved ata . LiveData Ċ import Ġdev . icer ock . mo ko . mv vm . li ved ata . Mutable LiveData Ċ import Ġdev . icer ock . mo ko . mv vm . li ved ata . map Ċ import Ġdev . icer ock . mo ko . resources . desc . desc Ċ import Ġdev . icer ock . mo ko . units . Collection Unit Item Ċ import Ġdev . icer ock . mo ko . units . Table Unit Item Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . Image Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . List Widget Ċ import Ġdev . icer ock . mo ko . widgets . collection . Collection Widget Ċ import Ġdev . icer ock . mo ko . widgets . collection . collection Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . constraint Ċ import Ġdev . icer ock . mo ko . widgets . core . Image Ċ import Ġdev . icer ock . mo ko . widgets . core . Theme Ċ import Ġdev . icer ock . mo ko . widgets . core . Widget Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . image Ċ import Ġdev . icer ock . mo ko . widgets . imagen etwork . network Ċ import Ġdev . icer ock . mo ko . widgets . core . widget . list Ċ import Ġdev . icer ock . mo ko . widgets . core . screen . Args Ċ import Ġdev . icer ock . mo ko . widgets . core . screen . Widget Screen Ċ import Ġdev . icer ock . mo ko . widgets . core . screen . navigation . NavigationBar Ċ import Ġdev . icer ock . mo ko . widgets . core . screen . navigation . Navigation Item Ċ import Ġdev . icer ock . mo ko . widgets . core . style . view . Size Spec Ċ import Ġdev . icer ock . mo ko . widgets . core . style . view . Widget Size Ċ import Ġdev . icer ock . mo ko . widgets . core . units . Unit Item Root Ċ import Ġdev . icer ock . mo ko . widgets . core . units . Widgets Collection Unit Item Ċ import Ġdev . icer ock . mo ko . widgets . core . units . Widgets Table Unit Item Ċ Ċ class ĠCollection Screen ( ĊĠĠĠ Ġprivate Ġval Ġtheme : ĠTheme Ċ ) Ġ: ĠWidget Screen < Args . Empty >(), ĠNavigation Item Ġ{ ĊĊĠĠĠ Ġoverride Ġval Ġnavigation Bar : ĠNavigation Bar Ġ= ĠNavigation Bar . Normal ( title Ġ= Ġ" Collection Ġin Ġlist ". desc ()) ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Content Widget (): ĠWidget < Widget Size . Const < Size Spec . As Parent , ĠSize Spec . As Parent >> Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġconstraint ( size Ġ= ĠWidget Size . As Parent ) Ġ{ ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġcontent Ġ= Ġ+ content () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġconstraints Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġtop To Top Ġroot . safe Area ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġleft Right To Left Right Ġroot ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġcontent Ġbottom To Bottom Ġroot . safe Area ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTheme . content () Ġ= Ġlist ( ĊĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . Const ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= ĠSize Spec . As Parent , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= ĠSize Spec . Match Constraint ĊĠĠĠĠĠĠĠ Ġ), ĊĠĠĠĠĠĠĠ Ġid Ġ= ĠI ds . List , ĊĠĠĠĠĠĠĠ Ġitems Ġ= Ġlist Items () ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġprivate Ġfun ĠTheme . list Items () Ġ= ĠList < List < String >>( 1 0 ) Ġ{ ĊĠĠĠĠĠĠĠ ĠlistOf < String >( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// cdn . pix ab ay . com / photo / 2 0 1 5 / 0 4 / 2 3 / 2 2 / 0 0 / tree - 7 3 6 8 8 5 __ 3 4 0 . jpg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// cdn . pix ab ay . com / photo / 2 0 1 5 / 0 2 / 2 4 / 1 5 / 4 1 / dog - 6 4 7 5 2 8 __ 3 4 0 . jpg ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// images . pex els . com / photos / 8 1 4 4 9 9 / pex els - photo - 8 1 4 4 9 9 . jpeg ? auto = compress & cs = tin ys rgb & d pr = 1 & w = 5 0 0 ", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ" https :// dab 1 nms lv vn tp . cloudfront . net / wp - content / uploads / 2 0 1 6 / 0 3 / 1 4 5 8 2 8 9 9 5 7 power ful - images 3 . jpg " ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ}. map Indexed Ġ{ Ġindex , Ġurls Ġ-> ĊĠĠĠĠĠĠĠ ĠImage Slider Unit ( ĊĠĠĠĠĠĠĠĠĠĠĠ ĠitemId Ġ= Ġindex . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġurls . map Ġ{ ĠImage . network ( it ) Ġ}, ĊĠĠĠĠĠĠĠĠĠĠĠ Ġtheme Ġ= Ġthis ĊĠĠĠĠĠĠĠ Ġ) Ġas ĠTable Unit Item ĊĠĠĠ Ġ}. let Ġ{ ĠMutable LiveData ( it ) Ġ} ĊĊĠĠĠ Ġobject ĠI ds Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠList Ġ: ĠList Widget . Id ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠImage Slider Unit ( ĊĠĠĠ ĠitemId : ĠLong , ĊĠĠĠ Ġdata : ĠList < Image >, ĊĠĠĠ Ġprivate Ġval Ġtheme : ĠTheme Ċ ) Ġ: ĠWidget s Table Unit Item < List < Image >>( itemId , Ġdata ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġreuse Id : ĠString Ġ= Ġ" Image Slider Unit " ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Widget ( data : ĠLive Data < List < Image >> ): ĠUnit Item Root Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn ĠUnit Item Root . from ( theme . create Unit Widget ( data )) ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġprivate Ġfun ĠTheme . create Unit Widget ( data : ĠLive Data < List < Image >>) Ġ= Ġcollection ( ĊĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . Const ( Size Spec . As Parent , ĠSize Spec . Exact ( 1 8 2 f )), ĊĠĠĠĠĠĠĠ Ġid Ġ= ĠId . Collection , ĊĠĠĠĠĠĠĠ Ġitems Ġ= Ġdata . map Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġit . map Indexed Ġ{ Ġindex , Ġimage Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠCollection Image Unit Item ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠitemId Ġ= Ġindex . to Long (), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġdata Ġ= Ġimage , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġtheme Ġ= Ġtheme ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġas ĠCollection Unit Item ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ) ĊĊĠĠĠ Ġobject ĠId Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠCollection Ġ: ĠCollection Widget . Id ĊĠĠĠ Ġ} Ċ } Ċ Ċ class ĠCollection Image Unit Item ( ĊĠĠĠ ĠitemId : ĠLong , ĊĠĠĠ Ġdata : ĠImage , ĊĠĠĠ Ġprivate Ġval Ġtheme : ĠTheme Ċ ) Ġ: ĠWidget s Collection Unit Item < Image >( itemId , Ġdata ) Ġ{ ĊĠĠĠ Ġoverride Ġval Ġreuse Id : ĠString Ġ= Ġ" Collection Image Unit Item " ĊĊĠĠĠ Ġoverride Ġfun Ġcreate Widget ( data : ĠLive Data < Image >): ĠWidget < out ĠWidget Size > Ġ{ ĊĠĠĠĠĠĠĠ Ġreturn Ġwith ( theme ) Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġsize Ġ= ĠWidget Size . Const ( Size Spec . Exact ( 3 1 2 f ), ĠSize Spec . Exact ( 1 8 2 f )), ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġid Ġ= ĠId . Image , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġscale Type Ġ= ĠImage Widget . Scale Type . FILL , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġimage Ġ= Ġdata ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ Ġ} ĊĠĠĠ Ġ} ĊĊĠĠĠ Ġobject ĠId Ġ{ ĊĠĠĠĠĠĠĠ Ġobject ĠImage Ġ: ĠImage Widget . Id ĊĠĠĠ Ġ} Ċ } Ċ