diff --git a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt index 862aec6b2..9b831614e 100644 --- a/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt +++ b/core/ui/src/main/kotlin/com/google/samples/apps/nowinandroid/core/ui/NewsResourceCard.kt @@ -23,6 +23,7 @@ import android.view.View import androidx.compose.foundation.Canvas import androidx.compose.foundation.ExperimentalFoundationApi import androidx.compose.foundation.Image +import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.draganddrop.dragAndDropSource import androidx.compose.foundation.horizontalScroll import androidx.compose.foundation.layout.Arrangement @@ -95,6 +96,7 @@ fun NewsResourceCardExpanded( onClick: () -> Unit, onTopicClick: (String) -> Unit, modifier: Modifier = Modifier, + onLongClick: (() -> Unit)? = null, ) { val clickActionLabel = stringResource(R.string.core_ui_card_tap_action) val sharingLabel = stringResource(R.string.core_ui_feed_sharing) @@ -111,7 +113,6 @@ fun NewsResourceCardExpanded( } Card( - onClick = onClick, shape = RoundedCornerShape(16.dp), colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.surface), // Use custom label for accessibility services to communicate button's action to user. @@ -120,7 +121,11 @@ fun NewsResourceCardExpanded( .semantics { onClick(label = clickActionLabel, action = null) } - .testTag("newsResourceCard:${userNewsResource.id}"), + .testTag("newsResourceCard:${userNewsResource.id}") + .combinedClickable( + onClick = onClick, + onLongClick = onLongClick, + ), ) { Column { if (!userNewsResource.headerImageUrl.isNullOrEmpty()) { diff --git a/feature/bookmarks/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/impl/BookmarksScreen.kt b/feature/bookmarks/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/impl/BookmarksScreen.kt index 20abe5ca8..bdf602d0b 100644 --- a/feature/bookmarks/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/impl/BookmarksScreen.kt +++ b/feature/bookmarks/impl/src/main/kotlin/com/google/samples/apps/nowinandroid/feature/bookmarks/impl/BookmarksScreen.kt @@ -21,7 +21,6 @@ import androidx.activity.compose.BackHandler import androidx.annotation.VisibleForTesting import androidx.compose.foundation.Image import androidx.compose.foundation.clickable -import androidx.compose.foundation.combinedClickable import androidx.compose.foundation.gestures.Orientation import androidx.compose.foundation.layout.Arrangement import androidx.compose.foundation.layout.Box @@ -313,26 +312,16 @@ private fun BookmarksGrid( Box( modifier = Modifier .padding(horizontal = 8.dp) - .animateItem() - .combinedClickable( - onClick = { - if (isInSelectionMode) { - toggleSelection(userNewsResource.id) - } - }, - onLongClick = { - if (!isInSelectionMode) { - enterSelectionMode(userNewsResource.id) - } - }, - ), + .animateItem(), ) { Column { NewsResourceCardExpanded( userNewsResource = userNewsResource, isBookmarked = userNewsResource.isSaved, onClick = { - if (!isInSelectionMode) { + if (isInSelectionMode) { + toggleSelection(userNewsResource.id) + } else { analyticsHelper.logNewsResourceOpened( newsResourceId = userNewsResource.id, ) @@ -344,6 +333,9 @@ private fun BookmarksGrid( onNewsResourceViewed(userNewsResource.id) } }, + onLongClick = { + if (!isInSelectionMode) enterSelectionMode(userNewsResource.id) + }, hasBeenViewed = userNewsResource.hasBeenViewed, onToggleBookmark = { if (!isInSelectionMode) removeFromBookmarks(userNewsResource.id) }, onTopicClick = onTopicClick,