]> git.mxchange.org Git - friendica.git/commitdiff
Support for desktop notifications for reshared posts
authorMichael <heluecht@pirati.ca>
Sun, 23 Jan 2022 19:37:52 +0000 (19:37 +0000)
committerMichael <heluecht@pirati.ca>
Sun, 23 Jan 2022 19:37:52 +0000 (19:37 +0000)
src/Model/Post/UserNotification.php
src/Navigation/Notifications/Factory/Notification.php

index d7c72d8994f3e67143bd037be094c5857dad3d60..77aecee290e161f3beabb7d52d68a79d14f13f09 100644 (file)
@@ -257,8 +257,12 @@ class UserNotification
                        }
                }
 
+               if (empty($notification_type)) {
+                       return;
+               }
+
                // Only create notifications for posts and comments, not for activities
-               if (empty($notification_type) || !in_array($item['gravity'], [GRAVITY_PARENT, GRAVITY_COMMENT])) {
+               if (($item['gravity'] == GRAVITY_ACTIVITY) && ($item['verb'] != Activity::ANNOUNCE)) {
                        return;
                }
 
@@ -280,7 +284,7 @@ class UserNotification
         */
        private static function insertNotificationByItem(int $type, int $uid, array $item): void
        {
-               if (($item['gravity'] == GRAVITY_ACTIVITY) &&
+               if (($item['verb'] != Activity::ANNOUNCE) && ($item['gravity'] == GRAVITY_ACTIVITY) &&
                        !in_array($type, [self::TYPE_DIRECT_COMMENT, self::TYPE_DIRECT_THREAD_COMMENT])) {
                        // Activities are only stored when performed on the user's post or comment
                        return;
index 68b2e8a70108514c1c3b028f33d68452bac55aaa..b0f57f0e44b824859a4a6039b58f3a6fa88441a2 100644 (file)
@@ -153,6 +153,8 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
                                $title = '';
                        }
 
+                       $this->logger->debug('Got verb and type', ['verb' => $Notification->verb, 'type' => $Notification->type]);
+
                        switch ($Notification->verb) {
                                case Activity::LIKE:
                                        switch ($Notification->type) {
@@ -182,6 +184,17 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
                                                case Post\UserNotification::TYPE_DIRECT_THREAD_COMMENT:
                                                        $msg = $userL10n->t('%1$s shared your post %2$s');
                                                        break;
+                                               case Post\UserNotification::TYPE_SHARED:
+                                                       if (($causer['id'] != $author['id']) && ($title != '')) {
+                                                               $msg = $userL10n->t('%1$s shared the post %2$s from %3$s');
+                                                       } elseif ($causer['id'] != $author['id']) {
+                                                               $msg = $userL10n->t('%1$s shared a post from %3$s');
+                                                       } elseif ($title != '') {
+                                                               $msg = $userL10n->t('%1$s shared the post %2$s');
+                                                       } else {
+                                                               $msg = $userL10n->t('%1$s shared a post');
+                                                       }
+                                                       break;
                                        }
                                        break;
                                case Activity::POST: