Merge pull request #427 from LinX64/bookmarks_empty_data

Handling empty bookmarks on Saved view
pull/445/head
Milosz Moczkowski 3 years ago committed by GitHub
commit bbc5460b62
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23

@ -17,10 +17,11 @@
package com.google.samples.apps.nowinandroid.feature.bookmarks package com.google.samples.apps.nowinandroid.feature.bookmarks
import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Arrangement
import androidx.compose.foundation.layout.ExperimentalLayoutApi import androidx.compose.foundation.layout.Box
import androidx.compose.foundation.layout.PaddingValues import androidx.compose.foundation.layout.PaddingValues
import androidx.compose.foundation.layout.Spacer import androidx.compose.foundation.layout.Spacer
import androidx.compose.foundation.layout.WindowInsets import androidx.compose.foundation.layout.WindowInsets
import androidx.compose.foundation.layout.fillMaxHeight
import androidx.compose.foundation.layout.fillMaxSize import androidx.compose.foundation.layout.fillMaxSize
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.safeDrawing import androidx.compose.foundation.layout.safeDrawing
@ -30,9 +31,10 @@ import androidx.compose.foundation.lazy.grid.GridCells.Adaptive
import androidx.compose.foundation.lazy.grid.GridItemSpan import androidx.compose.foundation.lazy.grid.GridItemSpan
import androidx.compose.foundation.lazy.grid.LazyVerticalGrid import androidx.compose.foundation.lazy.grid.LazyVerticalGrid
import androidx.compose.foundation.lazy.grid.rememberLazyGridState import androidx.compose.foundation.lazy.grid.rememberLazyGridState
import androidx.compose.material3.ExperimentalMaterial3Api import androidx.compose.material3.Text
import androidx.compose.runtime.Composable import androidx.compose.runtime.Composable
import androidx.compose.runtime.getValue import androidx.compose.runtime.getValue
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.testTag import androidx.compose.ui.platform.testTag
import androidx.compose.ui.res.stringResource import androidx.compose.ui.res.stringResource
@ -59,7 +61,6 @@ internal fun BookmarksRoute(
) )
} }
@OptIn(ExperimentalMaterial3Api::class, ExperimentalLayoutApi::class)
@Composable @Composable
fun BookmarksScreen( fun BookmarksScreen(
feedState: NewsFeedUiState, feedState: NewsFeedUiState,
@ -78,7 +79,9 @@ fun BookmarksScreen(
.fillMaxSize() .fillMaxSize()
.testTag("bookmarks:feed") .testTag("bookmarks:feed")
) { ) {
if (feedState is NewsFeedUiState.Loading) {
when (feedState) {
is NewsFeedUiState.Loading -> {
item(span = { GridItemSpan(maxLineSpan) }) { item(span = { GridItemSpan(maxLineSpan) }) {
NiaLoadingWheel( NiaLoadingWheel(
modifier = Modifier modifier = Modifier
@ -90,13 +93,27 @@ fun BookmarksScreen(
} }
} }
is NewsFeedUiState.Success -> {
if (feedState.feed.isNotEmpty()) {
newsFeed( newsFeed(
feedState = feedState, feedState = feedState,
onNewsResourcesCheckedChanged = { id, _ -> removeFromBookmarks(id) }, onNewsResourcesCheckedChanged = { id, _ -> removeFromBookmarks(id) },
) )
item(span = { GridItemSpan(maxLineSpan) }) { item(span = { GridItemSpan(maxLineSpan) }) {
Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.safeDrawing)) Spacer(Modifier.windowInsetsBottomHeight(WindowInsets.safeDrawing))
} }
} else item(span = { GridItemSpan(maxLineSpan) }) {
Box(
modifier = Modifier
.fillMaxHeight()
.wrapContentSize()
.testTag("bookmarks:empty"),
contentAlignment = Alignment.Center
) {
Text(text = stringResource(id = R.string.bookmarks_empty))
}
}
}
}
} }
} }

@ -20,4 +20,5 @@
<string name="top_app_bar_title">Saved</string> <string name="top_app_bar_title">Saved</string>
<string name="top_app_bar_action_search">Search</string> <string name="top_app_bar_action_search">Search</string>
<string name="top_app_bar_action_menu">Menu</string> <string name="top_app_bar_action_menu">Menu</string>
<string name="bookmarks_empty">No bookmarks yet!</string>
</resources> </resources>
Loading…
Cancel
Save