diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlockReportChecker.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlockReportChecker.kt index 1bc61848b..4a89b303c 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlockReportChecker.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/BlockReportChecker.kt @@ -20,7 +20,6 @@ */ package com.vitorpamplona.amethyst.ui.note -import androidx.compose.animation.Crossfade import androidx.compose.runtime.Composable import androidx.compose.runtime.getValue import androidx.compose.runtime.mutableStateOf @@ -60,34 +59,32 @@ fun WatchBlockAndReport( nav: (String) -> Unit, normalNote: @Composable (canPreview: Boolean) -> Unit, ) { - val hiddenState by accountViewModel.createIsHiddenFlow(note).collectAsStateWithLifecycle() + val isHidden by accountViewModel.createIsHiddenFlow(note).collectAsStateWithLifecycle() val showAnyway = remember { mutableStateOf(false) } - Crossfade(targetState = hiddenState, label = "CheckHiddenNoteCompose") { isHidden -> - if (showAnyway.value) { - normalNote(true) - } else if (!isHidden.isPostHidden) { - if (isHidden.isAcceptable) { - normalNote(isHidden.canPreview) - } else { - HiddenNote( - isHidden.relevantReports, - isHidden.isHiddenAuthor, - accountViewModel, - modifier, - nav, - onClick = { showAnyway.value = true }, - ) - } - } else if (showHiddenWarning) { - // if it is a quoted or boosted note, how the hidden warning. - HiddenNoteByMe { - showAnyway.value = true - } + if (showAnyway.value) { + normalNote(true) + } else if (!isHidden.isPostHidden) { + if (isHidden.isAcceptable) { + normalNote(isHidden.canPreview) + } else { + HiddenNote( + isHidden.relevantReports, + isHidden.isHiddenAuthor, + accountViewModel, + modifier, + nav, + onClick = { showAnyway.value = true }, + ) + } + } else if (showHiddenWarning) { + // if it is a quoted or boosted note, how the hidden warning. + HiddenNoteByMe { + showAnyway.value = true } } } 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 dbb6e76a2..e2a26e110 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 @@ -113,13 +113,13 @@ import com.vitorpamplona.amethyst.ui.note.types.RenderWikiContent import com.vitorpamplona.amethyst.ui.note.types.VideoDisplay import com.vitorpamplona.amethyst.ui.screen.loggedIn.AccountViewModel import com.vitorpamplona.amethyst.ui.screen.loggedIn.RenderChannelHeader -import com.vitorpamplona.amethyst.ui.theme.DoubleHorzSpacer import com.vitorpamplona.amethyst.ui.theme.DoubleVertSpacer import com.vitorpamplona.amethyst.ui.theme.Font12SP import com.vitorpamplona.amethyst.ui.theme.HalfDoubleVertSpacer import com.vitorpamplona.amethyst.ui.theme.HalfEndPadding import com.vitorpamplona.amethyst.ui.theme.HalfPadding import com.vitorpamplona.amethyst.ui.theme.HalfStartPadding +import com.vitorpamplona.amethyst.ui.theme.RowColSpacing10dp import com.vitorpamplona.amethyst.ui.theme.RowColSpacing5dp import com.vitorpamplona.amethyst.ui.theme.Size25dp import com.vitorpamplona.amethyst.ui.theme.Size30Modifier @@ -458,10 +458,10 @@ fun InnerNoteWithReactions( } else { boostedNoteModifier }, + horizontalArrangement = RowColSpacing10dp, ) { if (notBoostedNorQuote) { AuthorAndRelayInformation(baseNote, accountViewModel, nav) - Spacer(modifier = DoubleHorzSpacer) } Column(Modifier.fillMaxWidth()) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt index c1427d16e..dbf252ed0 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/ReactionsRow.kt @@ -154,12 +154,8 @@ fun ReactionsRow( ) { val wantsToSeeReactions = remember(baseNote) { mutableStateOf(false) } - Spacer(modifier = HalfDoubleVertSpacer) - InnerReactionRow(baseNote, showReactionDetail, addPadding, wantsToSeeReactions, editState, accountViewModel, nav) - Spacer(modifier = HalfDoubleVertSpacer) - LoadAndDisplayZapraiser(baseNote, showReactionDetail, wantsToSeeReactions, accountViewModel) if (showReactionDetail && wantsToSeeReactions.value) { diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt index 669c9633a..9c1299b90 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedView.kt @@ -248,9 +248,7 @@ private fun FeedLoaded( state = listState, ) { itemsIndexed(state.feed.value, key = { _, item -> item.idHex }) { _, item -> - val defaultModifier = remember { Modifier.fillMaxWidth().animateItemPlacement() } - - Row(defaultModifier) { + Row(Modifier.fillMaxWidth().animateItemPlacement()) { NoteCompose( item, routeForLastRead = routeForLastRead, diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt index f06311cbb..e0833cf90 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/loggedIn/AccountViewModel.kt @@ -276,10 +276,10 @@ class AccountViewModel( return if (isPostHidden) { // Spam + Blocked Users + Hidden Words + Sensitive Content - NoteComposeReportState(isPostHidden, false, false, isHiddenAuthor, persistentSetOf()) + NoteComposeReportState(isPostHidden, false, false, isHiddenAuthor) } else if (isFromLoggedIn || isFromLoggedInFollow) { // No need to process if from trusted people - NoteComposeReportState(isPostHidden, true, true, isHiddenAuthor, persistentSetOf()) + NoteComposeReportState(isPostHidden, true, true, isHiddenAuthor) } else { val newCanPreview = !note.hasAnyReports() @@ -287,22 +287,20 @@ class AccountViewModel( if (newCanPreview && newIsAcceptable) { // No need to process reports if nothing is wrong - NoteComposeReportState(isPostHidden, true, true, false, persistentSetOf()) + NoteComposeReportState(isPostHidden, true, true, false) } else { - val newRelevantReports = account.getRelevantReports(note) - NoteComposeReportState( isPostHidden, newIsAcceptable, newCanPreview, false, - newRelevantReports.toImmutableSet(), + account.getRelevantReports(note).toImmutableSet(), ) } } } - val noteIsHiddenFlows = LruCache>(300) + private val noteIsHiddenFlows = LruCache>(300) fun createIsHiddenFlow(note: Note): StateFlow = noteIsHiddenFlows.get(note) @@ -312,9 +310,7 @@ class AccountViewModel( note.flow().metadata.stateFlow, note.flow().reports.stateFlow, ) { hiddenUsers, followingUsers, metadata, reports -> - emit( - isNoteAcceptable(metadata.note, hiddenUsers, followingUsers.users), - ) + emit(isNoteAcceptable(metadata.note, hiddenUsers, followingUsers.users)) }.stateIn( viewModelScope, SharingStarted.Eagerly, @@ -323,7 +319,7 @@ class AccountViewModel( noteIsHiddenFlows.put(note, it) } - val noteMustShowExpandButtonFlows = LruCache>(300) + private val noteMustShowExpandButtonFlows = LruCache>(300) fun createMustShowExpandButtonFlows(note: Note): StateFlow = noteMustShowExpandButtonFlows.get(note) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt index 83939b393..285af4743 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/theme/Shape.kt @@ -112,6 +112,7 @@ val BigPadding = Modifier.padding(15.dp) val RowColSpacing = Arrangement.spacedBy(3.dp) val RowColSpacing5dp = Arrangement.spacedBy(5.dp) +val RowColSpacing10dp = Arrangement.spacedBy(10.dp) val HalfHorzPadding = Modifier.padding(horizontal = 5.dp) val HalfVertPadding = Modifier.padding(vertical = 5.dp) @@ -154,8 +155,8 @@ val VideoReactionColumnPadding = Modifier.padding(bottom = 75.dp) val DividerThickness = 0.25.dp -val ReactionRowHeight = Modifier.height(24.dp) -val ReactionRowHeightWithPadding = Modifier.height(24.dp).padding(start = 10.dp) +val ReactionRowHeight = Modifier.padding(vertical = 7.dp).height(24.dp) +val ReactionRowHeightWithPadding = Modifier.padding(vertical = 7.dp).height(24.dp).padding(start = 10.dp) val ReactionRowHeightChat = Modifier.height(25.dp) val UserNameRowHeight = Modifier.fillMaxWidth() val UserNameMaxRowHeight = Modifier.fillMaxWidth()