diff --git a/lib/AppInfo/Application.php b/lib/AppInfo/Application.php index f9146c4ca78..9013dbd1764 100644 --- a/lib/AppInfo/Application.php +++ b/lib/AppInfo/Application.php @@ -94,11 +94,11 @@ use OCA\Talk\Share\RoomShareProvider; use OCA\Talk\Signaling\Listener as SignalingListener; use OCA\Talk\Status\Listener as StatusListener; +use OCP\App\IAppManager; use OCP\AppFramework\App; use OCP\AppFramework\Bootstrap\IBootContext; use OCP\AppFramework\Bootstrap\IBootstrap; use OCP\AppFramework\Bootstrap\IRegistrationContext; -use OCP\AppFramework\IAppContainer; use OCP\Collaboration\Resources\IProviderManager; use OCP\Collaboration\Resources\LoadAdditionalScriptsEvent; use OCP\EventDispatcher\IEventDispatcher; @@ -109,10 +109,14 @@ use OCP\Group\Events\UserAddedEvent; use OCP\Group\Events\UserRemovedEvent; use OCP\IConfig; -use OCP\IServerContainer; +use OCP\INavigationManager; +use OCP\IURLGenerator; use OCP\IUser; +use OCP\IUserSession; +use OCP\L10N\IFactory; use OCP\Security\CSP\AddContentSecurityPolicyEvent; use OCP\Security\FeaturePolicy\AddFeaturePolicyEvent; +use OCP\Server; use OCP\Settings\IManager; use OCP\SpeechToText\Events\TranscriptionFailedEvent; use OCP\SpeechToText\Events\TranscriptionSuccessfulEvent; @@ -202,9 +206,10 @@ public function register(IRegistrationContext $context): void { public function boot(IBootContext $context): void { $server = $context->getServerContainer(); - $this->registerCollaborationResourceProvider($server); - $this->registerClientLinks($server); - $this->registerNavigationLink($server); + $context->injectFn([$this, 'registerCollaborationResourceProvider']); + $context->injectFn([$this, 'registerClientLinks']); + $context->injectFn([$this, 'registerNavigationLink']); + $context->injectFn([$this, 'registerCloudFederationProviderManager']); /** @var IEventDispatcher $dispatcher */ $dispatcher = $server->get(IEventDispatcher::class); @@ -224,46 +229,43 @@ public function boot(IBootContext $context): void { ReferenceInvalidationListener::register($dispatcher); ShareListener::register($dispatcher); - $context->injectFn(\Closure::fromCallable([$this, 'registerCloudFederationProviderManager'])); } - protected function registerCollaborationResourceProvider(IServerContainer $server): void { - /** @var IProviderManager $resourceManager */ - $resourceManager = $server->get(IProviderManager::class); + public function registerCollaborationResourceProvider(IProviderManager $resourceManager, IEventDispatcher $dispatcher): void { $resourceManager->registerResourceProvider(ConversationProvider::class); - $server->get(IEventDispatcher::class)->addListener(LoadAdditionalScriptsEvent::class, static function () { + $dispatcher->addListener(LoadAdditionalScriptsEvent::class, static function (): void { Util::addScript(self::APP_ID, 'talk-collections'); }); } - protected function registerClientLinks(IServerContainer $server): void { - if ($server->getAppManager()->isEnabledForUser('firstrunwizard')) { - /** @var IManager $settingManager */ - $settingManager = $server->getSettingsManager(); + public function registerClientLinks(IAppManager $appManager, IManager $settingManager): void { + if ($appManager->isEnabledForUser('firstrunwizard')) { $settingManager->registerSetting('personal', Personal::class); } } - protected function registerNavigationLink(IServerContainer $server): void { - $server->getNavigationManager()->add(static function () use ($server) { - /** @var Config $config */ - $config = $server->get(Config::class); - $user = $server->getUserSession()->getUser(); + public function registerNavigationLink(INavigationManager $navigationManager): void { + $navigationManager->add(static function () { + $config = Server::get(Config::class); + $userSession = Server::get(IUserSession::class); + $urlGenerator = Server::get(IURLGenerator::class); + $l = Server::get(IFactory::class)->get(self::APP_ID); + $user = $userSession->getUser(); return [ 'id' => self::APP_ID, - 'name' => $server->getL10N(self::APP_ID)->t('Talk'), - 'href' => $server->getURLGenerator()->linkToRouteAbsolute('spreed.Page.index'), - 'icon' => $server->getURLGenerator()->imagePath(self::APP_ID, 'app.svg'), + 'name' => $l->t('Talk'), + 'href' => $urlGenerator->linkToRouteAbsolute('spreed.Page.index'), + 'icon' => $urlGenerator->imagePath(self::APP_ID, 'app.svg'), 'order' => 3, 'type' => $user instanceof IUser && !$config->isDisabledForUser($user) ? 'link' : 'hidden', ]; }); } - protected function registerCloudFederationProviderManager( + public function registerCloudFederationProviderManager( IConfig $config, ICloudFederationProviderManager $manager, - IAppContainer $appContainer): void { + ): void { if ($config->getAppValue('spreed', 'federation_enabled', 'no') !== 'yes') { return; } @@ -271,9 +273,7 @@ protected function registerCloudFederationProviderManager( $manager->addCloudFederationProvider( 'talk-room', 'Talk Federation', - static function () use ($appContainer): ICloudFederationProvider { - return $appContainer->get(CloudFederationProviderTalk::class); - } + static fn (): ICloudFederationProvider => Server::get(CloudFederationProviderTalk::class) ); } } diff --git a/tests/psalm-baseline.xml b/tests/psalm-baseline.xml index 05576b9973c..93fbefdecb4 100644 --- a/tests/psalm-baseline.xml +++ b/tests/psalm-baseline.xml @@ -5,9 +5,6 @@ BeforeTemplateRenderedEvent BeforeTemplateRenderedEvent - - getSettingsManager -