From 57b8708425630b4ba1eee8198ab9f249ecfa607b Mon Sep 17 00:00:00 2001
From: Michael <heluecht@pirati.ca>
Date: Sun, 5 Jun 2022 11:41:08 +0000
Subject: [PATCH] Issue 11566: More detailled notification configuration

---
 database.sql                                  |   4 +-
 doc/database/db_post-user-notification.md     |   2 +-
 src/Model/Post/UserNotification.php           |  24 +-
 src/Module/Settings/Account.php               |  27 +
 .../Notifications/Factory/Notification.php    |   5 +-
 .../Notifications/Repository/Notify.php       |  20 +-
 static/dbstructure.config.php                 |   4 +-
 view/lang/C/messages.po                       | 482 +++++++++---------
 view/templates/settings/account.tpl           |   5 +
 .../theme/frio/templates/settings/account.tpl |   5 +
 10 files changed, 338 insertions(+), 240 deletions(-)

diff --git a/database.sql b/database.sql
index f8d5432658..57ce736f13 100644
--- a/database.sql
+++ b/database.sql
@@ -1,6 +1,6 @@
 -- ------------------------------------------
 -- Friendica 2022.05-rc (Siberian Iris)
--- DB_UPDATE_VERSION 1465
+-- DB_UPDATE_VERSION 1466
 -- ------------------------------------------
 
 
