From d74534d96bbe6cd5b1d24df70b7065ab9d01e1b3 Mon Sep 17 00:00:00 2001 From: Alex Gabor Date: Tue, 1 Mar 2022 13:20:25 +0200 Subject: [PATCH] Show error on home screen --- .../ui/compose/screen/home/HomeScreen.kt | 40 +++++++++++++------ 1 file changed, 28 insertions(+), 12 deletions(-) diff --git a/app/src/main/java/org/fnives/test/showcase/ui/compose/screen/home/HomeScreen.kt b/app/src/main/java/org/fnives/test/showcase/ui/compose/screen/home/HomeScreen.kt index cdbda71..9c23830 100644 --- a/app/src/main/java/org/fnives/test/showcase/ui/compose/screen/home/HomeScreen.kt +++ b/app/src/main/java/org/fnives/test/showcase/ui/compose/screen/home/HomeScreen.kt @@ -16,6 +16,7 @@ import androidx.compose.ui.graphics.ColorFilter import androidx.compose.ui.layout.ContentScale import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource +import androidx.compose.ui.text.style.TextAlign import androidx.compose.ui.unit.dp import coil.compose.rememberImagePainter import com.google.accompanist.swiperefresh.SwipeRefresh @@ -39,18 +40,23 @@ fun HomeScreen( .clickable { homeScreenState.onLogout() } ) } - SwipeRefresh( - state = rememberSwipeRefreshState(isRefreshing = homeScreenState.loading), - onRefresh = { - homeScreenState.onRefresh() - }) { - LazyColumn { - items(homeScreenState.content) { item -> - Item( - Modifier.padding(horizontal = 16.dp, vertical = 8.dp), - favouriteContent = item, - onFavouriteToggle = { homeScreenState.onFavouriteToggleClicked(item.content.id) } - ) + Box { + if (homeScreenState.isError) { + ErrorText(Modifier.align(Alignment.Center)) + } + SwipeRefresh( + state = rememberSwipeRefreshState(isRefreshing = homeScreenState.loading), + onRefresh = { + homeScreenState.onRefresh() + }) { + LazyColumn(modifier = Modifier.fillMaxSize()) { + items(homeScreenState.content) { item -> + Item( + Modifier.padding(horizontal = 16.dp, vertical = 8.dp), + favouriteContent = item, + onFavouriteToggle = { homeScreenState.onFavouriteToggleClicked(item.content.id) } + ) + } } } } @@ -98,3 +104,13 @@ private fun Title(modifier: Modifier = Modifier) { style = MaterialTheme.typography.h4 ) } + +@Composable +private fun ErrorText(modifier: Modifier = Modifier) { + Text( + stringResource(id = R.string.something_went_wrong), + modifier = modifier.padding(16.dp), + style = MaterialTheme.typography.h4, + textAlign = TextAlign.Center + ) +} \ No newline at end of file