More progress

caren/tag_navigate_to_browse
Caren Chang 2 years ago committed by Caren
parent 46572d37fa
commit dd0c546c98

@ -18,6 +18,7 @@ package com.google.samples.apps.nowinandroid.core.ui
import android.content.Intent import android.content.Intent
import android.net.Uri import android.net.Uri
import android.util.Log
import androidx.annotation.StringRes import androidx.annotation.StringRes
import androidx.compose.foundation.layout.fillMaxWidth import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.wrapContentSize import androidx.compose.foundation.layout.wrapContentSize
@ -81,6 +82,7 @@ fun LazyGridScope.newsFeed(
NewsResourceCardExpanded( NewsResourceCardExpanded(
newsResource = saveableNewsResource.newsResource, newsResource = saveableNewsResource.newsResource,
isBookmarked = saveableNewsResource.isSaved, isBookmarked = saveableNewsResource.isSaved,
onTopicClicked = { Log.i("Caren", "Clicked on topic") },
onClick = { ContextCompat.startActivity(context, launchResourceIntent, null) }, onClick = { ContextCompat.startActivity(context, launchResourceIntent, null) },
onToggleBookmark = { onToggleBookmark = {
onNewsResourcesCheckedChanged( onNewsResourcesCheckedChanged(

@ -82,6 +82,7 @@ fun NewsResourceCardExpanded(
newsResource: NewsResource, newsResource: NewsResource,
isBookmarked: Boolean, isBookmarked: Boolean,
onToggleBookmark: () -> Unit, onToggleBookmark: () -> Unit,
onTopicClicked: (topicId: String) -> Unit,
onClick: () -> Unit, onClick: () -> Unit,
modifier: Modifier = Modifier modifier: Modifier = Modifier
) { ) {
@ -123,7 +124,7 @@ fun NewsResourceCardExpanded(
Spacer(modifier = Modifier.height(12.dp)) Spacer(modifier = Modifier.height(12.dp))
NewsResourceShortDescription(newsResource.content) NewsResourceShortDescription(newsResource.content)
Spacer(modifier = Modifier.height(12.dp)) Spacer(modifier = Modifier.height(12.dp))
NewsResourceTopics(newsResource.topics) NewsResourceTopics(newsResource.topics, onTopicClicked)
} }
} }
} }
@ -267,12 +268,9 @@ fun NewsResourceShortDescription(
@Composable @Composable
fun NewsResourceTopics( fun NewsResourceTopics(
topics: List<Topic>, topics: List<Topic>,
onTopicClicked: (topicId: String) -> Unit,
modifier: Modifier = Modifier modifier: Modifier = Modifier
) { ) {
// Store the ID of the Topic which has its "following" menu expanded, if any.
// To avoid UI confusion, only one topic can have an expanded menu at a time.
var expandedTopicId by remember { mutableStateOf<String?>(null) }
Row( Row(
modifier = modifier.horizontalScroll(rememberScrollState()), // causes narrow chips modifier = modifier.horizontalScroll(rememberScrollState()), // causes narrow chips
horizontalArrangement = Arrangement.spacedBy(4.dp), horizontalArrangement = Arrangement.spacedBy(4.dp),
@ -280,9 +278,7 @@ fun NewsResourceTopics(
for (topic in topics) { for (topic in topics) {
NiaTopicTag( NiaTopicTag(
followed = true, // ToDo: Check if topic is followed followed = true, // ToDo: Check if topic is followed
onClick = { onClick = { onTopicClicked(topic.id) },
// Navigate to browse topic
},
text = { Text(text = topic.name.uppercase(Locale.getDefault())) } text = { Text(text = topic.name.uppercase(Locale.getDefault())) }
) )
} }
@ -318,7 +314,8 @@ fun ExpandedNewsResourcePreview() {
newsResource = previewNewsResources[0], newsResource = previewNewsResources[0],
isBookmarked = true, isBookmarked = true,
onToggleBookmark = {}, onToggleBookmark = {},
onClick = {} onClick = {},
onTopicClicked = {}
) )
} }
} }

@ -41,6 +41,7 @@ fun <T> LazyListScope.newsResourceCardItems(
isBookmarkedMapper: (item: T) -> Boolean, isBookmarkedMapper: (item: T) -> Boolean,
onToggleBookmark: (item: T) -> Unit, onToggleBookmark: (item: T) -> Unit,
onItemClick: ((item: T) -> Unit)? = null, onItemClick: ((item: T) -> Unit)? = null,
onTopicClicked: (item: T) -> Unit,
itemModifier: Modifier = Modifier, itemModifier: Modifier = Modifier,
) = items( ) = items(
items = items, items = items,
@ -61,7 +62,8 @@ fun <T> LazyListScope.newsResourceCardItems(
else -> onItemClick(item) else -> onItemClick(item)
} }
}, },
modifier = itemModifier modifier = itemModifier,
onTopicClicked = { }
) )
}, },
) )

@ -180,7 +180,8 @@ private fun LazyListScope.authorCards(
newsResourceMapper = { it.newsResource }, newsResourceMapper = { it.newsResource },
isBookmarkedMapper = { it.isSaved }, isBookmarkedMapper = { it.isSaved },
onToggleBookmark = { onBookmarkChanged(it.newsResource.id, !it.isSaved) }, onToggleBookmark = { onBookmarkChanged(it.newsResource.id, !it.isSaved) },
itemModifier = Modifier.padding(24.dp) itemModifier = Modifier.padding(24.dp),
onTopicClicked = { }
) )
} }
is NewsUiState.Loading -> item { is NewsUiState.Loading -> item {

@ -177,8 +177,9 @@ private fun LazyListScope.TopicCards(
items = news.news, items = news.news,
newsResourceMapper = { it.newsResource }, newsResourceMapper = { it.newsResource },
isBookmarkedMapper = { it.isSaved }, isBookmarkedMapper = { it.isSaved },
onToggleBookmark = { onBookmarkChanged(it.newsResource.id, !it.isSaved) }, onToggleBookmark = { /* TODO */ },
itemModifier = Modifier.padding(24.dp) itemModifier = Modifier.padding(24.dp),
onTopicClicked = { },
) )
} }
is NewsUiState.Loading -> item { is NewsUiState.Loading -> item {

Loading…
Cancel
Save