*/
public function selectDetailedForUser(int $uid): Collection\Notifications
{
- $condition = ["`type` & ? != 0", $this->pconfig->get($uid, 'system', 'notify_type', 3 | 72 | 4 | 16 | 32) | 128 | 256];
+ $notify_type = $this->pconfig->get($uid, 'system', 'notify_type');
+ if (!is_null($notify_type)) {
+ $condition = ["`type` & ? != 0", $notify_type | UserNotification::TYPE_SHARED | UserNotification::TYPE_FOLLOW];
+ } else {
+ $condition = [];
+ }
+
if (!$this->pconfig->get($uid, 'system', 'notify_like')) {
$condition = DBA::mergeConditions($condition, ['NOT `vid` IN (?, ?)', Verb::getID(\Friendica\Protocol\Activity::LIKE), Verb::getID(\Friendica\Protocol\Activity::DISLIKE)]);
}
*/
public function selectDigestForUser(int $uid): Collection\Notifications
{
- $values = [$uid, $this->pconfig->get($uid, 'system', 'notify_type', 3 | 72 | 4 | 16 | 32) | 128 | 256];
+ $values = [$uid];
+
+ $type_condition = '';
+ $notify_type = $this->pconfig->get($uid, 'system', 'notify_type');
+ if (!is_null($notify_type)) {
+ $type_condition = 'AND `type` & ? != 0';
+ $values[] = $notify_type | UserNotification::TYPE_SHARED | UserNotification::TYPE_FOLLOW;
+ }
$like_condition = '';
if (!$this->pconfig->get($uid, 'system', 'notify_like')) {
WHERE `id` IN (
SELECT MAX(`id`)
FROM `notification`
- WHERE `uid` = ? AND `type` & ? != 0
+ WHERE `uid` = ?
+ $type_condition
$like_condition
$announce_condition
GROUP BY IFNULL(`parent-uri-id`, `actor-id`)
return true;
}
- $notify_type = $this->pConfig->get($Notification->uid, 'system', 'notify_type', 3 | 72 | 4 | 16 | 32);
+ $notify_type = $this->pConfig->get($Notification->uid, 'system', 'notify_type');
- if ($notify_type & $Notification->type) {
+ // Fallback for the case when the notify type isn't set at all
+ if (is_null($notify_type) && !in_array($type, [Notification::TYPE_RESHARE, Notification::TYPE_LIKE])) {
+ return true;
+ }
+
+ if (!is_null($notify_type) && ($notify_type & $Notification->type)) {
return true;
}