@@ -1416,7 +1416,7 @@ CREATE TABLE IF NOT EXISTS `post-thread-user` (
 CREATE TABLE IF NOT EXISTS `post-user-notification` (
 	`uri-id` int unsigned NOT NULL COMMENT 'Id of the item-uri table entry that contains the item uri',
 	`uid` mediumint unsigned NOT NULL COMMENT 'Owner id which owns this copy of the item',
-	`notification-type` tinyint unsigned NOT NULL DEFAULT 0 COMMENT '',
+	`notification-type` smallint unsigned NOT NULL DEFAULT 0 COMMENT '',
 	 PRIMARY KEY(`uid`,`uri-id`),
 	 INDEX `uri-id` (`uri-id`),
 	FOREIGN KEY (`uri-id`) REFERENCES `item-uri` (`id`) ON UPDATE RESTRICT ON DELETE CASCADE,
diff --git a/doc/database/db_post-user-notification.md b/doc/database/db_post-user-notification.md
index 36edd4a289..8f9925b19c 100644
--- a/doc/database/db_post-user-notification.md
+++ b/doc/database/db_post-user-notification.md
@@ -10,7 +10,7 @@ Fields
 | ----------------- | --------------------------------------------------------- | ------------------ | ---- | --- | ------- | ----- |
 | uri-id            | Id of the item-uri table entry that contains the item uri | int unsigned       | NO   | PRI | NULL    |       |
 | uid               | Owner id which owns this copy of the item                 | mediumint unsigned | NO   | PRI | NULL    |       |
-| notification-type |                                                           | tinyint unsigned   | NO   |     | 0       |       |
+| notification-type |                                                           | smallint unsigned  | NO   |     | 0       |       |
 
 Indexes
 ------------
diff --git a/src/Model/Post/UserNotification.php b/src/Model/Post/UserNotification.php
index d16ec4936f..005dd7084a 100644
--- a/src/Model/Post/UserNotification.php
+++ b/src/Model/Post/UserNotification.php
@@ -34,7 +34,6 @@ use Friendica\Model\Post;
 use Friendica\Model\Subscription;
 use Friendica\Model\Tag;
 use Friendica\Model\User;
-use Friendica\Navigation\Notifications;
 use Friendica\Network\HTTPException;
 use Friendica\Protocol\Activity;
 use Friendica\Util\Strings;
@@ -51,6 +50,7 @@ class UserNotification
 	const TYPE_ACTIVITY_PARTICIPATION = 32;
 	const TYPE_DIRECT_THREAD_COMMENT  = 64;
 	const TYPE_SHARED                 = 128;
+	const TYPE_FOLLOW                 = 256;
 
 	/**
 	 * Insert a new user notification entry
@@ -268,6 +268,14 @@ class UserNotification
 			}
 		}
 
+		if (($item['verb'] != Activity::ANNOUNCE) && self::checkFollowParticipation($item, $contacts)) {
+			$notification_type = $notification_type | self::TYPE_FOLLOW;
+			if (!$notified) {
+				self::insertNotificationByItem(self::TYPE_FOLLOW, $uid, $item);
+				$notified = true;
+			}
+		}
+
 		if (($item['verb'] != Activity::ANNOUNCE) && self::checkActivityParticipation($item, $contacts)) {
 			$notification_type = $notification_type | self::TYPE_ACTIVITY_PARTICIPATION;
 			if (!$notified) {
@@ -535,6 +543,20 @@ class UserNotification
 		return Post::exists($condition);
 	}
 
+	/**
+	 * Check if the user follows this thread
+	 *
+	 * @param array $item
+	 * @param array $contacts Array of contact IDs
+	 * @return bool The user follows the thread
+	 * @throws Exception
+	 */
+	private static function checkFollowParticipation(array $item, array $contacts): bool
+	{
+		$condition = ['parent' => $item['parent'], 'author-id' => $contacts, 'deleted' => false, 'gravity' => GRAVITY_ACTIVITY, 'verb' => Activity::FOLLOW];
+		return Post::exists($condition);
+	}
+
 	/**
 	 * Check if the user had interacted in this thread (Like, Dislike, ...)
 	 *
diff --git a/src/Module/Settings/Account.php b/src/Module/Settings/Account.php
index 43e8c8120c..0b07782cba 100644
--- a/src/Module/Settings/Account.php
+++ b/src/Module/Settings/Account.php
@@ -267,6 +267,25 @@ class Account extends BaseSettings
 
 			DI::pConfig()->set(local_user(), 'system', 'notify_announce', $notify_announce);
 
+			$notify_type = 0;
+
+			if (!empty($request['notify_tagged'])) {
+				$notify_type = $notify_type | 3;
+			}
+			if (!empty($request['notify_direct_comment'])) {
+				$notify_type = $notify_type | 72;
+			}
+			if (!empty($request['notify_thread_comment'])) {
+				$notify_type = $notify_type | 4;
+			}
+			if (!empty($request['notify_comment_participation'])) {
+				$notify_type = $notify_type | 16;
+			}
+			if (!empty($request['notify_activity_participation'])) {
+				$notify_type = $notify_type | 32;
+			}
+			DI::pConfig()->set(local_user(), 'system', 'notify_type', $notify_type);
+
 			DI::pConfig()->set(local_user(), 'system', 'email_textonly', !empty($request['email_textonly']));
 			DI::pConfig()->set(local_user(), 'system', 'detailed_notif', !empty($request['detailed_notif']));
 			DI::pConfig()->set(local_user(), 'system', 'notify_ignored', !empty($request['notify_ignored']));
@@ -524,6 +543,8 @@ class Account extends BaseSettings
 		/* Installed langs */
 		$lang_choices = DI::l10n()->getAvailableLanguages();
 
+		$notify_type = DI::pConfig()->get(local_user(), 'system', 'notify_type', 3 | 72 | 4 | 16 | 32);
+
 		$tpl = Renderer::getMarkupTemplate('settings/account.tpl');
 		$o   = Renderer::replaceMacros($tpl, [
 			'$ptitle' => DI::l10n()->t('Account Settings'),
@@ -593,6 +614,12 @@ class Account extends BaseSettings
 			'$notify_like'     => ['notify_like', DI::l10n()->t('Someone liked your content'), DI::pConfig()->get(local_user(), 'system', 'notify_like'), ''],
 			'$notify_announce' => ['notify_announce', DI::l10n()->t('Someone shared your content'), DI::pConfig()->get(local_user(), 'system', 'notify_announce'), ''],
 
+			'$notify_tagged'                 => ['notify_tagged', DI::l10n()->t('Someone tagged you'), $notify_type & 3, ''],
+			'$notify_direct_comment'         => ['notify_direct_comment', DI::l10n()->t('Someone directly commented on your post'), $notify_type & 72, ''],
+			'$notify_thread_comment'         => ['notify_thread_comment', DI::l10n()->t('Someone commented on your thread'), $notify_type & 4, ''],
+			'$notify_comment_participation'  => ['notify_comment_participation', DI::l10n()->t('Someone commented in a thread where you commented'), $notify_type & 16, ''],
+			'$notify_activity_participation' => ['notify_activity_participation', DI::l10n()->t('Someone commented on a thread where you interacted'), $notify_type & 32, ''],
+
 			'$desktop_notifications' => ['desktop_notifications', DI::l10n()->t('Activate desktop notifications'), false, DI::l10n()->t('Show desktop popup on new notifications')],
 
 			'$email_textonly' => [
diff --git a/src/Navigation/Notifications/Factory/Notification.php b/src/Navigation/Notifications/Factory/Notification.php
index aa6f02d29a..10c8b54a0e 100644
--- a/src/Navigation/Notifications/Factory/Notification.php
+++ b/src/Navigation/Notifications/Factory/Notification.php
@@ -148,7 +148,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
 				return $message;
 			}
 
-			if (in_array($Notification->type, [Post\UserNotification::TYPE_THREAD_COMMENT, Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_EXPLICIT_TAGGED])) {
+			if (in_array($Notification->type, [Post\UserNotification::TYPE_THREAD_COMMENT, Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_FOLLOW, Post\UserNotification::TYPE_EXPLICIT_TAGGED])) {
 				$item = Post::selectFirst([], ['uri-id' => $Notification->parentUriId, 'uid' => [0, $Notification->uid]], ['order' => ['uid' => true]]);
 				if (empty($item)) {
 					$this->logger->info('Parent post not found', ['uri-id' => $Notification->parentUriId]);
@@ -175,7 +175,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
 				}
 			}
 
-			if (in_array($Notification->type, [Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_SHARED])) {
+			if (in_array($Notification->type, [Post\UserNotification::TYPE_COMMENT_PARTICIPATION, Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION, Post\UserNotification::TYPE_FOLLOW, Post\UserNotification::TYPE_SHARED])) {
 				$author = Contact::getById($item['author-id'], ['id', 'name', 'url', 'contact-type']);
 				if (empty($author)) {
 					$this->logger->info('Author not found', ['author' => $item['author-id']]);
@@ -276,6 +276,7 @@ class Notification extends BaseFactory implements ICanCreateFromTableRow
 
 						case Post\UserNotification::TYPE_COMMENT_PARTICIPATION:
 						case Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION:
+						case Post\UserNotification::TYPE_FOLLOW;
 							if (($causer['id'] == $author['id']) && ($title != '')) {
 								$msg = $l10n->t('%1$s commented in their thread %2$s');
 							} elseif ($causer['id'] == $author['id']) {
diff --git a/src/Navigation/Notifications/Repository/Notify.php b/src/Navigation/Notifications/Repository/Notify.php
index 3392228002..1966ee4d8a 100644
--- a/src/Navigation/Notifications/Repository/Notify.php
+++ b/src/Navigation/Notifications/Repository/Notify.php
@@ -663,7 +663,7 @@ class Notify extends BaseRepository
 			$type = \Friendica\Factory\Api\Mastodon\Notification::getType($Notification);
 		}
 
-		if (!in_array($type, [Notification::TYPE_RESHARE, Notification::TYPE_LIKE])) {
+		if (in_array($Notification->type, [Model\Post\UserNotification::TYPE_FOLLOW])) {
 			return true;
 		}
 
@@ -675,6 +675,24 @@ class Notify extends BaseRepository
 			return true;
 		}
 
+		$notify_type = $this->pConfig->get(local_user(), 'system', 'notify_type', 3 | 72 | 4 | 16 | 32);
+
+		if (($notify_type & 3) && in_array($Notification->type, [Model\Post\UserNotification::TYPE_EXPLICIT_TAGGED, Model\Post\UserNotification::TYPE_IMPLICIT_TAGGED])) {
+			return true;
+		}
+		if (($notify_type & 72) && in_array($Notification->type, [Model\Post\UserNotification::TYPE_DIRECT_COMMENT, Model\Post\UserNotification::TYPE_DIRECT_THREAD_COMMENT])) {
+			return true;
+		}
+		if (($notify_type & 4) && in_array($Notification->type, [Model\Post\UserNotification::TYPE_THREAD_COMMENT])) {
+			return true;
+		}
+		if (($notify_type & 16) && in_array($Notification->type, [Model\Post\UserNotification::TYPE_COMMENT_PARTICIPATION])) {
+			return true;
+		}
+		if (($notify_type & 32) && in_array($Notification->type, [Model\Post\UserNotification::TYPE_ACTIVITY_PARTICIPATION])) {
+			return true;
+		}
+
 		return false;
 	}
 
diff --git a/static/dbstructure.config.php b/static/dbstructure.config.php
index ab25d934ab..1594175b1b 100644
--- a/static/dbstructure.config.php
+++ b/static/dbstructure.config.php
@@ -55,7 +55,7 @@
 use Friendica\Database\DBA;
 
 if (!defined('DB_UPDATE_VERSION')) {
-	define('DB_UPDATE_VERSION', 1465);
+	define('DB_UPDATE_VERSION', 1466);
 }
 
 return [
@@ -1430,7 +1430,7 @@ return [
 		"fields" => [
 			"uri-id" => ["type" => "int unsigned", "not null" => "1", "primary" => "1", "foreign" => ["item-uri" => "id"], "comment" => "Id of the item-uri table entry that contains the item uri"],
 			"uid" => ["type" => "mediumint unsigned", "not null" => "1", "primary" => "1", "foreign" => ["user" => "uid"], "comment" => "Owner id which owns this copy of the item"],
-			"notification-type" => ["type" => "tinyint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
+			"notification-type" => ["type" => "smallint unsigned", "not null" => "1", "default" => "0", "comment" => ""],
 		],
 		"indexes" => [
 			"PRIMARY" => ["uid", "uri-id"],
diff --git a/view/lang/C/messages.po b/view/lang/C/messages.po
index 5fbaeeacc4..fff804f3a9 100644
--- a/view/lang/C/messages.po
+++ b/view/lang/C/messages.po
@@ -8,7 +8,7 @@ msgid ""
 msgstr ""
 "Project-Id-Version: 2022.05-rc\n"
 "Report-Msgid-Bugs-To: \n"
-"POT-Creation-Date: 2022-06-01 22:09+0000\n"
+"POT-Creation-Date: 2022-06-05 11:15+0000\n"
 "PO-Revision-Date: YEAR-MO-DA HO:MI+ZONE\n"
 "Last-Translator: FULL NAME <EMAIL@ADDRESS>\n"
 "Language-Team: LANGUAGE <LL@li.org>\n"
@@ -28,7 +28,7 @@ msgid "Access denied."
 msgstr ""
 
 #: mod/cal.php:63 mod/cal.php:80 mod/photos.php:69 mod/photos.php:140
-#: mod/photos.php:804 src/Model/Profile.php:231 src/Module/Feed.php:72
+#: mod/photos.php:798 src/Model/Profile.php:231 src/Module/Feed.php:72
 #: src/Module/HCard.php:52 src/Module/Profile/Common.php:41
 #: src/Module/Profile/Common.php:52 src/Module/Profile/Contacts.php:40
 #: src/Module/Profile/Contacts.php:50 src/Module/Profile/Media.php:38
@@ -37,7 +37,7 @@ msgstr ""
 msgid "User not found."
 msgstr ""
 
-#: mod/cal.php:122 mod/display.php:246 src/Module/Profile/Profile.php:94
+#: mod/cal.php:122 mod/display.php:247 src/Module/Profile/Profile.php:94
 #: src/Module/Profile/Profile.php:109 src/Module/Profile/Status.php:110
 #: src/Module/Update/Profile.php:56
 msgid "Access to this profile has been restricted."
@@ -104,24 +104,24 @@ msgstr ""
 msgid "calendar"
 msgstr ""
 
-#: mod/display.php:141 mod/photos.php:808
+#: mod/display.php:142 mod/photos.php:802
 #: src/Module/Conversation/Community.php:175 src/Module/Directory.php:49
 #: src/Module/Search/Index.php:50
 msgid "Public access denied."
 msgstr ""
 
-#: mod/display.php:197 mod/display.php:271
+#: mod/display.php:198 mod/display.php:272
 msgid "The requested item doesn't exist or has been deleted."
 msgstr ""
 
-#: mod/display.php:351
+#: mod/display.php:352
 msgid "The feed for this item is unavailable."
 msgstr ""
 
 #: mod/editpost.php:38 mod/events.php:217 mod/follow.php:56 mod/follow.php:130
 #: mod/item.php:181 mod/item.php:186 mod/item.php:875 mod/message.php:69
 #: mod/message.php:111 mod/notes.php:44 mod/ostatus_subscribe.php:33
-#: mod/photos.php:160 mod/photos.php:897 mod/repair_ostatus.php:31
+#: mod/photos.php:160 mod/photos.php:891 mod/repair_ostatus.php:31
 #: mod/settings.php:40 mod/settings.php:50 mod/settings.php:156
 #: mod/suggest.php:34 mod/uimport.php:33 mod/unfollow.php:35
 #: mod/unfollow.php:50 mod/unfollow.php:82 mod/wall_attach.php:67
@@ -139,7 +139,7 @@ msgstr ""
 #: src/Module/Register.php:77 src/Module/Register.php:90
 #: src/Module/Register.php:206 src/Module/Register.php:245
 #: src/Module/Search/Directory.php:37 src/Module/Settings/Account.php:48
-#: src/Module/Settings/Account.php:384 src/Module/Settings/Delegation.php:42
+#: src/Module/Settings/Account.php:403 src/Module/Settings/Delegation.php:42
 #: src/Module/Settings/Delegation.php:70 src/Module/Settings/Display.php:42
 #: src/Module/Settings/Display.php:120
 #: src/Module/Settings/Profile/Photo/Crop.php:166
@@ -164,7 +164,7 @@ msgstr ""
 msgid "Save"
 msgstr ""
 
-#: mod/editpost.php:92 mod/photos.php:1344 src/Content/Conversation.php:338
+#: mod/editpost.php:92 mod/photos.php:1338 src/Content/Conversation.php:338
 #: src/Module/Contact/Poke.php:176 src/Object/Post.php:989
 msgid "Loading..."
 msgstr ""
@@ -229,7 +229,7 @@ msgid "clear location"
 msgstr ""
 
 #: mod/editpost.php:107 mod/message.php:200 mod/message.php:358
-#: mod/photos.php:1495 mod/wallmessage.php:142 src/Content/Conversation.php:368
+#: mod/photos.php:1489 mod/wallmessage.php:142 src/Content/Conversation.php:368
 #: src/Content/Conversation.php:712 src/Module/Item/Compose.php:177
 #: src/Object/Post.php:528
 msgid "Please wait"
@@ -261,14 +261,14 @@ msgstr ""
 msgid "Example: bob@example.com, mary@example.com"
 msgstr ""
 
-#: mod/editpost.php:128 mod/events.php:513 mod/photos.php:1343
-#: mod/photos.php:1399 mod/photos.php:1473 src/Content/Conversation.php:383
+#: mod/editpost.php:128 mod/events.php:513 mod/photos.php:1337
+#: mod/photos.php:1393 mod/photos.php:1467 src/Content/Conversation.php:383
 #: src/Module/Item/Compose.php:172 src/Object/Post.php:999
 msgid "Preview"
 msgstr ""
 
 #: mod/editpost.php:130 mod/fbrowser.php:118 mod/fbrowser.php:145
-#: mod/follow.php:144 mod/photos.php:1010 mod/photos.php:1111 mod/tagrm.php:35
+#: mod/follow.php:144 mod/photos.php:1004 mod/photos.php:1105 mod/tagrm.php:35
 #: mod/tagrm.php:127 mod/unfollow.php:97 src/Content/Conversation.php:386
 #: src/Module/Contact/Revoke.php:108 src/Module/RemoteFollow.php:127
 msgid "Cancel"
@@ -310,7 +310,7 @@ msgid "Link or Media"
 msgstr ""
 
 #: mod/editpost.php:143 src/Content/Conversation.php:393
-#: src/Content/Widget/VCard.php:107 src/Model/Profile.php:462
+#: src/Content/Widget/VCard.php:113 src/Model/Profile.php:462
 #: src/Module/Admin/Logs/View.php:93
 msgid "Message"
 msgstr ""
@@ -320,8 +320,8 @@ msgstr ""
 msgid "Browser"
 msgstr ""
 
-#: mod/editpost.php:145 mod/events.php:518 mod/photos.php:945
-#: mod/photos.php:1297 src/Content/Conversation.php:370
+#: mod/editpost.php:145 mod/events.php:518 mod/photos.php:939
+#: mod/photos.php:1291 src/Content/Conversation.php:370
 msgid "Permissions"
 msgstr ""
 
@@ -385,7 +385,7 @@ msgstr ""
 msgid "Description:"
 msgstr ""
 
-#: mod/events.php:504 src/Content/Widget/VCard.php:98 src/Model/Event.php:80
+#: mod/events.php:504 src/Content/Widget/VCard.php:104 src/Model/Event.php:80
 #: src/Model/Event.php:107 src/Model/Event.php:466 src/Model/Event.php:915
 #: src/Model/Profile.php:370 src/Module/Contact/Profile.php:369
 #: src/Module/Directory.php:148 src/Module/Notifications/Introductions.php:185
@@ -402,8 +402,8 @@ msgid "Share this event"
 msgstr ""
 
 #: mod/events.php:515 mod/message.php:201 mod/message.php:357
-#: mod/photos.php:927 mod/photos.php:1031 mod/photos.php:1301
-#: mod/photos.php:1342 mod/photos.php:1398 mod/photos.php:1472
+#: mod/photos.php:921 mod/photos.php:1025 mod/photos.php:1295
+#: mod/photos.php:1336 mod/photos.php:1392 mod/photos.php:1466
 #: src/Module/Admin/Item/Source.php:65 src/Module/Contact/Advanced.php:132
 #: src/Module/Contact/Poke.php:177 src/Module/Contact/Profile.php:327
 #: src/Module/Debug/ActivityPubConversion.php:145
@@ -863,11 +863,11 @@ msgstr ""
 msgid "Photo Albums"
 msgstr ""
 
-#: mod/photos.php:109 mod/photos.php:1590
+#: mod/photos.php:109 mod/photos.php:1584
 msgid "Recent Photos"
 msgstr ""
 
-#: mod/photos.php:111 mod/photos.php:1079 mod/photos.php:1592
+#: mod/photos.php:111 mod/photos.php:1073 mod/photos.php:1586
 msgid "Upload New Photos"
 msgstr ""
 
@@ -895,219 +895,219 @@ msgstr ""
 msgid "Failed to delete the photo."
 msgstr ""
 
-#: mod/photos.php:559
+#: mod/photos.php:553
 msgid "a photo"
 msgstr ""
 
-#: mod/photos.php:559
+#: mod/photos.php:553
 #, php-format
 msgid "%1$s was tagged in %2$s by %3$s"
 msgstr ""
 
-#: mod/photos.php:642 mod/photos.php:645 mod/photos.php:672
+#: mod/photos.php:636 mod/photos.php:639 mod/photos.php:666
 #: mod/wall_upload.php:201 src/Module/Settings/Profile/Photo/Index.php:60
 #, php-format
 msgid "Image exceeds size limit of %s"
 msgstr ""
 
-#: mod/photos.php:648
+#: mod/photos.php:642
 msgid "Image upload didn't complete, please try again"
 msgstr ""
 
-#: mod/photos.php:651
+#: mod/photos.php:645
 msgid "Image file is missing"
 msgstr ""
 
-#: mod/photos.php:656
+#: mod/photos.php:650
 msgid ""
 "Server can't accept new file upload at this time, please contact your "
 "administrator"
 msgstr ""
 
-#: mod/photos.php:680
+#: mod/photos.php:674
 msgid "Image file is empty."
 msgstr ""
 
-#: mod/photos.php:695 mod/wall_upload.php:163
+#: mod/photos.php:689 mod/wall_upload.php:163
 #: src/Module/Settings/Profile/Photo/Index.php:69
 msgid "Unable to process image."
 msgstr ""
 
-#: mod/photos.php:721 mod/wall_upload.php:226
+#: mod/photos.php:715 mod/wall_upload.php:226
 #: src/Module/Settings/Profile/Photo/Index.php:96
 msgid "Image upload failed."
 msgstr ""
 
-#: mod/photos.php:813
+#: mod/photos.php:807
 msgid "No photos selected"
 msgstr ""
 
-#: mod/photos.php:882
+#: mod/photos.php:876
 msgid "Access to this item is restricted."
 msgstr ""
 
-#: mod/photos.php:937
+#: mod/photos.php:931
 msgid "Upload Photos"
 msgstr ""
 
-#: mod/photos.php:941 mod/photos.php:1027
+#: mod/photos.php:935 mod/photos.php:1021
 msgid "New album name: "
 msgstr ""
 
-#: mod/photos.php:942
+#: mod/photos.php:936
 msgid "or select existing album:"
 msgstr ""
 
-#: mod/photos.php:943
+#: mod/photos.php:937
 msgid "Do not show a status post for this upload"
 msgstr ""
 
-#: mod/photos.php:1008
+#: mod/photos.php:1002
 msgid "Do you really want to delete this photo album and all its photos?"
 msgstr ""
 
-#: mod/photos.php:1009 mod/photos.php:1032
+#: mod/photos.php:1003 mod/photos.php:1026
 msgid "Delete Album"
 msgstr ""
 
-#: mod/photos.php:1036
+#: mod/photos.php:1030
 msgid "Edit Album"
 msgstr ""
 
-#: mod/photos.php:1037
+#: mod/photos.php:1031
 msgid "Drop Album"
 msgstr ""
 
-#: mod/photos.php:1041
+#: mod/photos.php:1035
 msgid "Show Newest First"
 msgstr ""
 
-#: mod/photos.php:1043
+#: mod/photos.php:1037
 msgid "Show Oldest First"
 msgstr ""
 
-#: mod/photos.php:1064 mod/photos.php:1575
+#: mod/photos.php:1058 mod/photos.php:1569
 msgid "View Photo"
 msgstr ""
 
-#: mod/photos.php:1097
+#: mod/photos.php:1091
 msgid "Permission denied. Access to this item may be restricted."
 msgstr ""
 
-#: mod/photos.php:1099
+#: mod/photos.php:1093
 msgid "Photo not available"
 msgstr ""
 
-#: mod/photos.php:1109
+#: mod/photos.php:1103
 msgid "Do you really want to delete this photo?"
 msgstr ""
 
-#: mod/photos.php:1110 mod/photos.php:1302
+#: mod/photos.php:1104 mod/photos.php:1296
 msgid "Delete Photo"
 msgstr ""
 
-#: mod/photos.php:1202
+#: mod/photos.php:1196
 msgid "View photo"
 msgstr ""
 
-#: mod/photos.php:1204
+#: mod/photos.php:1198
 msgid "Edit photo"
 msgstr ""
 
-#: mod/photos.php:1205
+#: mod/photos.php:1199
 msgid "Delete photo"
 msgstr ""
 
-#: mod/photos.php:1206
+#: mod/photos.php:1200
 msgid "Use as profile photo"
 msgstr ""
 
-#: mod/photos.php:1213
+#: mod/photos.php:1207
 msgid "Private Photo"
 msgstr ""
 
-#: mod/photos.php:1219
+#: mod/photos.php:1213
 msgid "View Full Size"
 msgstr ""
 
-#: mod/photos.php:1270
+#: mod/photos.php:1264
 msgid "Tags: "
 msgstr ""
 
-#: mod/photos.php:1273
+#: mod/photos.php:1267
 msgid "[Select tags to remove]"
 msgstr ""
 
-#: mod/photos.php:1288
+#: mod/photos.php:1282
 msgid "New album name"
 msgstr ""
 
-#: mod/photos.php:1289
+#: mod/photos.php:1283
 msgid "Caption"
 msgstr ""
 
-#: mod/photos.php:1290
+#: mod/photos.php:1284
 msgid "Add a Tag"
 msgstr ""
 
-#: mod/photos.php:1290
+#: mod/photos.php:1284
 msgid "Example: @bob, @Barbara_Jensen, @jim@example.com, #California, #camping"
 msgstr ""
 
-#: mod/photos.php:1291
+#: mod/photos.php:1285
 msgid "Do not rotate"
 msgstr ""
 
-#: mod/photos.php:1292
+#: mod/photos.php:1286
 msgid "Rotate CW (right)"
 msgstr ""
 
-#: mod/photos.php:1293
+#: mod/photos.php:1287
 msgid "Rotate CCW (left)"
 msgstr ""
 
-#: mod/photos.php:1339 mod/photos.php:1395 mod/photos.php:1469
+#: mod/photos.php:1333 mod/photos.php:1389 mod/photos.php:1463
 #: src/Module/Contact.php:544 src/Module/Item/Compose.php:160
 #: src/Object/Post.php:985
 msgid "This is you"
 msgstr ""
 
-#: mod/photos.php:1341 mod/photos.php:1397 mod/photos.php:1471
+#: mod/photos.php:1335 mod/photos.php:1391 mod/photos.php:1465
 #: src/Object/Post.php:522 src/Object/Post.php:987
 msgid "Comment"
 msgstr ""
 
-#: mod/photos.php:1430 src/Content/Conversation.php:628 src/Object/Post.php:247
+#: mod/photos.php:1424 src/Content/Conversation.php:628 src/Object/Post.php:247
 msgid "Select"
 msgstr ""
 
-#: mod/photos.php:1431 mod/settings.php:350 src/Content/Conversation.php:629
+#: mod/photos.php:1425 mod/settings.php:350 src/Content/Conversation.php:629
 #: src/Module/Admin/Users/Active.php:139 src/Module/Admin/Users/Blocked.php:140
 #: src/Module/Admin/Users/Index.php:153
 msgid "Delete"
 msgstr ""
 
-#: mod/photos.php:1492 src/Object/Post.php:369
+#: mod/photos.php:1486 src/Object/Post.php:369
 msgid "Like"
 msgstr ""
 
-#: mod/photos.php:1493 src/Object/Post.php:369
+#: mod/photos.php:1487 src/Object/Post.php:369
 msgid "I like this (toggle)"
 msgstr ""
 
-#: mod/photos.php:1494 src/Object/Post.php:370
+#: mod/photos.php:1488 src/Object/Post.php:370
 msgid "Dislike"
 msgstr ""
 
-#: mod/photos.php:1496 src/Object/Post.php:370
+#: mod/photos.php:1490 src/Object/Post.php:370
 msgid "I don't like this (toggle)"
 msgstr ""
 
-#: mod/photos.php:1518
+#: mod/photos.php:1512
 msgid "Map"
 msgstr ""
 
-#: mod/photos.php:1581
+#: mod/photos.php:1575
 msgid "View Album"
 msgstr ""
 
@@ -1128,36 +1128,36 @@ msgstr ""
 msgid "Contact not found."
 msgstr ""
 
-#: mod/removeme.php:63 src/Navigation/Notifications/Repository/Notify.php:482
+#: mod/removeme.php:65 src/Navigation/Notifications/Repository/Notify.php:482
 msgid "[Friendica System Notify]"
 msgstr ""
 
-#: mod/removeme.php:63
+#: mod/removeme.php:65
 msgid "User deleted their account"
 msgstr ""
 
-#: mod/removeme.php:64
+#: mod/removeme.php:66
 msgid ""
 "On your Friendica node an user deleted their account. Please ensure that "
 "their data is removed from the backups."
 msgstr ""
 
-#: mod/removeme.php:65
+#: mod/removeme.php:67
 #, php-format
 msgid "The user id is %d"
 msgstr ""
 
-#: mod/removeme.php:99 mod/removeme.php:102
+#: mod/removeme.php:101 mod/removeme.php:104
 msgid "Remove My Account"
 msgstr ""
 
-#: mod/removeme.php:100
+#: mod/removeme.php:102
 msgid ""
 "This will completely remove your account. Once this has been done it is not "
 "recoverable."
 msgstr ""
 
-#: mod/removeme.php:101
+#: mod/removeme.php:103
 msgid "Please enter your password for verification:"
 msgstr ""
 
@@ -1204,7 +1204,7 @@ msgstr ""
 #: mod/settings.php:352 src/Module/Admin/Addons/Index.php:69
 #: src/Module/Admin/Features.php:87 src/Module/Admin/Logs/Settings.php:81
 #: src/Module/Admin/Site.php:434 src/Module/Admin/Themes/Index.php:113
-#: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:532
+#: src/Module/Admin/Tos.php:83 src/Module/Settings/Account.php:553
 #: src/Module/Settings/Delegation.php:170 src/Module/Settings/Display.php:193
 msgid "Save Settings"
 msgstr ""
@@ -2651,7 +2651,7 @@ msgstr ""
 msgid "The end"
 msgstr ""
 
-#: src/Content/Text/HTML.php:875 src/Content/Widget/VCard.php:103
+#: src/Content/Text/HTML.php:875 src/Content/Widget/VCard.php:109
 #: src/Model/Profile.php:456
 msgid "Follow"
 msgstr ""
@@ -2778,7 +2778,7 @@ msgstr ""
 msgid "News"
 msgstr ""
 
-#: src/Content/Widget.php:525 src/Module/Settings/Account.php:430
+#: src/Content/Widget.php:525 src/Module/Settings/Account.php:449
 msgid "Account Types"
 msgstr ""
 
@@ -2832,22 +2832,22 @@ msgstr[1] ""
 msgid "More Trending Tags"
 msgstr ""
 
-#: src/Content/Widget/VCard.php:96 src/Model/Profile.php:375
+#: src/Content/Widget/VCard.php:102 src/Model/Profile.php:375
 #: src/Module/Contact/Profile.php:371 src/Module/Profile/Profile.php:176
 msgid "XMPP:"
 msgstr ""
 
-#: src/Content/Widget/VCard.php:97 src/Model/Profile.php:376
+#: src/Content/Widget/VCard.php:103 src/Model/Profile.php:376
 #: src/Module/Contact/Profile.php:373 src/Module/Profile/Profile.php:180
 msgid "Matrix:"
 msgstr ""
 
-#: src/Content/Widget/VCard.php:101 src/Model/Profile.php:468
+#: src/Content/Widget/VCard.php:107 src/Model/Profile.php:468
 #: src/Module/Notifications/Introductions.php:199
 msgid "Network:"
 msgstr ""
 
-#: src/Content/Widget/VCard.php:105 src/Model/Profile.php:458
+#: src/Content/Widget/VCard.php:111 src/Model/Profile.php:458
 msgid "Unfollow"
 msgstr ""
 
@@ -4368,19 +4368,19 @@ msgstr ""
 msgid "List of pending user deletions"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:100 src/Module/Settings/Account.php:468
+#: src/Module/Admin/BaseUsers.php:100 src/Module/Settings/Account.php:487
 msgid "Normal Account Page"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:475
+#: src/Module/Admin/BaseUsers.php:101 src/Module/Settings/Account.php:494
 msgid "Soapbox Page"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:482
+#: src/Module/Admin/BaseUsers.php:102 src/Module/Settings/Account.php:501
 msgid "Public Forum"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:489
+#: src/Module/Admin/BaseUsers.php:103 src/Module/Settings/Account.php:508
 msgid "Automatic Friend Page"
 msgstr ""
 
@@ -4388,19 +4388,19 @@ msgstr ""
 msgid "Private Forum"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:107 src/Module/Settings/Account.php:440
+#: src/Module/Admin/BaseUsers.php:107 src/Module/Settings/Account.php:459
 msgid "Personal Page"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:447
+#: src/Module/Admin/BaseUsers.php:108 src/Module/Settings/Account.php:466
 msgid "Organisation Page"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:454
+#: src/Module/Admin/BaseUsers.php:109 src/Module/Settings/Account.php:473
 msgid "News Page"
 msgstr ""
 
-#: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:461
+#: src/Module/Admin/BaseUsers.php:110 src/Module/Settings/Account.php:480
 msgid "Community Forum"
 msgstr ""
 
@@ -8241,7 +8241,7 @@ msgid ""
 "\"btn btn-sm pull-right\">Cancel</a>"
 msgstr ""
 
-#: src/Module/Profile/Profile.php:144 src/Module/Settings/Account.php:548
+#: src/Module/Profile/Profile.php:144 src/Module/Settings/Account.php:569
 msgid "Full Name:"
 msgstr ""
 
@@ -8371,7 +8371,7 @@ msgstr ""
 msgid "Please repeat your e-mail address:"
 msgstr ""
 
-#: src/Module/Register.php:162 src/Module/Settings/Account.php:539
+#: src/Module/Register.php:162 src/Module/Settings/Account.php:560
 msgid "New Password:"
 msgstr ""
 
@@ -8379,7 +8379,7 @@ msgstr ""
 msgid "Leave empty for an auto generated password."
 msgstr ""
 
-#: src/Module/Register.php:163 src/Module/Settings/Account.php:540
+#: src/Module/Register.php:163 src/Module/Settings/Account.php:561
 msgid "Confirm:"
 msgstr ""
 
@@ -8675,98 +8675,98 @@ msgid "Cannot change to that email."
 msgstr ""
 
 #: src/Module/Settings/Account.php:147 src/Module/Settings/Account.php:199
-#: src/Module/Settings/Account.php:219 src/Module/Settings/Account.php:279
-#: src/Module/Settings/Account.php:328
+#: src/Module/Settings/Account.php:219 src/Module/Settings/Account.php:298
+#: src/Module/Settings/Account.php:347
 msgid "Settings were not updated."
 msgstr ""
 
-#: src/Module/Settings/Account.php:340
+#: src/Module/Settings/Account.php:359
 msgid "Contact CSV file upload error"
 msgstr ""
 
-#: src/Module/Settings/Account.php:359
+#: src/Module/Settings/Account.php:378
 msgid "Importing Contacts done"
 msgstr ""
 
-#: src/Module/Settings/Account.php:372
+#: src/Module/Settings/Account.php:391
 msgid "Relocate message has been send to your contacts"
 msgstr ""
 
-#: src/Module/Settings/Account.php:389
+#: src/Module/Settings/Account.php:408
 msgid "Unable to find your profile. Please contact your admin."
 msgstr ""
 
-#: src/Module/Settings/Account.php:431
+#: src/Module/Settings/Account.php:450
 msgid "Personal Page Subtypes"
 msgstr ""
 
-#: src/Module/Settings/Account.php:432
+#: src/Module/Settings/Account.php:451
 msgid "Community Forum Subtypes"
 msgstr ""
 
-#: src/Module/Settings/Account.php:442
+#: src/Module/Settings/Account.php:461
 msgid "Account for a personal profile."
 msgstr ""
 
-#: src/Module/Settings/Account.php:449
+#: src/Module/Settings/Account.php:468
 msgid ""
 "Account for an organisation that automatically approves contact requests as "
 "\"Followers\"."
 msgstr ""
 
-#: src/Module/Settings/Account.php:456
+#: src/Module/Settings/Account.php:475
 msgid ""
 "Account for a news reflector that automatically approves contact requests as "
 "\"Followers\"."
 msgstr ""
 
-#: src/Module/Settings/Account.php:463
+#: src/Module/Settings/Account.php:482
 msgid "Account for community discussions."
 msgstr ""
 
-#: src/Module/Settings/Account.php:470
+#: src/Module/Settings/Account.php:489
 msgid ""
 "Account for a regular personal profile that requires manual approval of "
 "\"Friends\" and \"Followers\"."
 msgstr ""
 
-#: src/Module/Settings/Account.php:477
+#: src/Module/Settings/Account.php:496
 msgid ""
 "Account for a public profile that automatically approves contact requests as "
 "\"Followers\"."
 msgstr ""
 
-#: src/Module/Settings/Account.php:484
+#: src/Module/Settings/Account.php:503
 msgid "Automatically approves all contact requests."
 msgstr ""
 
-#: src/Module/Settings/Account.php:491
+#: src/Module/Settings/Account.php:510
 msgid ""
 "Account for a popular profile that automatically approves contact requests "
 "as \"Friends\"."
 msgstr ""
 
-#: src/Module/Settings/Account.php:496
+#: src/Module/Settings/Account.php:515
 msgid "Private Forum [Experimental]"
 msgstr ""
 
-#: src/Module/Settings/Account.php:498
+#: src/Module/Settings/Account.php:517
 msgid "Requires manual approval of contact requests."
 msgstr ""
 
-#: src/Module/Settings/Account.php:507
+#: src/Module/Settings/Account.php:526
 msgid "OpenID:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:507
+#: src/Module/Settings/Account.php:526
 msgid "(Optional) Allow this OpenID to login to this account."
 msgstr ""
 
-#: src/Module/Settings/Account.php:515
+#: src/Module/Settings/Account.php:534
 msgid "Publish your profile in your local site directory?"
 msgstr ""
 
-#: src/Module/Settings/Account.php:515
+#: src/Module/Settings/Account.php:534
 #, php-format
 msgid ""
 "Your profile will be published in this node's <a href=\"%s\">local "
@@ -8774,103 +8774,103 @@ msgid ""
 "system settings."
 msgstr ""
 
-#: src/Module/Settings/Account.php:521
+#: src/Module/Settings/Account.php:540
 #, php-format
 msgid ""
 "Your profile will also be published in the global friendica directories (e."
 "g. <a href=\"%s\">%s</a>)."
 msgstr ""
 
-#: src/Module/Settings/Account.php:529
+#: src/Module/Settings/Account.php:550
 msgid "Account Settings"
 msgstr ""
 
-#: src/Module/Settings/Account.php:530
+#: src/Module/Settings/Account.php:551
 #, php-format
 msgid "Your Identity Address is <strong>'%s'</strong> or '%s'."
 msgstr ""
 
-#: src/Module/Settings/Account.php:538
+#: src/Module/Settings/Account.php:559
 msgid "Password Settings"
 msgstr ""
 
-#: src/Module/Settings/Account.php:539
+#: src/Module/Settings/Account.php:560
 msgid ""
 "Allowed characters are a-z, A-Z, 0-9 and special characters except white "
 "spaces, accentuated letters and colon (:)."
 msgstr ""
 
-#: src/Module/Settings/Account.php:540
+#: src/Module/Settings/Account.php:561
 msgid "Leave password fields blank unless changing"
 msgstr ""
 
-#: src/Module/Settings/Account.php:541
+#: src/Module/Settings/Account.php:562
 msgid "Current Password:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:541
+#: src/Module/Settings/Account.php:562
 msgid "Your current password to confirm the changes"
 msgstr ""
 
-#: src/Module/Settings/Account.php:542
+#: src/Module/Settings/Account.php:563
 msgid "Password:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:542
+#: src/Module/Settings/Account.php:563
 msgid "Your current password to confirm the changes of the email address"
 msgstr ""
 
-#: src/Module/Settings/Account.php:545
+#: src/Module/Settings/Account.php:566
 msgid "Delete OpenID URL"
 msgstr ""
 
-#: src/Module/Settings/Account.php:547
+#: src/Module/Settings/Account.php:568
 msgid "Basic Settings"
 msgstr ""
 
-#: src/Module/Settings/Account.php:549
+#: src/Module/Settings/Account.php:570
 msgid "Email Address:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:550
+#: src/Module/Settings/Account.php:571
 msgid "Your Timezone:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:551
+#: src/Module/Settings/Account.php:572
 msgid "Your Language:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:551
+#: src/Module/Settings/Account.php:572
 msgid ""
 "Set the language we use to show you friendica interface and to send you "
 "emails"
 msgstr ""
 
-#: src/Module/Settings/Account.php:552
+#: src/Module/Settings/Account.php:573
 msgid "Default Post Location:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:553
+#: src/Module/Settings/Account.php:574
 msgid "Use Browser Location:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:555
+#: src/Module/Settings/Account.php:576
 msgid "Security and Privacy Settings"
 msgstr ""
 
-#: src/Module/Settings/Account.php:557
+#: src/Module/Settings/Account.php:578
 msgid "Maximum Friend Requests/Day:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:557 src/Module/Settings/Account.php:567
+#: src/Module/Settings/Account.php:578 src/Module/Settings/Account.php:588
 msgid "(to prevent spam abuse)"
 msgstr ""
 
-#: src/Module/Settings/Account.php:559
+#: src/Module/Settings/Account.php:580
 msgid "Allow your profile to be searchable globally?"
 msgstr ""
 
-#: src/Module/Settings/Account.php:559
+#: src/Module/Settings/Account.php:580
 msgid ""
 "Activate this setting if you want others to easily find and follow you. Your "
 "profile will be searchable on remote systems. This setting also determines "
@@ -8878,43 +8878,43 @@ msgid ""
 "indexed or not."
 msgstr ""
 
-#: src/Module/Settings/Account.php:560
+#: src/Module/Settings/Account.php:581
 msgid "Hide your contact/friend list from viewers of your profile?"
 msgstr ""
 
-#: src/Module/Settings/Account.php:560
+#: src/Module/Settings/Account.php:581
 msgid ""
 "A list of your contacts is displayed on your profile page. Activate this "
 "option to disable the display of your contact list."
 msgstr ""
 
-#: src/Module/Settings/Account.php:561
+#: src/Module/Settings/Account.php:582
 msgid "Hide your profile details from anonymous viewers?"
 msgstr ""
 
-#: src/Module/Settings/Account.php:561
+#: src/Module/Settings/Account.php:582
 msgid ""
 "Anonymous visitors will only see your profile picture, your display name and "
 "the nickname you are using on your profile page. Your public posts and "
 "replies will still be accessible by other means."
 msgstr ""
 
-#: src/Module/Settings/Account.php:562
+#: src/Module/Settings/Account.php:583
 msgid "Make public posts unlisted"
 msgstr ""
 
-#: src/Module/Settings/Account.php:562
+#: src/Module/Settings/Account.php:583
 msgid ""
 "Your public posts will not appear on the community pages or in search "
 "results, nor be sent to relay servers. However they can still appear on "
 "public feeds on remote servers."
 msgstr ""
 
-#: src/Module/Settings/Account.php:563
+#: src/Module/Settings/Account.php:584
 msgid "Make all posted pictures accessible"
 msgstr ""
 
-#: src/Module/Settings/Account.php:563
+#: src/Module/Settings/Account.php:584
 msgid ""
 "This option makes every posted picture accessible via the direct link. This "
 "is a workaround for the problem that most other networks can't handle "
@@ -8922,213 +8922,233 @@ msgid ""
 "public on your photo albums though."
 msgstr ""
 
-#: src/Module/Settings/Account.php:564
+#: src/Module/Settings/Account.php:585
 msgid "Allow friends to post to your profile page?"
 msgstr ""
 
-#: src/Module/Settings/Account.php:564
+#: src/Module/Settings/Account.php:585
 msgid ""
 "Your contacts may write posts on your profile wall. These posts will be "
 "distributed to your contacts"
 msgstr ""
 
-#: src/Module/Settings/Account.php:565
+#: src/Module/Settings/Account.php:586
 msgid "Allow friends to tag your posts?"
 msgstr ""
 
-#: src/Module/Settings/Account.php:565
+#: src/Module/Settings/Account.php:586
 msgid "Your contacts can add additional tags to your posts."
 msgstr ""
 
-#: src/Module/Settings/Account.php:566
+#: src/Module/Settings/Account.php:587
 msgid "Permit unknown people to send you private mail?"
 msgstr ""
 
-#: src/Module/Settings/Account.php:566
+#: src/Module/Settings/Account.php:587
 msgid ""
 "Friendica network users may send you private messages even if they are not "
 "in your contact list."
 msgstr ""
 
-#: src/Module/Settings/Account.php:567
+#: src/Module/Settings/Account.php:588
 msgid "Maximum private messages per day from unknown people:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:569
+#: src/Module/Settings/Account.php:590
 msgid "Default Post Permissions"
 msgstr ""
 
-#: src/Module/Settings/Account.php:573
+#: src/Module/Settings/Account.php:594
 msgid "Expiration settings"
 msgstr ""
 
-#: src/Module/Settings/Account.php:574
+#: src/Module/Settings/Account.php:595
 msgid "Automatically expire posts after this many days:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:574
+#: src/Module/Settings/Account.php:595
 msgid "If empty, posts will not expire. Expired posts will be deleted"
 msgstr ""
 
-#: src/Module/Settings/Account.php:575
+#: src/Module/Settings/Account.php:596
 msgid "Expire posts"
 msgstr ""
 
-#: src/Module/Settings/Account.php:575
+#: src/Module/Settings/Account.php:596
 msgid "When activated, posts and comments will be expired."
 msgstr ""
 
-#: src/Module/Settings/Account.php:576
+#: src/Module/Settings/Account.php:597
 msgid "Expire personal notes"
 msgstr ""
 
-#: src/Module/Settings/Account.php:576
+#: src/Module/Settings/Account.php:597
 msgid ""
 "When activated, the personal notes on your profile page will be expired."
 msgstr ""
 
-#: src/Module/Settings/Account.php:577
+#: src/Module/Settings/Account.php:598
 msgid "Expire starred posts"
 msgstr ""
 
-#: src/Module/Settings/Account.php:577
+#: src/Module/Settings/Account.php:598
 msgid ""
 "Starring posts keeps them from being expired. That behaviour is overwritten "
 "by this setting."
 msgstr ""
 
-#: src/Module/Settings/Account.php:578
+#: src/Module/Settings/Account.php:599
 msgid "Only expire posts by others"
 msgstr ""
 
-#: src/Module/Settings/Account.php:578
+#: src/Module/Settings/Account.php:599
 msgid ""
 "When activated, your own posts never expire. Then the settings above are "
 "only valid for posts you received."
 msgstr ""
 
-#: src/Module/Settings/Account.php:581
+#: src/Module/Settings/Account.php:602
 msgid "Notification Settings"
 msgstr ""
 
-#: src/Module/Settings/Account.php:582
+#: src/Module/Settings/Account.php:603
 msgid "Send a notification email when:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:583
+#: src/Module/Settings/Account.php:604
 msgid "You receive an introduction"
 msgstr ""
 
-#: src/Module/Settings/Account.php:584
+#: src/Module/Settings/Account.php:605
 msgid "Your introductions are confirmed"
 msgstr ""
 
-#: src/Module/Settings/Account.php:585
+#: src/Module/Settings/Account.php:606
 msgid "Someone writes on your profile wall"
 msgstr ""
 
-#: src/Module/Settings/Account.php:586
+#: src/Module/Settings/Account.php:607
 msgid "Someone writes a followup comment"
 msgstr ""
 
-#: src/Module/Settings/Account.php:587
+#: src/Module/Settings/Account.php:608
 msgid "You receive a private message"
 msgstr ""
 
-#: src/Module/Settings/Account.php:588
+#: src/Module/Settings/Account.php:609
 msgid "You receive a friend suggestion"
 msgstr ""
 
-#: src/Module/Settings/Account.php:589
+#: src/Module/Settings/Account.php:610
 msgid "You are tagged in a post"
 msgstr ""
 
-#: src/Module/Settings/Account.php:590
+#: src/Module/Settings/Account.php:611
 msgid "You are poked/prodded/etc. in a post"
 msgstr ""
 
-#: src/Module/Settings/Account.php:592
+#: src/Module/Settings/Account.php:613
 msgid "Create a desktop notification when:"
 msgstr ""
 
-#: src/Module/Settings/Account.php:593
+#: src/Module/Settings/Account.php:614
 msgid "Someone liked your content"
 msgstr ""
 
-#: src/Module/Settings/Account.php:594
+#: src/Module/Settings/Account.php:615
 msgid "Someone shared your content"
 msgstr ""
 
-#: src/Module/Settings/Account.php:596
+#: src/Module/Settings/Account.php:617
+msgid "Someone tagged you"
+msgstr ""
+
+#: src/Module/Settings/Account.php:618
+msgid "Someone directly commented on your post"
+msgstr ""
+
+#: src/Module/Settings/Account.php:619
+msgid "Someone commented on your thread"
+msgstr ""
+
+#: src/Module/Settings/Account.php:620
+msgid "Someone commented in a thread where you commented"
+msgstr ""
+
+#: src/Module/Settings/Account.php:621
+msgid "Someone commented on a thread where you interacted"
+msgstr ""
+
+#: src/Module/Settings/Account.php:623
 msgid "Activate desktop notifications"
 msgstr ""
 
-#: src/Module/Settings/Account.php:596
+#: src/Module/Settings/Account.php:623
 msgid "Show desktop popup on new notifications"
 msgstr ""
 
-#: src/Module/Settings/Account.php:600
+#: src/Module/Settings/Account.php:627
 msgid "Text-only notification emails"
 msgstr ""
 
-#: src/Module/Settings/Account.php:602
+#: src/Module/Settings/Account.php:629
 msgid "Send text only notification emails, without the html part"
 msgstr ""
 
-#: src/Module/Settings/Account.php:606
+#: src/Module/Settings/Account.php:633
 msgid "Show detailled notifications"
 msgstr ""
 
-#: src/Module/Settings/Account.php:608
+#: src/Module/Settings/Account.php:635
 msgid ""
 "Per default, notifications are condensed to a single notification per item. "
 "When enabled every notification is displayed."
 msgstr ""
 
-#: src/Module/Settings/Account.php:612
+#: src/Module/Settings/Account.php:639
 msgid "Show notifications of ignored contacts"
 msgstr ""
 
-#: src/Module/Settings/Account.php:614
+#: src/Module/Settings/Account.php:641
 msgid ""
 "You don't see posts from ignored contacts. But you still see their comments. "
 "This setting controls if you want to still receive regular notifications "
 "that are caused by ignored contacts or not."
 msgstr ""
 
-#: src/Module/Settings/Account.php:617
+#: src/Module/Settings/Account.php:644
 msgid "Advanced Account/Page Type Settings"
 msgstr ""
 
-#: src/Module/Settings/Account.php:618
+#: src/Module/Settings/Account.php:645
 msgid "Change the behaviour of this account for special situations"
 msgstr ""
 
-#: src/Module/Settings/Account.php:621
+#: src/Module/Settings/Account.php:648
 msgid "Import Contacts"
 msgstr ""
 
-#: src/Module/Settings/Account.php:622
+#: src/Module/Settings/Account.php:649
 msgid ""
 "Upload a CSV file that contains the handle of your followed accounts in the "
 "first column you exported from the old account."
 msgstr ""
 
-#: src/Module/Settings/Account.php:623
+#: src/Module/Settings/Account.php:650
 msgid "Upload File"
 msgstr ""
 
-#: src/Module/Settings/Account.php:626
+#: src/Module/Settings/Account.php:653
 msgid "Relocate"
 msgstr ""
 
-#: src/Module/Settings/Account.php:627
+#: src/Module/Settings/Account.php:654
 msgid ""
 "If you have moved this profile from another server, and some of your "
 "contacts don't receive your updates, try pushing this button."
 msgstr ""
 
-#: src/Module/Settings/Account.php:628
+#: src/Module/Settings/Account.php:655
 msgid "Resend relocate message to contacts"
 msgstr ""
 
@@ -10132,132 +10152,132 @@ msgstr ""
 msgid "New Follower"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:130
+#: src/Navigation/Notifications/Factory/Notification.php:134
 #, php-format
 msgid "%1$s wants to follow you"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:132
+#: src/Navigation/Notifications/Factory/Notification.php:136
 #, php-format
 msgid "%1$s has started following you"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:196
+#: src/Navigation/Notifications/Factory/Notification.php:200
 #, php-format
 msgid "%1$s liked your comment on %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:199
+#: src/Navigation/Notifications/Factory/Notification.php:203
 #, php-format
 msgid "%1$s liked your post %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:206
+#: src/Navigation/Notifications/Factory/Notification.php:210
 #, php-format
 msgid "%1$s disliked your comment on %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:209
+#: src/Navigation/Notifications/Factory/Notification.php:213
 #, php-format
 msgid "%1$s disliked your post %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:216
+#: src/Navigation/Notifications/Factory/Notification.php:220
 #, php-format
 msgid "%1$s shared your comment %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:219
+#: src/Navigation/Notifications/Factory/Notification.php:223
 #, php-format
 msgid "%1$s shared your post %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:223
-#: src/Navigation/Notifications/Factory/Notification.php:292
+#: src/Navigation/Notifications/Factory/Notification.php:227
+#: src/Navigation/Notifications/Factory/Notification.php:297
 #, php-format
 msgid "%1$s shared the post %2$s from %3$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:225
-#: src/Navigation/Notifications/Factory/Notification.php:294
+#: src/Navigation/Notifications/Factory/Notification.php:229
+#: src/Navigation/Notifications/Factory/Notification.php:299
 #, php-format
 msgid "%1$s shared a post from %3$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:227
-#: src/Navigation/Notifications/Factory/Notification.php:296
+#: src/Navigation/Notifications/Factory/Notification.php:231
+#: src/Navigation/Notifications/Factory/Notification.php:301
 #, php-format
 msgid "%1$s shared the post %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:229
-#: src/Navigation/Notifications/Factory/Notification.php:298
+#: src/Navigation/Notifications/Factory/Notification.php:233
+#: src/Navigation/Notifications/Factory/Notification.php:303
 #, php-format
 msgid "%1$s shared a post"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:237
+#: src/Navigation/Notifications/Factory/Notification.php:241
 #, php-format
 msgid "%1$s wants to attend your event %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:244
+#: src/Navigation/Notifications/Factory/Notification.php:248
 #, php-format
 msgid "%1$s does not want to attend your event %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:251
+#: src/Navigation/Notifications/Factory/Notification.php:255
 #, php-format
 msgid "%1$s maybe wants to attend your event %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:258
+#: src/Navigation/Notifications/Factory/Notification.php:262
 #, php-format
 msgid "%1$s tagged you on %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:262
+#: src/Navigation/Notifications/Factory/Notification.php:266
 #, php-format
 msgid "%1$s replied to you on %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:266
+#: src/Navigation/Notifications/Factory/Notification.php:270
 #, php-format
 msgid "%1$s commented in your thread %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:270
+#: src/Navigation/Notifications/Factory/Notification.php:274
 #, php-format
 msgid "%1$s commented on your comment %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:276
+#: src/Navigation/Notifications/Factory/Notification.php:281
 #, php-format
 msgid "%1$s commented in their thread %2$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:278
+#: src/Navigation/Notifications/Factory/Notification.php:283
 #, php-format
 msgid "%1$s commented in their thread"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:280
+#: src/Navigation/Notifications/Factory/Notification.php:285
 #, php-format
 msgid "%1$s commented in the thread %2$s from %3$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:282
+#: src/Navigation/Notifications/Factory/Notification.php:287
 #, php-format
 msgid "%1$s commented in the thread from %3$s"
 msgstr ""
 
-#: src/Navigation/Notifications/Factory/Notification.php:287
+#: src/Navigation/Notifications/Factory/Notification.php:292
 #, php-format
 msgid "%1$s commented on your thread %2$s"
 msgstr ""
 
 #: src/Navigation/Notifications/Repository/Notify.php:221
-#: src/Navigation/Notifications/Repository/Notify.php:724
+#: src/Navigation/Notifications/Repository/Notify.php:742
 msgid "[Friendica:Notify]"
 msgstr ""
 
@@ -10301,7 +10321,7 @@ msgid "%1$s commented on their %2$s %3$s"
 msgstr ""
 
 #: src/Navigation/Notifications/Repository/Notify.php:333
-#: src/Navigation/Notifications/Repository/Notify.php:758
+#: src/Navigation/Notifications/Repository/Notify.php:776
 #, php-format
 msgid "%1$s Comment to conversation #%2$d by %3$s"
 msgstr ""
@@ -10314,7 +10334,7 @@ msgstr ""
 #: src/Navigation/Notifications/Repository/Notify.php:339
 #: src/Navigation/Notifications/Repository/Notify.php:354
 #: src/Navigation/Notifications/Repository/Notify.php:373
-#: src/Navigation/Notifications/Repository/Notify.php:773
+#: src/Navigation/Notifications/Repository/Notify.php:791
 #, php-format
 msgid "Please visit %s to view and/or reply to the conversation."
 msgstr ""
@@ -10502,12 +10522,12 @@ msgstr ""
 msgid "Please visit %s to approve or reject the request."
 msgstr ""
 
-#: src/Navigation/Notifications/Repository/Notify.php:752
+#: src/Navigation/Notifications/Repository/Notify.php:770
 #, php-format
 msgid "%s %s tagged you"
 msgstr ""
 
-#: src/Navigation/Notifications/Repository/Notify.php:755
+#: src/Navigation/Notifications/Repository/Notify.php:773
 #, php-format
 msgid "%s %s shared a new post"
 msgstr ""
diff --git a/view/templates/settings/account.tpl b/view/templates/settings/account.tpl
index f8bf70cca0..1289a83097 100644
--- a/view/templates/settings/account.tpl
+++ b/view/templates/settings/account.tpl
@@ -109,6 +109,11 @@
 			<div class="group">
 				{{include file="field_checkbox.tpl" field=$notify_like}}
 				{{include file="field_checkbox.tpl" field=$notify_announce}}
+				{{include file="field_checkbox.tpl" field=$notify_tagged}}
+				{{include file="field_checkbox.tpl" field=$notify_direct_comment}}
+				{{include file="field_checkbox.tpl" field=$notify_thread_comment}}
+				{{include file="field_checkbox.tpl" field=$notify_comment_participation}}
+				{{include file="field_checkbox.tpl" field=$notify_activity_participation}}
 			</div>
 
 			{{include file="field_checkbox.tpl" field=$email_textonly}}
diff --git a/view/theme/frio/templates/settings/account.tpl b/view/theme/frio/templates/settings/account.tpl
index c08dc6ca2f..af78409cd9 100644
--- a/view/theme/frio/templates/settings/account.tpl
+++ b/view/theme/frio/templates/settings/account.tpl
@@ -160,6 +160,11 @@
 						<div class="group">
 							{{include file="field_checkbox.tpl" field=$notify_like}}
 							{{include file="field_checkbox.tpl" field=$notify_announce}}
+							{{include file="field_checkbox.tpl" field=$notify_tagged}}
+							{{include file="field_checkbox.tpl" field=$notify_direct_comment}}
+							{{include file="field_checkbox.tpl" field=$notify_thread_comment}}
+							{{include file="field_checkbox.tpl" field=$notify_comment_participation}}
+							{{include file="field_checkbox.tpl" field=$notify_activity_participation}}
 						</div>
 
 						{{include file="field_checkbox.tpl" field=$email_textonly}}