Improve FeedTab look and feel
This commit is contained in:
parent
6f80179fb3
commit
9de8361a33
@ -2,23 +2,26 @@ package com.readrops.app.feeds
|
|||||||
|
|
||||||
import androidx.compose.foundation.ExperimentalFoundationApi
|
import androidx.compose.foundation.ExperimentalFoundationApi
|
||||||
import androidx.compose.foundation.combinedClickable
|
import androidx.compose.foundation.combinedClickable
|
||||||
import androidx.compose.foundation.layout.Box
|
import androidx.compose.foundation.layout.IntrinsicSize
|
||||||
import androidx.compose.foundation.layout.Row
|
import androidx.compose.foundation.layout.Row
|
||||||
import androidx.compose.foundation.layout.fillMaxWidth
|
import androidx.compose.foundation.layout.fillMaxWidth
|
||||||
|
import androidx.compose.foundation.layout.height
|
||||||
import androidx.compose.foundation.layout.padding
|
import androidx.compose.foundation.layout.padding
|
||||||
import androidx.compose.foundation.layout.size
|
import androidx.compose.foundation.layout.size
|
||||||
import androidx.compose.material3.MaterialTheme
|
import androidx.compose.material3.MaterialTheme
|
||||||
import androidx.compose.material3.Text
|
import androidx.compose.material3.Text
|
||||||
|
import androidx.compose.material3.VerticalDivider
|
||||||
import androidx.compose.runtime.Composable
|
import androidx.compose.runtime.Composable
|
||||||
import androidx.compose.ui.Alignment
|
import androidx.compose.ui.Alignment
|
||||||
import androidx.compose.ui.Modifier
|
import androidx.compose.ui.Modifier
|
||||||
import androidx.compose.ui.res.painterResource
|
import androidx.compose.ui.res.painterResource
|
||||||
import androidx.compose.ui.text.style.TextOverflow
|
import androidx.compose.ui.text.style.TextOverflow
|
||||||
|
import androidx.compose.ui.unit.dp
|
||||||
import coil.compose.AsyncImage
|
import coil.compose.AsyncImage
|
||||||
import com.readrops.app.R
|
import com.readrops.app.R
|
||||||
|
import com.readrops.app.util.theme.MediumSpacer
|
||||||
import com.readrops.app.util.theme.ShortSpacer
|
import com.readrops.app.util.theme.ShortSpacer
|
||||||
import com.readrops.app.util.theme.spacing
|
import com.readrops.app.util.theme.spacing
|
||||||
import com.readrops.app.util.toDp
|
|
||||||
import com.readrops.db.entities.Feed
|
import com.readrops.db.entities.Feed
|
||||||
|
|
||||||
@OptIn(ExperimentalFoundationApi::class)
|
@OptIn(ExperimentalFoundationApi::class)
|
||||||
@ -28,33 +31,44 @@ fun FeedItem(
|
|||||||
onClick: () -> Unit,
|
onClick: () -> Unit,
|
||||||
onLongClick: () -> Unit,
|
onLongClick: () -> Unit,
|
||||||
) {
|
) {
|
||||||
Box(
|
Row(
|
||||||
modifier = Modifier.combinedClickable(
|
modifier = Modifier
|
||||||
onClick = onClick,
|
.fillMaxWidth()
|
||||||
onLongClick = onLongClick
|
.height(IntrinsicSize.Min)
|
||||||
)
|
.padding(start = MaterialTheme.spacing.mediumSpacing)
|
||||||
|
.combinedClickable(
|
||||||
|
onClick = onClick,
|
||||||
|
onLongClick = onLongClick
|
||||||
|
)
|
||||||
) {
|
) {
|
||||||
|
VerticalDivider()
|
||||||
|
|
||||||
Row(
|
Row(
|
||||||
verticalAlignment = Alignment.CenterVertically,
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
modifier = Modifier
|
modifier = Modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
|
.height(IntrinsicSize.Min)
|
||||||
.padding(
|
.padding(
|
||||||
horizontal = MaterialTheme.spacing.mediumSpacing,
|
top = MaterialTheme.spacing.shortSpacing,
|
||||||
vertical = MaterialTheme.spacing.shortSpacing
|
bottom = MaterialTheme.spacing.shortSpacing,
|
||||||
|
end = MaterialTheme.spacing.mediumSpacing
|
||||||
)
|
)
|
||||||
) {
|
) {
|
||||||
|
MediumSpacer()
|
||||||
|
|
||||||
AsyncImage(
|
AsyncImage(
|
||||||
model = feed.iconUrl,
|
model = feed.iconUrl,
|
||||||
|
placeholder = painterResource(id = R.drawable.ic_rss_feed_grey),
|
||||||
error = painterResource(id = R.drawable.ic_rss_feed_grey),
|
error = painterResource(id = R.drawable.ic_rss_feed_grey),
|
||||||
contentDescription = feed.name!!,
|
contentDescription = feed.name!!,
|
||||||
modifier = Modifier.size(MaterialTheme.typography.bodyLarge.toDp())
|
modifier = Modifier.size(16.dp)
|
||||||
)
|
)
|
||||||
|
|
||||||
ShortSpacer()
|
ShortSpacer()
|
||||||
|
|
||||||
Text(
|
Text(
|
||||||
text = feed.name!!,
|
text = feed.name!!,
|
||||||
style = MaterialTheme.typography.bodyLarge,
|
style = MaterialTheme.typography.bodyMedium,
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis
|
overflow = TextOverflow.Ellipsis
|
||||||
)
|
)
|
||||||
|
@ -75,6 +75,7 @@ fun FolderExpandableItem(
|
|||||||
) {
|
) {
|
||||||
Icon(
|
Icon(
|
||||||
painter = painterResource(R.drawable.ic_folder_grey),
|
painter = painterResource(R.drawable.ic_folder_grey),
|
||||||
|
tint = MaterialTheme.colorScheme.primary,
|
||||||
contentDescription = folder.name
|
contentDescription = folder.name
|
||||||
)
|
)
|
||||||
|
|
||||||
@ -82,7 +83,7 @@ fun FolderExpandableItem(
|
|||||||
|
|
||||||
Text(
|
Text(
|
||||||
text = folder.name!!,
|
text = folder.name!!,
|
||||||
style = MaterialTheme.typography.headlineSmall,
|
style = MaterialTheme.typography.bodyLarge,
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis,
|
overflow = TextOverflow.Ellipsis,
|
||||||
)
|
)
|
||||||
|
Loading…
x
Reference in New Issue
Block a user