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 c2e341293..dd5c93494 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 @@ -820,7 +820,7 @@ fun NoteDropDownMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Unit, expanded = popupExpanded, onDismissRequest = onDismiss ) { - if (!accountViewModel.isFollowing(note.author!!)) { + if (!accountViewModel.isFollowing(note.author)) { DropdownMenuItem(onClick = { accountViewModel.follow( note.author ?: return@DropdownMenuItem @@ -860,14 +860,12 @@ fun NoteDropDownMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Unit, DropdownMenuItem(onClick = { accountViewModel.broadcast(note); onDismiss() }) { Text(stringResource(R.string.broadcast)) } - if (note.author == accountViewModel.accountLiveData.value?.account?.userProfile()) { - Divider() + Divider() + if (accountViewModel.isLoggedUser(note.author)) { DropdownMenuItem(onClick = { accountViewModel.delete(note); onDismiss() }) { Text(stringResource(R.string.request_deletion)) } - } - if (note.author != accountViewModel.accountLiveData.value?.account?.userProfile()) { - Divider() + } else { DropdownMenuItem(onClick = { reportDialogShowing = true }) { Text("Block / Report") } diff --git a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt index 9992f1571..a1046f601 100644 --- a/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt +++ b/app/src/main/java/com/vitorpamplona/amethyst/ui/note/NoteQuickActionMenu.kt @@ -98,7 +98,7 @@ fun NoteQuickActionMenu(note: Note, popupExpanded: Boolean, onDismiss: () -> Uni var showDeleteAlertDialog by remember { mutableStateOf(false) } var showBlockAlertDialog by remember { mutableStateOf(false) } var showReportDialog by remember { mutableStateOf(false) } - val isOwnNote = note.author == accountViewModel.accountLiveData.value?.account?.userProfile() + val isOwnNote = accountViewModel.isLoggedUser(note.author) val isFollowingUser = !isOwnNote && accountViewModel.isFollowing(note.author!!) val backgroundColor = if (MaterialTheme.colors.isLight) { 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 dc1778e5a..460c5dd4b 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 @@ -125,11 +125,12 @@ class AccountViewModel(private val account: Account) : ViewModel() { account.unfollow(user) } - fun isLoggedUser(user: User): Boolean { + fun isLoggedUser(user: User?): Boolean { return account.userProfile() == user } - fun isFollowing(user: User): Boolean { + fun isFollowing(user: User?): Boolean { + if (user == null) return false return account.userProfile().isFollowingCached(user) }