package Ġkt . mobile . rick and mort y compose . ui . home Ċ Ċ import Ġandroidx . compose . foundation . background Ċ import Ġandroidx . compose . foundation . lazy . Lazy Column Ċ import Ġandroidx . compose . material . Material Theme Ċ import Ġandroidx . compose . runtime . Composable Ċ import Ġandroidx . compose . ui . Modifier Ċ import Ġandroidx . paging . Load State Ċ import Ġandroidx . paging . compose . collect As Lazy Paging Items Ċ import Ġandroidx . paging . compose . items Ċ import Ġco il . annotation . Experimental Co il Api Ċ import Ġkotlinx . coroutines . Flow Preview Ċ import Ġkt . mobile . rick and mort y compose . ui . Main ViewModel Ċ import Ġkt . mobile . rick and mort y compose . ui . components . Show Progress Ċ import Ġkt . mobile . rick and mort y compose . ui . components . Snackbar Refresh Ċ import Ġkt . mobile . rick and mort y compose . ui . navigation . Main Actions Ċ Ċ @ Experimental Co il Api Ċ @ Flow Preview Ċ @ Composable Ċ fun ĠHome Content Screen ( viewModel : ĠMain ViewModel , Ġactions : ĠMain Actions ) Ġ{ ĊĊĊĠĠĠ Ġval Ġcharacters Ġ= ĠviewModel . characters List . collect As Lazy Paging Items () ĊĊĠĠĠ ĠLazy Column ( Modifier . background ( Material Theme . colors . surface )) Ġ{ ĊĠĠĠĠĠĠĠ Ġitems ( characters ) Ġ{ Ġcharacter Ġ-> ĊĠĠĠĠĠĠĠĠĠĠĠ ĠCharacter Item ( character Ġ= Ġcharacter , Ġactions Ġ= Ġactions ) ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠĠĠĠĠ Ġcharacters . apply Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠ Ġwhen Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload State . refresh Ġis ĠLoad State . Loading Ġ-> Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShow Progress () ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload State . append Ġis ĠLoad State . Loading Ġ-> Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠShow Progress () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload State . refresh Ġis ĠLoad State . Error Ġ-> Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġcharacters . load State . refresh Ġas ĠLoad State . Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar Refresh ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġerror . error . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġretry () Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġload State . append Ġis ĠLoad State . Error Ġ-> Ġitem Ġ{ ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġval Ġerror Ġ= Ġcharacters . load State . refresh Ġas ĠLoad State . Error ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠSn ackbar Refresh ( ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ ĠerrorMessage Ġ= Ġerror . error . message . toString () ĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ) Ġ{ Ġretry () Ġ} ĊĊĠĠĠĠĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠĠĠĠĠ Ġ} ĊĠĠĠĠĠĠĠ Ġ} ĊĊĠĠĠ Ġ} Ċ Ċ } ĊĊ