diff --git a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt index 6259bc6c2..2cd3422a8 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/model/LocalCache.kt @@ -268,12 +268,13 @@ object LocalCache { val note = getOrCreateAddressableNote(event.address()) val author = getOrCreateUser(event.pubKey) - // Already processed this event. - if (note.event != null) return + if (note.event?.id() == event.id()) return - note.loadEvent(event, author, emptyList()) + if (event.createdAt > (note.createdAt() ?: 0)) { + note.loadEvent(event, author, emptyList()) - refreshObservers(note) + refreshObservers(note) + } } private fun consume(event: AudioTrackEvent) { @@ -281,11 +282,13 @@ object LocalCache { val author = getOrCreateUser(event.pubKey) // Already processed this event. - if (note.event != null) return + if (note.event?.id() == event.id()) return - note.loadEvent(event, author, emptyList()) + if (event.createdAt > (note.createdAt() ?: 0)) { + note.loadEvent(event, author, emptyList()) - refreshObservers(note) + refreshObservers(note) + } } fun consume(event: BadgeDefinitionEvent) { @@ -357,11 +360,13 @@ object LocalCache { val author = getOrCreateUser(event.pubKey) // Already processed this event. - if (note.event != null) return + if (note.event?.id() == event.id()) return - note.loadEvent(event, author, emptyList()) + if (event.createdAt > (note.createdAt() ?: 0)) { + note.loadEvent(event, author, emptyList()) - refreshObservers(note) + refreshObservers(note) + } } @Suppress("UNUSED_PARAMETER") diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AccountSwitchBottomSheet.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AccountSwitchBottomSheet.kt index c317d05a3..419da014b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AccountSwitchBottomSheet.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/AccountSwitchBottomSheet.kt @@ -39,6 +39,7 @@ import androidx.compose.ui.draw.clip import androidx.compose.ui.graphics.Color import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.window.Dialog import androidx.compose.ui.window.DialogProperties @@ -143,27 +144,21 @@ fun DisplayAccount( baseUser?.let { Row( - modifier = Modifier.fillMaxWidth(), + modifier = Modifier.fillMaxWidth().clickable { + accountStateViewModel.switchUser(acc.npub) + }.padding(16.dp, 16.dp), verticalAlignment = Alignment.CenterVertically ) { Row( - modifier = Modifier - .weight(1f) - .clickable { - accountStateViewModel.switchUser(acc.npub) - }, + modifier = Modifier.weight(1f), verticalAlignment = Alignment.CenterVertically ) { Row( - modifier = Modifier - .padding(16.dp, 16.dp) - .weight(1f), + modifier = Modifier.weight(1f), verticalAlignment = Alignment.CenterVertically ) { Box( - modifier = Modifier - .width(55.dp) - .padding(0.dp) + modifier = Modifier.width(55.dp).padding(0.dp) ) { AccountPicture(it) } @@ -239,7 +234,9 @@ private fun AccountName( displayName?.let { CreateTextWithEmoji( text = it, - tags = tags + tags = tags, + maxLines = 1, + overflow = TextOverflow.Ellipsis ) } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt index e6786de5d..ec81626ec 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/navigation/DrawerContent.kt @@ -49,6 +49,7 @@ import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.res.painterResource import androidx.compose.ui.res.stringResource import androidx.compose.ui.text.font.FontWeight +import androidx.compose.ui.text.style.TextOverflow import androidx.compose.ui.unit.dp import androidx.compose.ui.unit.sp import coil.compose.AsyncImage @@ -185,7 +186,9 @@ fun ProfileContent( } }), fontWeight = FontWeight.Bold, - fontSize = 18.sp + fontSize = 18.sp, + maxLines = 1, + overflow = TextOverflow.Ellipsis ) } if (bestUserName != null) { @@ -193,6 +196,8 @@ fun ProfileContent( text = " @$bestUserName", tags = accountUser.info?.latestMetadata?.tags, color = Color.LightGray, + maxLines = 1, + overflow = TextOverflow.Ellipsis, modifier = Modifier .padding(top = 15.dp) .clickable( diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/MultiSetCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/MultiSetCompose.kt index 23e50672e..7f0a97cbd 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/MultiSetCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/MultiSetCompose.kt @@ -134,7 +134,7 @@ fun MultiSetCompose(multiSetCard: MultiSetCard, routeForLastRead: String, accoun NoteCompose( baseNote = baseNote, routeForLastRead = null, - modifier = Modifier.padding(top = 5.dp), + modifier = remember { Modifier.padding(top = 5.dp) }, isBoostedNote = true, parentBackgroundColor = backgroundColor, accountViewModel = accountViewModel, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt index 10daf8188..9aba7fefc 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteCompose.kt @@ -1164,7 +1164,7 @@ private fun RenderRepost( boostedNote?.let { NoteCompose( it, - modifier = Modifier, + modifier = remember { Modifier }, isBoostedNote = true, unPackReply = false, parentBackgroundColor = backgroundColor,