diff --git a/apps/comments/img/comments-dark.svg b/apps/comments/img/comments-dark.svg
new file mode 100644
index 0000000000000000000000000000000000000000..d331ea7711b56cfd8bcda5ce8ea9dd77a67657d7
--- /dev/null
+++ b/apps/comments/img/comments-dark.svg
@@ -0,0 +1 @@
+<svg xmlns="http://www.w3.org/2000/svg" height="32" width="32" viewBox="0 0 32 32"><path fill="#000" d="M16 3C7.163 3 0 7.925 0 14s7.163 11 16 11c.5 0 .98-.032 1.47-.063L26 32v-9.406c3.658-2.017 6-5.12 6-8.595 0-6.076-7.164-11-16-11z"/></svg>
diff --git a/apps/comments/lib/Activity/Provider.php b/apps/comments/lib/Activity/Provider.php
index c55982827b3c5ea1200f5c9fe0ec2e15ca9c8732..7bf686e796e49e56952b043cd453dd795bea2d45 100644
--- a/apps/comments/lib/Activity/Provider.php
+++ b/apps/comments/lib/Activity/Provider.php
@@ -87,7 +87,11 @@ class Provider implements IProvider {
 
 		if ($event->getSubject() === 'add_comment_subject') {
 			$this->parseMessage($event);
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/comment.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/comment.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/comment.svg')));
+			}
 
 			if ($this->activityManager->isFormattingFilteredObject()) {
 				try {
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
index d7730da61f41bd3093063e59e030655abb6e658a..6082e68dcd2a868e8966eb7adcf7503056f416ae 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Calendar.php
@@ -84,7 +84,11 @@ class Calendar extends Base {
 
 		$this->l = $this->languageFactory->get('dav', $language);
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.svg')));
+		}
 
 		if ($event->getSubject() === self::SUBJECT_ADD) {
 			$subject = $this->l->t('{actor} created calendar {calendar}');
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Event.php b/apps/dav/lib/CalDAV/Activity/Provider/Event.php
index daaace6b5be296191a30814dc380b80ce0726e11..b591eaa351c9ab515bdae39a64c81363d6545aaa 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Event.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Event.php
@@ -80,7 +80,11 @@ class Event extends Base {
 
 		$this->l = $this->languageFactory->get('dav', $language);
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'places/calendar-dark.svg')));
+		}
 
 		if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_event') {
 			$subject = $this->l->t('{actor} created event {event} in calendar {calendar}');
diff --git a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php
index 747b39ddb7f1ca5e72bb5b2f56817692cebe64fd..0ad1d137455c181313a14afa7ac180bfa6aac4e0 100644
--- a/apps/dav/lib/CalDAV/Activity/Provider/Todo.php
+++ b/apps/dav/lib/CalDAV/Activity/Provider/Todo.php
@@ -40,7 +40,11 @@ class Todo extends Event {
 
 		$this->l = $this->languageFactory->get('dav', $language);
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/checkmark.svg')));
+		}
 
 		if ($event->getSubject() === self::SUBJECT_OBJECT_ADD . '_todo') {
 			$subject = $this->l->t('{actor} created todo {todo} in list {calendar}');
diff --git a/apps/files/img/add-color.png b/apps/files/img/add-color.png
new file mode 100644
index 0000000000000000000000000000000000000000..2211eb6e0bc19b74692db585aad55dca51222bed
Binary files /dev/null and b/apps/files/img/add-color.png differ
diff --git a/apps/files/img/change.png b/apps/files/img/change.png
new file mode 100644
index 0000000000000000000000000000000000000000..1465882d72e340253078e8c906b97c0278b308b0
Binary files /dev/null and b/apps/files/img/change.png differ
diff --git a/apps/files/img/delete-color.png b/apps/files/img/delete-color.png
new file mode 100644
index 0000000000000000000000000000000000000000..1d563db1c8da06f7c2a8c53aaa83c0f2b9b62159
Binary files /dev/null and b/apps/files/img/delete-color.png differ
diff --git a/apps/files/lib/Activity/FavoriteProvider.php b/apps/files/lib/Activity/FavoriteProvider.php
index 941579e730d422f65dd9a1b259c61f2fef3db018..318ce66e6725d2a20fb658f2784700a29f44298c 100644
--- a/apps/files/lib/Activity/FavoriteProvider.php
+++ b/apps/files/lib/Activity/FavoriteProvider.php
@@ -97,11 +97,19 @@ class FavoriteProvider implements IProvider {
 	public function parseShortVersion(IEvent $event) {
 
 		if ($event->getSubject() === self::SUBJECT_ADDED) {
-			$event->setParsedSubject($this->l->t('Added to favorites'))
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
+			$event->setParsedSubject($this->l->t('Added to favorites'));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_REMOVED) {
-			$event->setParsedSubject($this->l->t('Removed from favorites'))
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
+			$event->setParsedSubject($this->l->t('Removed from favorites'));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
+			}
 		} else {
 			throw new \InvalidArgumentException();
 		}
@@ -120,10 +128,18 @@ class FavoriteProvider implements IProvider {
 
 		if ($event->getSubject() === self::SUBJECT_ADDED) {
 			$subject = $this->l->t('You added {file} to your favorites');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/starred.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_REMOVED) {
 			$subject = $this->l->t('You removed {file} from your favorites');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/star.svg')));
+			}
 		} else {
 			throw new \InvalidArgumentException();
 		}
diff --git a/apps/files/lib/Activity/Provider.php b/apps/files/lib/Activity/Provider.php
index c3289ed37038fa7fc9eeadc817ad365d23cd8df1..736b930b7aa8b2a0b638a5ff51ed815b57ab7439 100644
--- a/apps/files/lib/Activity/Provider.php
+++ b/apps/files/lib/Activity/Provider.php
@@ -110,21 +110,41 @@ class Provider implements IProvider {
 
 		if ($event->getSubject() === 'created_by') {
 			$subject = $this->l->t('Created by {user}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			}
 		} else if ($event->getSubject() === 'changed_by') {
 			$subject = $this->l->t('Changed by {user}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else if ($event->getSubject() === 'deleted_by') {
 			$subject = $this->l->t('Deleted by {user}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
+			}
 		} else if ($event->getSubject() === 'restored_by') {
 			$subject = $this->l->t('Restored by {user}');
 		} else if ($event->getSubject() === 'renamed_by') {
 			$subject = $this->l->t('Renamed by {user}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else if ($event->getSubject() === 'moved_by') {
 			$subject = $this->l->t('Moved by {user}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else {
 			throw new \InvalidArgumentException();
 		}
@@ -151,41 +171,85 @@ class Provider implements IProvider {
 
 		if ($event->getSubject() === 'created_self') {
 			$subject = $this->l->t('You created {file}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			}
 		} else if ($event->getSubject() === 'created_by') {
 			$subject = $this->l->t('{user} created {file}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			}
 		} else if ($event->getSubject() === 'created_public') {
 			$subject = $this->l->t('{file} was created in a public folder');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'add-color.svg')));
+			}
 		} else if ($event->getSubject() === 'changed_self') {
 			$subject = $this->l->t('You changed {file}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else if ($event->getSubject() === 'changed_by') {
 			$subject = $this->l->t('{user} changed {file}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else if ($event->getSubject() === 'deleted_self') {
 			$subject = $this->l->t('You deleted {file}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
+			}
 		} else if ($event->getSubject() === 'deleted_by') {
 			$subject = $this->l->t('{user} deleted {file}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'delete-color.svg')));
+			}
 		} else if ($event->getSubject() === 'restored_self') {
 			$subject = $this->l->t('You restored {file}');
 		} else if ($event->getSubject() === 'restored_by') {
 			$subject = $this->l->t('{user} restored {file}');
 		} else if ($event->getSubject() === 'renamed_self') {
 			$subject = $this->l->t('You renamed {oldfile} to {newfile}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else if ($event->getSubject() === 'renamed_by') {
 			$subject = $this->l->t('{user} renamed {oldfile} to {newfile}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else if ($event->getSubject() === 'moved_self') {
 			$subject = $this->l->t('You moved {oldfile} to {newfile}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else if ($event->getSubject() === 'moved_by') {
 			$subject = $this->l->t('{user} moved {oldfile} to {newfile}');
-			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('files', 'change.svg')));
+			}
 		} else {
 			throw new \InvalidArgumentException();
 		}
diff --git a/apps/files_sharing/lib/Activity/Providers/Downloads.php b/apps/files_sharing/lib/Activity/Providers/Downloads.php
index eb14c16266cced51de811153f3c228563ac59684..1e1688d7b0f4ec13b8235cbb1813bbb1ce318cb2 100644
--- a/apps/files_sharing/lib/Activity/Providers/Downloads.php
+++ b/apps/files_sharing/lib/Activity/Providers/Downloads.php
@@ -51,7 +51,11 @@ class Downloads extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
@@ -76,7 +80,11 @@ class Downloads extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/download.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
diff --git a/apps/files_sharing/lib/Activity/Providers/Groups.php b/apps/files_sharing/lib/Activity/Providers/Groups.php
index 06ccdaa98b30b5a9357e1bebaf1bf525555cbbfd..683927d5735de18c8b18cd925496ada25da08b3f 100644
--- a/apps/files_sharing/lib/Activity/Providers/Groups.php
+++ b/apps/files_sharing/lib/Activity/Providers/Groups.php
@@ -51,7 +51,11 @@ class Groups extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
@@ -78,7 +82,11 @@ class Groups extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
diff --git a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
index b22ae0aa9b53d495b258eaa6db23b1bf26177bd3..98e4ebda2d8d7dd80b971243a4ae59f914e422c1 100644
--- a/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
+++ b/apps/files_sharing/lib/Activity/Providers/PublicLinks.php
@@ -58,7 +58,11 @@ class PublicLinks extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
@@ -90,7 +94,11 @@ class PublicLinks extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
diff --git a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
index 4e7d8ef3e27d4bd67cdc5cd09212857a7716470a..6ac0be76ff40af6c45cbfd0b4dac884e8e2ee09d 100644
--- a/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
+++ b/apps/files_sharing/lib/Activity/Providers/RemoteShares.php
@@ -73,7 +73,11 @@ class RemoteShares extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
@@ -100,7 +104,11 @@ class RemoteShares extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
diff --git a/apps/files_sharing/lib/Activity/Providers/Users.php b/apps/files_sharing/lib/Activity/Providers/Users.php
index eaab35bba9d0a07ade3f06080cbc58120654a212..02f47f3775ac9423e08c0b92fe1cd703cb7c7133 100644
--- a/apps/files_sharing/lib/Activity/Providers/Users.php
+++ b/apps/files_sharing/lib/Activity/Providers/Users.php
@@ -60,7 +60,11 @@ class Users extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
@@ -92,7 +96,11 @@ class Users extends Base {
 			throw new \InvalidArgumentException();
 		}
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+		}
 		$this->setSubjects($event, $subject, $parsedParameters);
 
 		return $event;
diff --git a/apps/sharebymail/lib/Activity.php b/apps/sharebymail/lib/Activity.php
index 73751cb241e77781a806cad8bda5f318bb308b43..df9cb36e0d7fe5d64f0b802de84555072f96288b 100644
--- a/apps/sharebymail/lib/Activity.php
+++ b/apps/sharebymail/lib/Activity.php
@@ -117,8 +117,12 @@ class Activity implements IProvider {
 				]))
 				->setRichSubject($this->l->t('Shared with {email}'), [
 					'email' => $parsedParameters['email'],
-				])
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				]);
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_BY) {
 			$event->setParsedSubject($this->l->t('Shared with %1$s by %2$s', [
 				$parsedParameters['email']['name'],
@@ -127,20 +131,32 @@ class Activity implements IProvider {
 				->setRichSubject($this->l->t('Shared with {email} by {actor}'), [
 					'email' => $parsedParameters['email'],
 					'actor' => $parsedParameters['actor'],
-				])
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				]);
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND) {
 			$event->setParsedSubject($this->l->t('Password for mail share sent to %1$s', [
 				$parsedParameters['email']['name']
 			]))
 				->setRichSubject($this->l->t('Password for mail share sent to {email}'), [
 					'email' => $parsedParameters['email']
-				])
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				]);
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND_SELF) {
 			$event->setParsedSubject($this->l->t('Password for mail share sent to you'))
-				->setRichSubject($this->l->t('Password for mail share sent to you'))
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				->setRichSubject($this->l->t('Password for mail share sent to you'));
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 		} else {
 			throw new \InvalidArgumentException();
 		}
@@ -162,29 +178,45 @@ class Activity implements IProvider {
 					$parsedParameters['file']['path'],
 					$parsedParameters['email']['name'],
 				]))
-				->setRichSubject($this->l->t('You shared {file} with {email} by mail'), $parsedParameters)
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				->setRichSubject($this->l->t('You shared {file} with {email} by mail'), $parsedParameters);
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_BY) {
 			$event->setParsedSubject($this->l->t('%3$s shared %1$s with %2$s by mail', [
 				$parsedParameters['file']['path'],
 				$parsedParameters['email']['name'],
 				$parsedParameters['actor']['name'],
 			]))
-				->setRichSubject($this->l->t('{actor} shared {file} with {email} by mail'), $parsedParameters)
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				->setRichSubject($this->l->t('{actor} shared {file} with {email} by mail'), $parsedParameters);
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND) {
 			$event->setParsedSubject($this->l->t('Password to access %1$s was sent to %2s', [
 				$parsedParameters['file']['path'],
 				$parsedParameters['email']['name']
 			]))
-				->setRichSubject($this->l->t('Password to access {file} was sent to {email}'), $parsedParameters)
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				->setRichSubject($this->l->t('Password to access {file} was sent to {email}'), $parsedParameters);
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 		} else if ($event->getSubject() === self::SUBJECT_SHARED_EMAIL_PASSWORD_SEND_SELF) {
 			$event->setParsedSubject(
 				$this->l->t('Password to access %1$s was sent to you',
 					[$parsedParameters['file']['path']]))
-				->setRichSubject($this->l->t('Password to access {file} was sent to you'), $parsedParameters)
-				->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+				->setRichSubject($this->l->t('Password to access {file} was sent to you'), $parsedParameters);
+			if ($this->activityManager->getRequirePNG()) {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.png')));
+			} else {
+				$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/share.svg')));
+			}
 
 		} else {
 			throw new \InvalidArgumentException();
diff --git a/apps/systemtags/lib/Activity/Provider.php b/apps/systemtags/lib/Activity/Provider.php
index 5ef20c281bddfb94eef1d80a8f79cb14ec42ed18..db7ff94fd16feb6c9920231e8b982e2ba0e3e126 100644
--- a/apps/systemtags/lib/Activity/Provider.php
+++ b/apps/systemtags/lib/Activity/Provider.php
@@ -104,7 +104,12 @@ class Provider implements IProvider {
 	 */
 	public function parseShortVersion(IEvent $event) {
 		$parsedParameters = $this->getParameters($event);
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
+
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
+		}
 
 		if ($event->getSubject() === self::ASSIGN_TAG) {
 			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
@@ -157,7 +162,12 @@ class Provider implements IProvider {
 	 */
 	public function parseLongVersion(IEvent $event) {
 		$parsedParameters = $this->getParameters($event);
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
+
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('core', 'actions/tag.svg')));
+		}
 
 		if ($event->getSubject() === self::CREATE_TAG) {
 			if ($parsedParameters['actor']['id'] === $this->activityManager->getCurrentUserId()) {
diff --git a/apps/twofactor_backupcodes/lib/Activity/Provider.php b/apps/twofactor_backupcodes/lib/Activity/Provider.php
index 9c7aaeae6306e75e43d8384c872d2eceacd541b1..739ac9bbe13b62bd292a5e0c049a5757abc895ec 100644
--- a/apps/twofactor_backupcodes/lib/Activity/Provider.php
+++ b/apps/twofactor_backupcodes/lib/Activity/Provider.php
@@ -24,8 +24,8 @@ namespace OCA\TwoFactorBackupCodes\Activity;
 
 use InvalidArgumentException;
 use OCP\Activity\IEvent;
+use OCP\Activity\IManager;
 use OCP\Activity\IProvider;
-use OCP\ILogger;
 use OCP\IURLGenerator;
 use OCP\L10N\IFactory as L10nFactory;
 
@@ -37,17 +37,17 @@ class Provider implements IProvider {
 	/** @var IURLGenerator */
 	private $urlGenerator;
 
-	/** @var ILogger */
-	private $logger;
+	/** @var IManager */
+	private $activityManager;
 
 	/**
 	 * @param L10nFactory $l10n
 	 * @param IURLGenerator $urlGenerator
-	 * @param ILogger $logger
+	 * @param IManager $activityManager
 	 */
-	public function __construct(L10nFactory $l10n, IURLGenerator $urlGenerator, ILogger $logger) {
-		$this->logger = $logger;
+	public function __construct(L10nFactory $l10n, IURLGenerator $urlGenerator, IManager $activityManager) {
 		$this->urlGenerator = $urlGenerator;
+		$this->activityManager = $activityManager;
 		$this->l10n = $l10n;
 	}
 
@@ -61,7 +61,12 @@ class Provider implements IProvider {
 		switch ($event->getSubject()) {
 			case 'codes_generated':
 				$event->setParsedSubject($l->t('You created two-factor backup codes for your account'));
-				$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.svg')));
+
+				if ($this->activityManager->getRequirePNG()) {
+					$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.png')));
+				} else {
+					$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.svg')));
+				}
 				break;
 			default:
 				throw new InvalidArgumentException();
diff --git a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
index e1a13c89c103abaf777281c1db4685748bc0f189..a56098556e50b2423afde4db33caf77f08ce353c 100644
--- a/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
+++ b/apps/twofactor_backupcodes/tests/Unit/Activity/ProviderTest.php
@@ -25,8 +25,8 @@ namespace OCA\TwoFactorBackupCodes\Test\Unit\Activity;
 use InvalidArgumentException;
 use OCA\TwoFactorBackupCodes\Activity\Provider;
 use OCP\Activity\IEvent;
+use OCP\Activity\IManager;
 use OCP\IL10N;
-use OCP\ILogger;
 use OCP\IURLGenerator;
 use OCP\L10N\IFactory;
 use PHPUnit_Framework_MockObject_MockObject;
@@ -34,14 +34,14 @@ use Test\TestCase;
 
 class ProviderTest extends TestCase {
 
-	/** @var IL10N|PHPUnit_Framework_MockObject_MockObject */
+	/** @var IFactory|PHPUnit_Framework_MockObject_MockObject */
 	private $l10n;
 
 	/** @var IURLGenerator|PHPUnit_Framework_MockObject_MockObject */
 	private $urlGenerator;
 
-	/** @var ILogger|PHPUnit_Framework_MockObject_MockObject */
-	private $logger;
+	/** @var IManager|PHPUnit_Framework_MockObject_MockObject */
+	private $activityManager;
 
 	/** @var Provider */
 	private $provider;
@@ -51,9 +51,9 @@ class ProviderTest extends TestCase {
 
 		$this->l10n = $this->createMock(IFactory::class);
 		$this->urlGenerator = $this->createMock(IURLGenerator::class);
-		$this->logger = $this->createMock(ILogger::class);
+		$this->activityManager = $this->createMock(IManager::class);
 
-		$this->provider = new Provider($this->l10n, $this->urlGenerator, $this->logger);
+		$this->provider = new Provider($this->l10n, $this->urlGenerator, $this->activityManager);
 	}
 
 	public function testParseUnrelated() {
diff --git a/core/img/actions/checkmark.png b/core/img/actions/checkmark.png
new file mode 100644
index 0000000000000000000000000000000000000000..eb938698fd2183727f80b7e2f61b5d2afc550871
Binary files /dev/null and b/core/img/actions/checkmark.png differ
diff --git a/core/img/actions/comment.png b/core/img/actions/comment.png
new file mode 100644
index 0000000000000000000000000000000000000000..0dec289e38b03abe522d137fbd9b7e36c1b41386
Binary files /dev/null and b/core/img/actions/comment.png differ
diff --git a/core/img/actions/download.png b/core/img/actions/download.png
new file mode 100644
index 0000000000000000000000000000000000000000..6808969b30bfafaed6fb017a0eef55762dc18241
Binary files /dev/null and b/core/img/actions/download.png differ
diff --git a/core/img/actions/password.png b/core/img/actions/password.png
new file mode 100644
index 0000000000000000000000000000000000000000..afe3e31a658ddcd2baa7d7465d2f28491fb46877
Binary files /dev/null and b/core/img/actions/password.png differ
diff --git a/core/img/actions/share.png b/core/img/actions/share.png
new file mode 100644
index 0000000000000000000000000000000000000000..8cc66f08f5d3c4042feb291e08219b97098baa07
Binary files /dev/null and b/core/img/actions/share.png differ
diff --git a/core/img/actions/star.png b/core/img/actions/star.png
new file mode 100644
index 0000000000000000000000000000000000000000..61727fc3f1918a52ecfc81d519ad59143e7e6a15
Binary files /dev/null and b/core/img/actions/star.png differ
diff --git a/core/img/actions/starred.png b/core/img/actions/starred.png
new file mode 100644
index 0000000000000000000000000000000000000000..aa5bced775173c935cf7713bbefb72c4f6264ede
Binary files /dev/null and b/core/img/actions/starred.png differ
diff --git a/core/img/actions/tag.png b/core/img/actions/tag.png
new file mode 100644
index 0000000000000000000000000000000000000000..6a466b367b3531f7b03218484fb83a3b1ce7a41d
Binary files /dev/null and b/core/img/actions/tag.png differ
diff --git a/core/img/places/calendar-dark.png b/core/img/places/calendar-dark.png
new file mode 100644
index 0000000000000000000000000000000000000000..88e8ea64db922801706e2e270a13b7582864c1e4
Binary files /dev/null and b/core/img/places/calendar-dark.png differ
diff --git a/lib/private/Activity/Manager.php b/lib/private/Activity/Manager.php
index a8810a3e16b1d2a1ba10c617dd189bf30e8bd3d0..bbb6f6941567586171c3b1ed1ddf5cc42073b565 100644
--- a/lib/private/Activity/Manager.php
+++ b/lib/private/Activity/Manager.php
@@ -57,6 +57,9 @@ class Manager implements IManager {
 	/** @var int */
 	protected $formattingObjectId;
 
+	/** @var bool */
+	protected $requirePNG;
+
 	/** @var string */
 	protected $currentUserId;
 
@@ -465,6 +468,20 @@ class Manager implements IManager {
 			&& $this->formattingObjectId === $this->request->getParam('object_id');
 	}
 
+	/**
+	 * @param bool $status Set to true, when parsing events should not use SVG icons
+	 */
+	public function setRequirePNG($status) {
+		$this->requirePNG = $status;
+	}
+
+	/**
+	 * @return bool
+	 */
+	public function getRequirePNG() {
+		return $this->requirePNG;
+	}
+
 	/**
 	 * @param string $app
 	 * @param string $text
diff --git a/lib/public/Activity/IManager.php b/lib/public/Activity/IManager.php
index f5b495807c5790f35af8fb0812520a70168f1892..4cdea0e2f74e4eea0c9c162d33477e0aaae6132c 100644
--- a/lib/public/Activity/IManager.php
+++ b/lib/public/Activity/IManager.php
@@ -206,6 +206,18 @@ interface IManager {
 	 */
 	public function isFormattingFilteredObject();
 
+	/**
+	 * @param bool $status Set to true, when parsing events should not use SVG icons
+	 * @since 12.0.1
+	 */
+	public function setRequirePNG($status);
+
+	/**
+	 * @return bool
+	 * @since 12.0.1
+	 */
+	public function getRequirePNG();
+
 	/**
 	 * @param string $app
 	 * @param string $text
diff --git a/settings/Activity/Provider.php b/settings/Activity/Provider.php
index 7893b450a44c7fd53f936ea2fc1fc1070eeb709e..575b7e9b569dea18a51168f8baec1e44b4f51807 100644
--- a/settings/Activity/Provider.php
+++ b/settings/Activity/Provider.php
@@ -22,6 +22,7 @@
 namespace OC\Settings\Activity;
 
 use OCP\Activity\IEvent;
+use OCP\Activity\IManager;
 use OCP\Activity\IProvider;
 use OCP\IL10N;
 use OCP\IURLGenerator;
@@ -50,6 +51,9 @@ class Provider implements IProvider {
 	/** @var IUserManager */
 	protected $userManager;
 
+	/** @var IManager */
+	private $activityManager;
+
 	/** @var string[] cached displayNames - key is the UID and value the displayname */
 	protected $displayNames = [];
 
@@ -57,11 +61,13 @@ class Provider implements IProvider {
 	 * @param IFactory $languageFactory
 	 * @param IURLGenerator $url
 	 * @param IUserManager $userManager
+	 * @param IManager $activityManager
 	 */
-	public function __construct(IFactory $languageFactory, IURLGenerator $url, IUserManager $userManager) {
+	public function __construct(IFactory $languageFactory, IURLGenerator $url, IUserManager $userManager, IManager $activityManager) {
 		$this->languageFactory = $languageFactory;
 		$this->url = $url;
 		$this->userManager = $userManager;
+		$this->activityManager = $activityManager;
 	}
 
 	/**
@@ -79,7 +85,11 @@ class Provider implements IProvider {
 
 		$this->l = $this->languageFactory->get('settings', $language);
 
-		$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('settings', 'personal.svg')));
+		if ($this->activityManager->getRequirePNG()) {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('settings', 'personal.png')));
+		} else {
+			$event->setIcon($this->url->getAbsoluteURL($this->url->imagePath('settings', 'personal.svg')));
+		}
 
 		if ($event->getSubject() === self::PASSWORD_CHANGED_BY) {
 			$subject = $this->l->t('{actor} changed your password');
diff --git a/settings/Activity/SecurityProvider.php b/settings/Activity/SecurityProvider.php
index 74747f684daf2fd3ff1340b6146310c1b2c18192..7b27fde363f1e55315f658e90723cc7caa3b1094 100644
--- a/settings/Activity/SecurityProvider.php
+++ b/settings/Activity/SecurityProvider.php
@@ -24,8 +24,8 @@ namespace OC\Settings\Activity;
 
 use InvalidArgumentException;
 use OCP\Activity\IEvent;
+use OCP\Activity\IManager;
 use OCP\Activity\IProvider;
-use OCP\ILogger;
 use OCP\IURLGenerator;
 use OCP\L10N\IFactory as L10nFactory;
 
@@ -37,13 +37,13 @@ class SecurityProvider implements IProvider {
 	/** @var IURLGenerator */
 	private $urlGenerator;
 
-	/** @var ILogger */
-	private $logger;
+	/** @var IManager */
+	private $activityManager;
 
-	public function __construct(L10nFactory $l10n, IURLGenerator $urlGenerator, ILogger $logger) {
-		$this->logger = $logger;
+	public function __construct(L10nFactory $l10n, IURLGenerator $urlGenerator, IManager $activityManager) {
 		$this->urlGenerator = $urlGenerator;
 		$this->l10n = $l10n;
+		$this->activityManager = $activityManager;
 	}
 
 	public function parse($language, IEvent $event, IEvent $previousEvent = null) {
@@ -59,14 +59,22 @@ class SecurityProvider implements IProvider {
 				$event->setParsedSubject($l->t('You successfully logged in using two-factor authentication (%1$s)', [
 							$params['provider'],
 					]));
-				$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.svg')));
+				if ($this->activityManager->getRequirePNG()) {
+					$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.png')));
+				} else {
+					$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.svg')));
+				}
 				break;
 			case 'twofactor_failed':
 				$params = $event->getSubjectParameters();
 				$event->setParsedSubject($l->t('A login attempt using two-factor authentication failed (%1$s)', [
 							$params['provider'],
 					]));
-				$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.svg')));
+				if ($this->activityManager->getRequirePNG()) {
+					$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.png')));
+				} else {
+					$event->setIcon($this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/password.svg')));
+				}
 				break;
 			default:
 				throw new InvalidArgumentException();
diff --git a/settings/img/personal.png b/settings/img/personal.png
new file mode 100644
index 0000000000000000000000000000000000000000..3c9c7345f65d1fbc1857f0988a96c16aca72be46
Binary files /dev/null and b/settings/img/personal.png differ
diff --git a/tests/Settings/Activity/SecurityProviderTest.php b/tests/Settings/Activity/SecurityProviderTest.php
index 2abc14654f17942346b93321ba103e648f1daaac..21fc28f3c3b4bff290b82d8f58a905c17bca8f80 100644
--- a/tests/Settings/Activity/SecurityProviderTest.php
+++ b/tests/Settings/Activity/SecurityProviderTest.php
@@ -25,8 +25,8 @@ namespace Tests\Settings\Activity;
 use InvalidArgumentException;
 use OC\Settings\Activity\SecurityProvider;
 use OCP\Activity\IEvent;
+use OCP\Activity\IManager;
 use OCP\IL10N;
-use OCP\ILogger;
 use OCP\IURLGenerator;
 use OCP\L10N\IFactory;
 use PHPUnit_Framework_MockObject_MockObject;
@@ -34,14 +34,14 @@ use Test\TestCase;
 
 class SecurityProviderTest extends TestCase {
 
-	/** @var IL10N|PHPUnit_Framework_MockObject_MockObject */
+	/** @var IFactory|PHPUnit_Framework_MockObject_MockObject */
 	private $l10n;
 
 	/** @var IURLGenerator|PHPUnit_Framework_MockObject_MockObject */
 	private $urlGenerator;
 
-	/** @var ILogger|PHPUnit_Framework_MockObject_MockObject */
-	private $logger;
+	/** @var IManager|PHPUnit_Framework_MockObject_MockObject */
+	private $activityManager;
 
 	/** @var SecurityProvider */
 	private $provider;
@@ -51,9 +51,9 @@ class SecurityProviderTest extends TestCase {
 
 		$this->l10n = $this->createMock(IFactory::class);
 		$this->urlGenerator = $this->createMock(IURLGenerator::class);
-		$this->logger = $this->createMock(ILogger::class);
+		$this->activityManager = $this->createMock(IManager::class);
 
-		$this->provider = new SecurityProvider($this->l10n, $this->urlGenerator, $this->logger);
+		$this->provider = new SecurityProvider($this->l10n, $this->urlGenerator, $this->activityManager);
 	}
 
 	public function testParseUnrelated() {