Notifications: Now declare direct thread answers as replies

This commit is contained in:
Michael 2020-01-09 17:53:17 +00:00
parent 878bebc429
commit 469eefdc5b
2 changed files with 22 additions and 0 deletions

View file

@ -704,6 +704,11 @@ function check_item_notification($itemid, $uid, $notification_type) {
$params['activity']['thread_comment'] = ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION); $params['activity']['thread_comment'] = ($notification_type & UserItem::NOTIF_COMMENT_PARTICIPATION);
$params['activity']['thread_activity'] = ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION); $params['activity']['thread_activity'] = ($notification_type & UserItem::NOTIF_ACTIVITY_PARTICIPATION);
// Tagging a user in a direct post (first comment level) means a direct comment
if ($params['activity']['explicit_tagged'] && ($notification_type & UserItem::NOTIF_DIRECT_THREAD_COMMENT)) {
$params['activity']['origin_comment'] = true;
}
if ($notification_type & UserItem::NOTIF_SHARED) { if ($notification_type & UserItem::NOTIF_SHARED) {
$params['type'] = NOTIFY_SHARE; $params['type'] = NOTIFY_SHARE;
$params['verb'] = Activity::POST; $params['verb'] = Activity::POST;

View file

@ -22,6 +22,7 @@ class UserItem
const NOTIF_DIRECT_COMMENT = 8; const NOTIF_DIRECT_COMMENT = 8;
const NOTIF_COMMENT_PARTICIPATION = 16; const NOTIF_COMMENT_PARTICIPATION = 16;
const NOTIF_ACTIVITY_PARTICIPATION = 32; const NOTIF_ACTIVITY_PARTICIPATION = 32;
const NOTIF_DIRECT_THREAD_COMMENT = 64;
const NOTIF_SHARED = 128; const NOTIF_SHARED = 128;
/** /**
@ -99,6 +100,10 @@ class UserItem
$notification_type = $notification_type | self::NOTIF_DIRECT_COMMENT; $notification_type = $notification_type | self::NOTIF_DIRECT_COMMENT;
} }
if (self::checkDirectCommentedThread($item, $contacts)) {
$notification_type = $notification_type | self::NOTIF_DIRECT_THREAD_COMMENT;
}
if (self::checkCommentedParticipation($item, $contacts)) { if (self::checkCommentedParticipation($item, $contacts)) {
$notification_type = $notification_type | self::NOTIF_COMMENT_PARTICIPATION; $notification_type = $notification_type | self::NOTIF_COMMENT_PARTICIPATION;
} }
@ -259,6 +264,18 @@ class UserItem
return Item::exists($condition); return Item::exists($condition);
} }
/**
* Check for a direct comment to the starting post of the given user
* @param array $item
* @param array $contacts Array of contact IDs
* @return bool The user had created this thread
*/
private static function checkDirectCommentedThread(array $item, array $contacts)
{
$condition = ['uri' => $item['thr-parent'], 'uid' => $item['uid'], 'author-id' => $contacts, 'deleted' => false, 'gravity' => GRAVITY_PARENT];
return Item::exists($condition);
}
/** /**
* Check if the user had commented in this thread * Check if the user had commented in this thread
* @param array $item * @param array $item