From 22f04a7cc3d6911652452773c9432af6d53f90f7 Mon Sep 17 00:00:00 2001
From: Roeland Jago Douma <roeland@famdouma.nl>
Date: Thu, 29 Oct 2020 20:15:04 +0100
Subject: [PATCH] Fix invalid usages of the new dispatcher

Signed-off-by: Roeland Jago Douma <roeland@famdouma.nl>
---
 apps/files_sharing/lib/AppInfo/Application.php         | 10 ++++++----
 .../lib/AppInfo/Application.php                        |  4 ++--
 core/Application.php                                   |  6 ++++--
 3 files changed, 12 insertions(+), 8 deletions(-)

diff --git a/apps/files_sharing/lib/AppInfo/Application.php b/apps/files_sharing/lib/AppInfo/Application.php
index 6448d0fab4d..fd71f58f121 100644
--- a/apps/files_sharing/lib/AppInfo/Application.php
+++ b/apps/files_sharing/lib/AppInfo/Application.php
@@ -59,6 +59,7 @@ use OCP\IServerContainer;
 use OCP\Share\Events\ShareCreatedEvent;
 use OCP\Util;
 use Psr\Container\ContainerInterface;
+use Symfony\Component\EventDispatcher\EventDispatcherInterface;
 use Symfony\Component\EventDispatcher\GenericEvent;
 
 class Application extends App {
@@ -74,6 +75,7 @@ class Application extends App {
 
 		/** @var IEventDispatcher $dispatcher */
 		$dispatcher = $container->query(IEventDispatcher::class);
+		$oldDispatcher = $container->getServer()->getEventDispatcher();
 		$mountProviderCollection = $server->getMountProviderCollection();
 		$notifications = $server->getNotificationManager();
 
@@ -124,7 +126,7 @@ class Application extends App {
 		$notifications->registerNotifierService(Notifier::class);
 
 		$this->registerMountProviders($mountProviderCollection);
-		$this->registerEventsScripts($dispatcher);
+		$this->registerEventsScripts($dispatcher, $oldDispatcher);
 		$this->setupSharingMenus();
 
 		/**
@@ -138,7 +140,7 @@ class Application extends App {
 		$mountProviderCollection->registerProvider($this->getContainer()->query('ExternalMountProvider'));
 	}
 
-	protected function registerEventsScripts(IEventDispatcher $dispatcher) {
+	protected function registerEventsScripts(IEventDispatcher $dispatcher, EventDispatcherInterface $oldDispatcher) {
 		// sidebar and files scripts
 		$dispatcher->addServiceListener(LoadAdditionalScriptsEvent::class, LoadAdditionalListener::class);
 		$dispatcher->addServiceListener(BeforeTemplateRenderedEvent::class, LegacyBeforeTemplateRenderedListener::class);
@@ -151,12 +153,12 @@ class Application extends App {
 		$dispatcher->addServiceListener(UserAddedEvent::class, UserAddedToGroupListener::class);
 
 		// notifications api to accept incoming user shares
-		$dispatcher->addListener('OCP\Share::postShare', function (GenericEvent $event) {
+		$oldDispatcher->addListener('OCP\Share::postShare', function (GenericEvent $event) {
 			/** @var Listener $listener */
 			$listener = $this->getContainer()->query(Listener::class);
 			$listener->shareNotification($event);
 		});
-		$dispatcher->addListener(IGroup::class . '::postAddUser', function (GenericEvent $event) {
+		$oldDispatcher->addListener(IGroup::class . '::postAddUser', function (GenericEvent $event) {
 			/** @var Listener $listener */
 			$listener = $this->getContainer()->query(Listener::class);
 			$listener->userAddedToGroup($event);
diff --git a/apps/lookup_server_connector/lib/AppInfo/Application.php b/apps/lookup_server_connector/lib/AppInfo/Application.php
index 1cd999eae8d..707a06af6fb 100644
--- a/apps/lookup_server_connector/lib/AppInfo/Application.php
+++ b/apps/lookup_server_connector/lib/AppInfo/Application.php
@@ -35,9 +35,9 @@ use OCP\AppFramework\App;
 use OCP\AppFramework\Bootstrap\IBootContext;
 use OCP\AppFramework\Bootstrap\IBootstrap;
 use OCP\AppFramework\Bootstrap\IRegistrationContext;
-use OCP\EventDispatcher\IEventDispatcher;
 use OCP\AppFramework\IAppContainer;
 use OCP\IUser;
+use Symfony\Component\EventDispatcher\EventDispatcher;
 use Symfony\Component\EventDispatcher\GenericEvent;
 
 class Application extends App implements IBootstrap {
@@ -57,7 +57,7 @@ class Application extends App implements IBootstrap {
 	/**
 	 * @todo move the OCP events and then move the registration to `register`
 	 */
-	private function registerEventListeners(IEventDispatcher $dispatcher,
+	private function registerEventListeners(EventDispatcher $dispatcher,
 											IAppContainer $appContainer): void {
 		$dispatcher->addListener('OC\AccountManager::userUpdated', function (GenericEvent $event) use ($appContainer) {
 			/** @var IUser $user */
diff --git a/core/Application.php b/core/Application.php
index 2e2579f094e..a452ca9677f 100644
--- a/core/Application.php
+++ b/core/Application.php
@@ -73,7 +73,9 @@ class Application extends App {
 		$notificationManager->registerNotifierService(RemoveLinkSharesNotifier::class);
 		$notificationManager->registerNotifierService(AuthenticationNotifier::class);
 
-		$eventDispatcher->addListener(IDBConnection::CHECK_MISSING_INDEXES_EVENT,
+		$oldEventDispatcher = $server->getEventDispatcher();
+
+		$oldEventDispatcher->addListener(IDBConnection::CHECK_MISSING_INDEXES_EVENT,
 			function (GenericEvent $event) use ($container) {
 				/** @var MissingIndexInformation $subject */
 				$subject = $event->getSubject();
@@ -179,7 +181,7 @@ class Application extends App {
 			}
 		);
 
-		$eventDispatcher->addListener(IDBConnection::CHECK_MISSING_COLUMNS_EVENT,
+		$oldEventDispatcher->addListener(IDBConnection::CHECK_MISSING_COLUMNS_EVENT,
 			function (GenericEvent $event) use ($container) {
 				/** @var MissingColumnInformation $subject */
 				$subject = $event->getSubject();
-- 
GitLab