Compare commits
2 commits
f0031d25c8
...
44a39b83e9
| Author | SHA1 | Date | |
|---|---|---|---|
| 44a39b83e9 | |||
| 6d1cc8986a |
2 changed files with 43 additions and 20 deletions
|
|
@ -382,6 +382,8 @@ private fun MenuDrawer(
|
||||||
onDismiss: () -> Unit,
|
onDismiss: () -> Unit,
|
||||||
modifier: Modifier = Modifier,
|
modifier: Modifier = Modifier,
|
||||||
) {
|
) {
|
||||||
|
// Focus the destination we are on (issue #16); its item carries the red
|
||||||
|
// selected background. The first drawer item (Home) was the wrong target.
|
||||||
val drawerFocus = remember { FocusRequester() }
|
val drawerFocus = remember { FocusRequester() }
|
||||||
LaunchedEffect(Unit) { runCatching { drawerFocus.requestFocus() } }
|
LaunchedEffect(Unit) { runCatching { drawerFocus.requestFocus() } }
|
||||||
val signOutContext = androidx.compose.ui.platform.LocalContext.current
|
val signOutContext = androidx.compose.ui.platform.LocalContext.current
|
||||||
|
|
@ -405,13 +407,13 @@ private fun MenuDrawer(
|
||||||
} else false
|
} else false
|
||||||
},
|
},
|
||||||
) {
|
) {
|
||||||
Destination.entries.forEachIndexed { index, dest ->
|
Destination.entries.forEach { dest ->
|
||||||
MenuDrawerItem(
|
MenuDrawerItem(
|
||||||
icon = dest.icon(),
|
icon = dest.icon(),
|
||||||
label = dest.title,
|
label = dest.title,
|
||||||
selected = dest == selected,
|
selected = dest == selected,
|
||||||
onClick = { onSelect(dest) },
|
onClick = { onSelect(dest) },
|
||||||
modifier = if (index == 0) Modifier.focusRequester(drawerFocus) else Modifier,
|
modifier = if (dest == selected) Modifier.focusRequester(drawerFocus) else Modifier,
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
Spacer(modifier = Modifier.weight(1f))
|
Spacer(modifier = Modifier.weight(1f))
|
||||||
|
|
|
||||||
|
|
@ -1,4 +1,7 @@
|
||||||
package net.jeena.jtubetv.ui.screens.list
|
package net.jeena.jtubetv.ui.screens.list
|
||||||
|
import androidx.compose.material.icons.Icons
|
||||||
|
import androidx.compose.material.icons.filled.PlayArrow
|
||||||
|
import androidx.compose.foundation.layout.size
|
||||||
|
|
||||||
import androidx.compose.foundation.background
|
import androidx.compose.foundation.background
|
||||||
import androidx.compose.foundation.layout.Arrangement
|
import androidx.compose.foundation.layout.Arrangement
|
||||||
|
|
@ -176,34 +179,52 @@ fun VideoCard(
|
||||||
color = if (cardFocused) Color(0xFF6A6A6A) else Color(0xFFB8B8B8),
|
color = if (cardFocused) Color(0xFF6A6A6A) else Color(0xFFB8B8B8),
|
||||||
maxLines = 1,
|
maxLines = 1,
|
||||||
overflow = TextOverflow.Ellipsis,
|
overflow = TextOverflow.Ellipsis,
|
||||||
modifier = Modifier.weight(1f, fill = false),
|
|
||||||
)
|
)
|
||||||
video.privacy?.takeIf { it.id != 1 }?.let { privacy ->
|
}
|
||||||
if (showPrivacy) {
|
Row(
|
||||||
Text(
|
horizontalArrangement = Arrangement.spacedBy(6.dp),
|
||||||
text = privacy.label ?: "non-public",
|
verticalAlignment = Alignment.CenterVertically,
|
||||||
style = MaterialTheme.typography.labelSmall,
|
) {
|
||||||
color = Color(0xFFC6E27C),
|
// Last row: age, then views as icon + count (the channel card's
|
||||||
modifier = Modifier
|
// stat style), then the privacy tag. The tag keeps a dark chip —
|
||||||
.background(Color(0x33C6E27C), RoundedCornerShape(4.dp))
|
// its light text was illegible on the white focused card (issue #15).
|
||||||
.padding(horizontal = 6.dp, vertical = 2.dp),
|
Text(
|
||||||
)
|
text = formatAge(video.publishedAt),
|
||||||
}
|
style = MaterialTheme.typography.bodySmall,
|
||||||
|
color = if (cardFocused) Color(0xFF6A6A6A) else Color(0xFF8A8A8A),
|
||||||
|
)
|
||||||
|
androidx.compose.material3.Icon(
|
||||||
|
imageVector = androidx.compose.material.icons.Icons.Filled.PlayArrow,
|
||||||
|
contentDescription = null,
|
||||||
|
tint = if (cardFocused) Color(0xFF6A6A6A) else Color(0xFF8A8A8A),
|
||||||
|
modifier = Modifier.size(12.dp),
|
||||||
|
)
|
||||||
|
Text(
|
||||||
|
text = video.views.toString(),
|
||||||
|
style = MaterialTheme.typography.bodySmall,
|
||||||
|
color = if (cardFocused) Color(0xFF6A6A6A) else Color(0xFF8A8A8A),
|
||||||
|
)
|
||||||
|
video.privacy?.takeIf { showPrivacy && it.id != 1 }?.let { privacy ->
|
||||||
|
Text(
|
||||||
|
text = privacy.label ?: "non-public",
|
||||||
|
style = MaterialTheme.typography.labelSmall,
|
||||||
|
color = Color(0xFFC6E27C),
|
||||||
|
modifier = Modifier
|
||||||
|
.background(Color(0xFF222222), RoundedCornerShape(4.dp))
|
||||||
|
.padding(horizontal = 6.dp, vertical = 2.dp),
|
||||||
|
)
|
||||||
}
|
}
|
||||||
if (video.nsfw) {
|
if (video.nsfw) {
|
||||||
Text(
|
Text(
|
||||||
text = "NSFW",
|
text = "NSFW",
|
||||||
style = MaterialTheme.typography.labelSmall,
|
style = MaterialTheme.typography.labelSmall,
|
||||||
color = Color(0xFFE2A57C),
|
color = Color(0xFFE2A57C),
|
||||||
|
modifier = Modifier
|
||||||
|
.background(Color(0xFF222222), RoundedCornerShape(4.dp))
|
||||||
|
.padding(horizontal = 6.dp, vertical = 2.dp),
|
||||||
)
|
)
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
Text(
|
|
||||||
text = formatAge(video.publishedAt) +
|
|
||||||
if (video.views > 0) " · " + formatViews(video.views) else "",
|
|
||||||
style = MaterialTheme.typography.bodySmall,
|
|
||||||
color = if (cardFocused) Color(0xFF6A6A6A) else Color(0xFF8A8A8A),
|
|
||||||
)
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue