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 87a445930..fd66abef1 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 @@ -238,18 +238,18 @@ fun NoteCompose( } } else { CheckHiddenNoteCompose( - baseNote, - routeForLastRead, - modifier, - isBoostedNote, - isQuotedNote, - unPackReply, - makeItShort, - addMarginTop, - showHidden, - parentBackgroundColor, - accountViewModel, - nav + note = baseNote, + routeForLastRead = routeForLastRead, + modifier = modifier, + isBoostedNote = isBoostedNote, + isQuotedNote = isQuotedNote, + unPackReply = unPackReply, + makeItShort = makeItShort, + addMarginTop = addMarginTop, + showHidden = showHidden, + parentBackgroundColor = parentBackgroundColor, + accountViewModel = accountViewModel, + nav = nav ) } } @@ -272,7 +272,7 @@ fun CheckHiddenNoteCompose( ) { if (showHidden) { // Ignores reports as well - var state by remember { + val state by remember { mutableStateOf( NoteComposeReportState( isAcceptable = true, @@ -283,18 +283,18 @@ fun CheckHiddenNoteCompose( } RenderReportState( - state, - note, - routeForLastRead, - modifier, - isBoostedNote, - isQuotedNote, - unPackReply, - makeItShort, - addMarginTop, - parentBackgroundColor, - accountViewModel, - nav + state = state, + note = note, + routeForLastRead = routeForLastRead, + modifier = modifier, + isBoostedNote = isBoostedNote, + isQuotedNote = isQuotedNote, + unPackReply = unPackReply, + makeItShort = makeItShort, + addMarginTop = addMarginTop, + parentBackgroundColor = parentBackgroundColor, + accountViewModel = accountViewModel, + nav = nav ) } else { val isHidden by accountViewModel.account.liveHiddenUsers.map { @@ -304,17 +304,17 @@ fun CheckHiddenNoteCompose( Crossfade(targetState = isHidden) { if (!it) { LoadedNoteCompose( - note, - routeForLastRead, - modifier, - isBoostedNote, - isQuotedNote, - unPackReply, - makeItShort, - addMarginTop, - parentBackgroundColor, - accountViewModel, - nav + note = note, + routeForLastRead = routeForLastRead, + modifier = modifier, + isBoostedNote = isBoostedNote, + isQuotedNote = isQuotedNote, + unPackReply = unPackReply, + makeItShort = makeItShort, + addMarginTop = addMarginTop, + parentBackgroundColor = parentBackgroundColor, + accountViewModel = accountViewModel, + nav = nav ) } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt index 4a2899aa9..4e6da3890 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedState.kt @@ -90,7 +90,7 @@ sealed class CardFeedState { object Loading : CardFeedState() @Stable - class Loaded(val feed: MutableState>) : CardFeedState() + class Loaded(val feed: MutableState>, val showHidden: MutableState) : CardFeedState() @Immutable object Empty : CardFeedState() diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt index 50fda8bed..c7087e1a7 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedView.kt @@ -142,7 +142,6 @@ fun RenderCardFeed( state = state, listState = listState, routeForLastRead = routeForLastRead, - showHidden = viewModel.showHidden(), accountViewModel = accountViewModel, nav = nav ) @@ -159,7 +158,6 @@ fun RenderCardFeed( private fun FeedLoaded( state: CardFeedState.Loaded, listState: LazyListState, - showHidden: Boolean, routeForLastRead: String, accountViewModel: AccountViewModel, nav: (String) -> Unit @@ -181,7 +179,7 @@ private fun FeedLoaded( } Row(defaultModifier) { - RenderCardItem(item, routeForLastRead, showHidden, accountViewModel, nav) + RenderCardItem(item, routeForLastRead, showHidden = state.showHidden.value, accountViewModel, nav) } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt index 26a0d3fc9..298586804 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/CardFeedViewModel.kt @@ -71,10 +71,6 @@ open class CardFeedViewModel(val localFilter: FeedFilter) : ViewModel() { scrolltoTopPending = false } - fun showHidden(): Boolean { - return localFilter.showHiddenKey() - } - private var lastAccount: Account? = null private var lastNotes: Set? = null @@ -227,9 +223,10 @@ open class CardFeedViewModel(val localFilter: FeedFilter) : ViewModel() { if (notes.isEmpty()) { _feedContent.update { CardFeedState.Empty } } else if (currentState is CardFeedState.Loaded) { + currentState.showHidden.value = localFilter.showHiddenKey() currentState.feed.value = notes } else { - _feedContent.update { CardFeedState.Loaded(mutableStateOf(notes)) } + _feedContent.update { CardFeedState.Loaded(mutableStateOf(notes), mutableStateOf(localFilter.showHiddenKey())) } } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt index 7c03300d4..31eaa550b 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedState.kt @@ -6,7 +6,7 @@ import kotlinx.collections.immutable.ImmutableList sealed class FeedState { object Loading : FeedState() - class Loaded(val feed: MutableState>) : FeedState() + class Loaded(val feed: MutableState>, val showHidden: MutableState) : FeedState() object Empty : FeedState() class FeedError(val errorMessage: String) : FeedState() } 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 e37af1f68..d638a08f8 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 @@ -148,12 +148,11 @@ private fun RenderFeed( is FeedState.Loaded -> { FeedLoaded( - state, - listState, - routeForLastRead, - viewModel.showHidden(), - accountViewModel, - nav + state = state, + listState = listState, + routeForLastRead = routeForLastRead, + accountViewModel = accountViewModel, + nav = nav ) } @@ -185,7 +184,6 @@ private fun FeedLoaded( state: FeedState.Loaded, listState: LazyListState, routeForLastRead: String?, - showHidden: Boolean = false, accountViewModel: AccountViewModel, nav: (String) -> Unit ) { @@ -212,7 +210,7 @@ private fun FeedLoaded( routeForLastRead = routeForLastRead, modifier = baseModifier, isBoostedNote = false, - showHidden = showHidden, + showHidden = state.showHidden.value, accountViewModel = accountViewModel, nav = nav ) diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt index bf06ef18d..bfd230486 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/FeedViewModel.kt @@ -217,10 +217,6 @@ abstract class FeedViewModel(val localFilter: FeedFilter) : ViewModel(), I scrolltoTopPending = false } - fun showHidden(): Boolean { - return localFilter.showHiddenKey() - } - private fun refresh() { val scope = CoroutineScope(Job() + Dispatchers.Default) scope.launch { @@ -252,9 +248,10 @@ abstract class FeedViewModel(val localFilter: FeedFilter) : ViewModel(), I _feedContent.update { FeedState.Empty } } else if (currentState is FeedState.Loaded) { // updates the current list + currentState.showHidden.value = localFilter.showHiddenKey() currentState.feed.value = notes } else { - _feedContent.update { FeedState.Loaded(mutableStateOf(notes)) } + _feedContent.update { FeedState.Loaded(mutableStateOf(notes), mutableStateOf(localFilter.showHiddenKey())) } } } } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt index a578f123f..a31a8a5cf 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/screen/UserFeedViewModel.kt @@ -70,10 +70,6 @@ open class UserFeedViewModel(val dataSource: FeedFilter) : ViewModel(), In } } - fun showHidden(): Boolean { - return dataSource.showHiddenKey() - } - private fun refreshSuspended() { checkNotInMainThread()