Make the labels scrollable, set background of focused list item

This commit is contained in:
Jackson Harper 2023-05-18 20:10:39 +08:00
parent c4510c7b55
commit 9183d3e64e
4 changed files with 27 additions and 6 deletions

View file

@ -277,7 +277,6 @@ fun LabelsSelectionSheetContent(
horizontalAlignment = Alignment.CenterHorizontally,
modifier = Modifier
.fillMaxSize()
.verticalScroll(rememberScrollState())
.padding(horizontal = 5.dp)
) {
@ -365,7 +364,13 @@ fun LabelsSelectionSheetContent(
}
if (filteredLabels.isNotEmpty()) {
FlowRow(modifier = Modifier.fillMaxWidth().padding(10.dp)) {
FlowRow(
modifier = Modifier
.fillMaxWidth()
.verticalScroll(rememberScrollState())
.padding(10.dp)
.padding(bottom = 55.dp)
) {
filteredLabels.forEach { label ->
val chipColors = LabelChipColors.fromHex(label.color)

View file

@ -165,6 +165,7 @@ fun LibraryViewContent(libraryViewModel: LibraryViewModel, modifier: Modifier) {
onRefresh = { libraryViewModel.refresh() }
)
val selectedItem: SavedItemWithLabelsAndHighlights? by libraryViewModel.actionsMenuItemLiveData.observeAsState()
val cardsData: List<SavedItemWithLabelsAndHighlights> by libraryViewModel.itemsLiveData.observeAsState(
listOf()
)
@ -188,10 +189,13 @@ fun LibraryViewContent(libraryViewModel: LibraryViewModel, modifier: Modifier) {
LibraryFilterBar(libraryViewModel)
}
items(cardsData) { cardDataWithLabels ->
val selected = cardDataWithLabels.savedItem.savedItemId == selectedItem?.savedItem?.savedItemId
SavedItemCard(
selected = selected,
savedItemViewModel = libraryViewModel,
savedItem = cardDataWithLabels,
onClickHandler = {
libraryViewModel.actionsMenuItemLiveData.postValue(null)
val activityClass =
if (cardDataWithLabels.savedItem.contentReader == "PDF") PDFReaderActivity::class.java else WebReaderLoadingContainerActivity::class.java
val intent = Intent(context, activityClass)

View file

@ -186,6 +186,7 @@ fun SearchViewContent(viewModel: SearchViewModel, modifier: Modifier) {
) {
items(cardsData) { cardDataWithLabels ->
SavedItemCard(
selected = false,
savedItemViewModel = viewModel,
savedItem = cardDataWithLabels,
onClickHandler = {

View file

@ -15,6 +15,8 @@ import androidx.compose.runtime.livedata.observeAsState
import androidx.compose.ui.Alignment
import androidx.compose.ui.Modifier
import androidx.compose.ui.draw.clip
import androidx.compose.ui.focus.focusTarget
import androidx.compose.ui.focus.onFocusChanged
import androidx.compose.ui.graphics.Color
import androidx.compose.ui.platform.LocalContext
import androidx.compose.ui.res.colorResource
@ -33,15 +35,23 @@ import coil.compose.rememberAsyncImagePainter
@OptIn(ExperimentalFoundationApi::class, ExperimentalLayoutApi::class)
@Composable
fun SavedItemCard(savedItemViewModel: SavedItemViewModel, savedItem: SavedItemWithLabelsAndHighlights, onClickHandler: () -> Unit, actionHandler: (SavedItemAction) -> Unit) {
val listState = rememberLazyListState()
fun SavedItemCard(
selected: Boolean,
savedItemViewModel: SavedItemViewModel,
savedItem: SavedItemWithLabelsAndHighlights,
onClickHandler: () -> Unit,
actionHandler: (SavedItemAction) -> Unit) {
// Log.d("selected", "is selected: ${selected}")
Column(
modifier = Modifier
modifier = Modifier
.combinedClickable(
onClick = onClickHandler,
onLongClick = { savedItemViewModel.actionsMenuItemLiveData.postValue(savedItem) }
onLongClick = {
savedItemViewModel.actionsMenuItemLiveData.postValue(savedItem)
}
)
.background(if (selected) MaterialTheme.colorScheme.surfaceVariant else MaterialTheme.colorScheme.background)
.fillMaxWidth()
) {
Row(
@ -51,6 +61,7 @@ fun SavedItemCard(savedItemViewModel: SavedItemViewModel, savedItem: SavedItemWi
.fillMaxWidth()
.padding(10.dp)
.background(Color.Transparent)
) {
Column(
verticalArrangement = Arrangement.spacedBy(5.dp),