diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index e585f2993d0..a8a985dba2f 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -119,6 +119,7 @@ use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; +use OCP\Collaboration\AutoComplete\AutoCompleteFilterEvent; use OCP\Collaboration\Resources\IProviderManager; use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent; use OCP\EventDispatcher\IEventDispatcher; @@ -216,6 +217,9 @@ public function register(IRegistrationContext $context): void { $context->registerEventListener(BeforeGuestJoinedRoomEvent::class, FilesListener::class); $context->registerEventListener(BeforeUserJoinedRoomEvent::class, FilesListener::class); + // Collaborators / Auto complete listeners + $context->registerEventListener(AutoCompleteFilterEvent::class, CollaboratorsListener::class); + // Reference listeners $context->registerEventListener(AttendeesAddedEvent::class, ReferenceInvalidationListener::class); $context->registerEventListener(AttendeesRemovedEvent::class, ReferenceInvalidationListener::class); @@ -306,7 +310,6 @@ public function boot(IBootContext $context): void { $dispatcher = $server->get(IEventDispatcher::class); SignalingListener::register($dispatcher); - CollaboratorsListener::register($dispatcher); } public function registerCollaborationResourceProvider(IProviderManager $resourceManager, IEventDispatcher $dispatcher): void { diff --git a/lib/Collaboration/Collaborators/Listener.php b/lib/Collaboration/Collaborators/Listener.php index dbb07d1ffa4..34b2f542a0c 100644 --- a/lib/Collaboration/Collaborators/Listener.php +++ b/lib/Collaboration/Collaborators/Listener.php @@ -2,7 +2,10 @@ declare(strict_types=1); /** + * @copyright Copyright (c) 2016 Joachim Bauch + * * @author Joachim Bauch + * @author Joas Schilling * * @license GNU AGPL version 3 or any later version * @@ -33,14 +36,16 @@ use OCA\Talk\Room; use OCA\Talk\Service\ParticipantService; use OCA\Talk\TalkSession; -use OCP\Collaboration\AutoComplete\AutoCompleteEvent; -use OCP\Collaboration\AutoComplete\IManager; -use OCP\EventDispatcher\IEventDispatcher; +use OCP\Collaboration\AutoComplete\AutoCompleteFilterEvent; +use OCP\EventDispatcher\Event; +use OCP\EventDispatcher\IEventListener; use OCP\IUser; use OCP\IUserManager; -use OCP\Server; -class Listener { +/** + * @template-implements IEventListener + */ +class Listener implements IEventListener { /** @var string[] */ protected array $allowedGroupIds = []; protected string $roomToken; @@ -56,22 +61,20 @@ public function __construct( ) { } - public static function register(IEventDispatcher $dispatcher): void { - $dispatcher->addListener(IManager::class . '::filterResults', [self::class, 'filterNonListableMesssages']); - } - - public static function filterNonListableMesssages(AutoCompleteEvent $event): void { - $listener = Server::get(self::class); + public function handle(Event $event): void { + if (!$event instanceof AutoCompleteFilterEvent) { + return; + } if ($event->getItemType() !== 'call') { return; } - $event->setResults($listener->filterUsersAndGroupsWithoutTalk($event->getResults())); + $event->setResults($this->filterUsersAndGroupsWithoutTalk($event->getResults())); - $event->setResults($listener->filterBridgeBot($event->getResults())); + $event->setResults($this->filterBridgeBot($event->getResults())); if ($event->getItemId() !== 'new') { - $event->setResults($listener->filterExistingParticipants($event->getItemId(), $event->getResults())); + $event->setResults($this->filterExistingParticipants($event->getItemId(), $event->getResults())); } }