mirror of
https://github.com/vitorpamplona/amethyst.git
synced 2025-09-27 18:36:37 +02:00
Moves isAcceptableNote calculations to viewModel
This commit is contained in:
@@ -441,9 +441,7 @@ fun WatchForReports(
|
|||||||
val noteReportsState by note.live().reports.observeAsState()
|
val noteReportsState by note.live().reports.observeAsState()
|
||||||
|
|
||||||
LaunchedEffect(key1 = noteReportsState, key2 = userFollowsState) {
|
LaunchedEffect(key1 = noteReportsState, key2 = userFollowsState) {
|
||||||
launch(Dispatchers.Default) {
|
accountViewModel.isNoteAcceptable(note, onChange)
|
||||||
accountViewModel.isNoteAcceptable(note, onChange)
|
|
||||||
}
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@@ -411,24 +411,26 @@ class AccountViewModel(val account: Account) : ViewModel() {
|
|||||||
}
|
}
|
||||||
|
|
||||||
fun isNoteAcceptable(note: Note, onReady: (Boolean, Boolean, ImmutableSet<Note>) -> Unit) {
|
fun isNoteAcceptable(note: Note, onReady: (Boolean, Boolean, ImmutableSet<Note>) -> Unit) {
|
||||||
val isFromLoggedIn = note.author?.pubkeyHex == userProfile().pubkeyHex
|
viewModelScope.launch {
|
||||||
val isFromLoggedInFollow = note.author?.let { userProfile().isFollowingCached(it) } ?: true
|
val isFromLoggedIn = note.author?.pubkeyHex == userProfile().pubkeyHex
|
||||||
|
val isFromLoggedInFollow = note.author?.let { userProfile().isFollowingCached(it) } ?: true
|
||||||
|
|
||||||
if (isFromLoggedIn || isFromLoggedInFollow) {
|
if (isFromLoggedIn || isFromLoggedInFollow) {
|
||||||
// No need to process if from trusted people
|
// No need to process if from trusted people
|
||||||
onReady(true, true, persistentSetOf())
|
|
||||||
} else {
|
|
||||||
val newCanPreview = !note.hasAnyReports()
|
|
||||||
|
|
||||||
val newIsAcceptable = account.isAcceptable(note)
|
|
||||||
|
|
||||||
if (newCanPreview && newIsAcceptable) {
|
|
||||||
// No need to process reports if nothing is wrong
|
|
||||||
onReady(true, true, persistentSetOf())
|
onReady(true, true, persistentSetOf())
|
||||||
} else {
|
} else {
|
||||||
val newRelevantReports = account.getRelevantReports(note)
|
val newCanPreview = !note.hasAnyReports()
|
||||||
|
|
||||||
onReady(newIsAcceptable, newCanPreview, newRelevantReports.toImmutableSet())
|
val newIsAcceptable = account.isAcceptable(note)
|
||||||
|
|
||||||
|
if (newCanPreview && newIsAcceptable) {
|
||||||
|
// No need to process reports if nothing is wrong
|
||||||
|
onReady(true, true, persistentSetOf())
|
||||||
|
} else {
|
||||||
|
val newRelevantReports = account.getRelevantReports(note)
|
||||||
|
|
||||||
|
onReady(newIsAcceptable, newCanPreview, newRelevantReports.toImmutableSet())
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Reference in New Issue
Block a user