diff --git a/Meshtastic/Views/Messages/UserList.swift b/Meshtastic/Views/Messages/UserList.swift index 41642582..6d20ec23 100644 --- a/Meshtastic/Views/Messages/UserList.swift +++ b/Meshtastic/Views/Messages/UserList.swift @@ -337,7 +337,10 @@ struct FilteredUserList: View { } } // Always apply unmessagable and connected node filters - let isUnmessagablePredicate = NSPredicate(format: "unmessagable == NO") + // Show unmessagable nodes only if they have messages, otherwise hide them + let unmessagablePredicate = NSPredicate(format: "unmessagable == NO") + let hasMessagesPredicate = NSPredicate(format: "receivedMessages.@count > 0 OR sentMessages.@count > 0") + let isUnmessagablePredicate = NSCompoundPredicate(type: .or, subpredicates: [unmessagablePredicate, hasMessagesPredicate]) predicates.append(isUnmessagablePredicate) let isIgnoredPredicate = NSPredicate(format: "userNode.ignored == NO") predicates.append(isIgnoredPredicate)