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.net.Uri
import android.util.Log
import androidx.annotation.StringRes
import androidx.compose.foundation.layout.fillMaxWidth
import androidx.compose.foundation.layout.wrapContentSize
@ -81,6 +82,7 @@ fun LazyGridScope.newsFeed(
NewsResourceCardExpanded(
newsResource = saveableNewsResource.newsResource,
isBookmarked = saveableNewsResource.isSaved,
onTopicClicked = { Log.i("Caren", "Clicked on topic") },
onClick = { ContextCompat.startActivity(context, launchResourceIntent, null) },
onToggleBookmark = {
onNewsResourcesCheckedChanged(

@ -82,6 +82,7 @@ fun NewsResourceCardExpanded(
newsResource: NewsResource,
isBookmarked: Boolean,
onToggleBookmark: () -> Unit,
onTopicClicked: (topicId: String) -> Unit,
onClick: () -> Unit,
modifier: Modifier = Modifier
) {
@ -123,7 +124,7 @@ fun NewsResourceCardExpanded(
Spacer(modifier = Modifier.height(12.dp))
NewsResourceShortDescription(newsResource.content)
Spacer(modifier = Modifier.height(12.dp))
NewsResourceTopics(newsResource.topics)
NewsResourceTopics(newsResource.topics, onTopicClicked)
}
}
}
@ -267,12 +268,9 @@ fun NewsResourceShortDescription(
@Composable
fun NewsResourceTopics(
topics: List<Topic>,
onTopicClicked: (topicId: String) -> Unit,
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(
modifier = modifier.horizontalScroll(rememberScrollState()), // causes narrow chips
horizontalArrangement = Arrangement.spacedBy(4.dp),
@ -280,9 +278,7 @@ fun NewsResourceTopics(
for (topic in topics) {
NiaTopicTag(
followed = true, // ToDo: Check if topic is followed
onClick = {
// Navigate to browse topic
},
onClick = { onTopicClicked(topic.id) },
text = { Text(text = topic.name.uppercase(Locale.getDefault())) }
)
}
@ -318,7 +314,8 @@ fun ExpandedNewsResourcePreview() {
newsResource = previewNewsResources[0],
isBookmarked = true,
onToggleBookmark = {},
onClick = {}
onClick = {},
onTopicClicked = {}
)
}
}

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

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

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

Loading…
Cancel
Save