kopia lustrzana https://github.com/vitorpamplona/amethyst
Marking the selected post in the thread view
rodzic
866e31e75b
commit
b1a3c2542f
|
@ -98,13 +98,25 @@ fun ThreadFeedView(noteId: String, viewModel: FeedViewModel, accountViewModel: A
|
||||||
) {
|
) {
|
||||||
itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { index, item ->
|
itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { index, item ->
|
||||||
if (index == 0)
|
if (index == 0)
|
||||||
NoteMaster(item, accountViewModel = accountViewModel, navController = navController)
|
NoteMaster(item,
|
||||||
|
modifier = Modifier.drawReplyLevel(
|
||||||
|
item.replyLevel(),
|
||||||
|
MaterialTheme.colors.onSurface.copy(alpha = 0.32f),
|
||||||
|
if (item.idHex == noteId) MaterialTheme.colors.primary.copy(alpha = 0.52f) else MaterialTheme.colors.onSurface.copy(alpha = 0.32f)
|
||||||
|
),
|
||||||
|
accountViewModel = accountViewModel,
|
||||||
|
navController = navController
|
||||||
|
)
|
||||||
else {
|
else {
|
||||||
Column() {
|
Column() {
|
||||||
Row() {
|
Row() {
|
||||||
NoteCompose(
|
NoteCompose(
|
||||||
item,
|
item,
|
||||||
modifier = Modifier.drawReplyLevel(item.replyLevel(), MaterialTheme.colors.onSurface.copy(alpha = 0.32f)),
|
modifier = Modifier.drawReplyLevel(
|
||||||
|
item.replyLevel(),
|
||||||
|
MaterialTheme.colors.onSurface.copy(alpha = 0.32f),
|
||||||
|
if (item.idHex == noteId) MaterialTheme.colors.primary.copy(alpha = 0.52f) else MaterialTheme.colors.onSurface.copy(alpha = 0.32f)
|
||||||
|
),
|
||||||
isBoostedNote = false,
|
isBoostedNote = false,
|
||||||
accountViewModel = accountViewModel,
|
accountViewModel = accountViewModel,
|
||||||
navController = navController,
|
navController = navController,
|
||||||
|
@ -125,7 +137,7 @@ fun ThreadFeedView(noteId: String, viewModel: FeedViewModel, accountViewModel: A
|
||||||
}
|
}
|
||||||
|
|
||||||
// Creates a Zebra pattern where each bar is a reply level.
|
// Creates a Zebra pattern where each bar is a reply level.
|
||||||
fun Modifier.drawReplyLevel(level: Int, color: Color): Modifier = this
|
fun Modifier.drawReplyLevel(level: Int, color: Color, selected: Color): Modifier = this
|
||||||
.drawBehind {
|
.drawBehind {
|
||||||
val paddingDp = 2
|
val paddingDp = 2
|
||||||
val strokeWidthDp = 2
|
val strokeWidthDp = 2
|
||||||
|
@ -137,7 +149,7 @@ fun Modifier.drawReplyLevel(level: Int, color: Color): Modifier = this
|
||||||
|
|
||||||
repeat(level) {
|
repeat(level) {
|
||||||
this.drawLine(
|
this.drawLine(
|
||||||
color,
|
if (it == level-1) selected else color,
|
||||||
Offset(padding + it * levelWidth, 0f),
|
Offset(padding + it * levelWidth, 0f),
|
||||||
Offset(padding + it * levelWidth, size.height),
|
Offset(padding + it * levelWidth, size.height),
|
||||||
strokeWidth = strokeWidth
|
strokeWidth = strokeWidth
|
||||||
|
@ -149,7 +161,11 @@ fun Modifier.drawReplyLevel(level: Int, color: Color): Modifier = this
|
||||||
.padding(start = (2 + (level * 3)).dp)
|
.padding(start = (2 + (level * 3)).dp)
|
||||||
|
|
||||||
@Composable
|
@Composable
|
||||||
fun NoteMaster(baseNote: Note, accountViewModel: AccountViewModel, navController: NavController) {
|
fun NoteMaster(baseNote: Note,
|
||||||
|
modifier: Modifier = Modifier,
|
||||||
|
accountViewModel: AccountViewModel,
|
||||||
|
navController: NavController
|
||||||
|
) {
|
||||||
val noteState by baseNote.live().metadata.observeAsState()
|
val noteState by baseNote.live().metadata.observeAsState()
|
||||||
val note = noteState?.note
|
val note = noteState?.note
|
||||||
|
|
||||||
|
@ -174,7 +190,7 @@ fun NoteMaster(baseNote: Note, accountViewModel: AccountViewModel, navController
|
||||||
)
|
)
|
||||||
} else {
|
} else {
|
||||||
Column(
|
Column(
|
||||||
Modifier
|
modifier
|
||||||
.fillMaxWidth()
|
.fillMaxWidth()
|
||||||
.padding(top = 10.dp)) {
|
.padding(top = 10.dp)) {
|
||||||
Row(modifier = Modifier
|
Row(modifier = Modifier
|
||||||
|
|
Ładowanie…
Reference in New Issue