package Ġcom . enes k ay ik lik . wall up . feature _ detail . presentation . component Ċ Ċ import Ġandroidx . compose . animation . Experimental Animation Api Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . layout . Box Ċ import Ġandroidx . compose . foundation . layout . fill MaxSize Ċ import Ġandroidx . compose . foundation . layout . padding Ċ import Ġandroidx . compose . foundation . layout . size Ċ import Ġandroidx . compose . foundation . lazy . Lazy List Scope Ċ import Ġandroidx . compose . material . Experimental Material Api Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Alignment Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . compose . ui . graphics . Color Ċ import Ġandroidx . compose . ui . platform . Local Configuration Ċ import Ġandroidx . compose . ui . unit . dp Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġco il . compose . Image Painter Ċ import Ġco il . compose . remember Image Painter Ċ import Ġcom . enes k ay ik lik . wall up . feature _ detail . domain . model . Detail Event Ċ import Ġcom . enes k ay ik lik . wall up . feature _ detail . domain . model . Detail State Ċ Ċ @ Experimental Co il Api Ċ @ Experimental Animation Api Ċ @ Experimental Material Api Ċ fun ĠLazy List Scope . image Item ( ĊĠĠĠ Ġm Color : ĠColor , ĊĠĠĠ Ġthumbnail : ĠString ?, ĊĠĠĠ Ġdetail State : ĠDetail State , ĊĠĠĠ Ġon Event : Ġ( Detail Event ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġitem Ġ{ ĊĠĠĠĠĠĠĠ ĠImage Item ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġm Color Ġ= Ġm Color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Ġ= Ġthumbnail , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġdetail State Ġ= Ġdetail State , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Event Ġ= Ġon Event ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ } Ċ Ċ @ Experimental Co il Api Ċ @ Experimental Material Api Ċ @ Experimental Animation Api Ċ @ Composable Ċ private Ġfun ĠImage Item ( ĊĠĠĠ Ġm Color : ĠColor , ĊĠĠĠ Ġthumbnail : ĠString ?, ĊĠĠĠ Ġdetail State : ĠDetail State , ĊĠĠĠ Ġon Event : Ġ( Detail Event ) Ġ-> ĠUnit Ċ ) Ġ{ ĊĠĠĠ Ġval Ġlocale Config Ġ= ĠLocal Configuration . current ĊĠĠĠ ĠBox ( ĊĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. size ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġwidth Ġ= Ġlocale Config . screen Width Dp . dp Ġ+ Ġ 5 . dp , ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġheight Ġ= Ġlocale Config . screen Height Dp . dp Ġ- Ġ 4 8 . dp ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ. background ( m Color ) ĊĠĠĠ Ġ) Ġ{ ĊĠĠĠĠĠĠĠ Ġval ĠimageUrl Ġ= Ġdetail State . image Detail ?. full Image ĊĠĠĠĠĠĠĠ Ġval Ġpainter Ġ= Ġremember Image Painter ( data Ġ= ĠimageUrl ) ĊĠĠĠĠĠĠĠ Ġval Ġthumbnail Painter Ġ= Ġremember Image Painter ( data Ġ= Ġthumbnail ) ĊĠĠĠĠĠĠĠ Ġon Event ( Detail Event . Update Drawable (( p ainter . state Ġas ? ĠImage Painter . State . Success )?. result ?. drawable )) ĊĠĠĠĠĠĠĠ ĠDetail Image Content ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġpainter Ġ= Ġpainter , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Painter Ġ= Ġthumbnail Painter , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. fill MaxSize () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Center ) ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠĠĠĠĠ ĠDetail Button Stack ( ĊĠĠĠĠĠĠĠĠĠĠĠ Ġmodifier Ġ= ĠModifier ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. align ( Alignment . Bottom Center ) ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ. padding ( vertical Ġ= Ġ 2 4 . dp ), ĊĠĠĠĠĠĠĠĠĠĠĠ ĠimageUrl Ġ= ĠimageUrl Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġthumbnail Url Ġ= Ġthumbnail Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Book marked Ġ= Ġdetail State . image Detail ?. is Book marked Ġ?: Ġfalse , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Id Ġ= Ġdetail State . image Detail ?. id Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġimage Bitmap Ġ= Ġdetail State . image Drawable , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Downloading Ġ= Ġdetail State . current Download Id Ġ!= Ġnull , ĊĠĠĠĠĠĠĠĠĠĠĠ ĠcreatedAt Ġ= Ġdetail State . image Detail ?. createdAt Ġ?: Ġ"", ĊĠĠĠĠĠĠĠĠĠĠĠ Ġis Visible Ġ= Ġpainter . state Ġis ĠImage Painter . State . Success , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġbuttons BackColor Ġ= Ġdetail State . image Detail ?. color , ĊĠĠĠĠĠĠĠĠĠĠĠ Ġon Event Ġ= Ġon Event ĊĠĠĠĠĠĠĠ Ġ) ĊĠĠĠ Ġ} Ċ }