From 37f40cdd468a2826f6269bacc81ff74d8c606d23 Mon Sep 17 00:00:00 2001 From: Joas Schilling Date: Thu, 30 Sep 2021 09:08:17 +0200 Subject: Fix translated app details Signed-off-by: Joas Schilling --- .../lib/Controller/APIController.php | 34 ++++++++++++++-------- .../lib/Notification/Notifier.php | 6 ++-- 2 files changed, 25 insertions(+), 15 deletions(-) (limited to 'apps/updatenotification/lib') diff --git a/apps/updatenotification/lib/Controller/APIController.php b/apps/updatenotification/lib/Controller/APIController.php index b4c304a6120..9d5d1c2d764 100644 --- a/apps/updatenotification/lib/Controller/APIController.php +++ b/apps/updatenotification/lib/Controller/APIController.php @@ -34,6 +34,8 @@ use OCP\AppFramework\Http\DataResponse; use OCP\AppFramework\OCSController; use OCP\IConfig; use OCP\IRequest; +use OCP\IUserSession; +use OCP\L10N\IFactory; class APIController extends OCSController { @@ -46,23 +48,29 @@ class APIController extends OCSController { /** @var AppFetcher */ protected $appFetcher; - /** - * @param string $appName - * @param IRequest $request - * @param IConfig $config - * @param IAppManager $appManager - * @param AppFetcher $appFetcher - */ - public function __construct($appName, + /** @var IFactory */ + protected $l10nFactory; + + /** @var IUserSession */ + protected $userSession; + + /** @var string */ + protected $language; + + public function __construct(string $appName, IRequest $request, IConfig $config, IAppManager $appManager, - AppFetcher $appFetcher) { + AppFetcher $appFetcher, + IFactory $l10nFactory, + IUserSession $userSession) { parent::__construct($appName, $request); $this->config = $config; $this->appManager = $appManager; $this->appFetcher = $appFetcher; + $this->l10nFactory = $l10nFactory; + $this->userSession = $userSession; } /** @@ -97,7 +105,7 @@ class APIController extends OCSController { $this->appFetcher->setVersion($newVersion, 'future-apps.json', false); // Apps available on the app store for that version - $availableApps = array_map(function (array $app) { + $availableApps = array_map(static function (array $app) { return $app['id']; }, $this->appFetcher->get()); @@ -108,6 +116,8 @@ class APIController extends OCSController { ], Http::STATUS_NOT_FOUND); } + $this->language = $this->l10nFactory->getUserLanguage($this->userSession->getUser()); + $missing = array_diff($installedApps, $availableApps); $missing = array_map([$this, 'getAppDetails'], $missing); sort($missing); @@ -128,8 +138,8 @@ class APIController extends OCSController { * @param string $appId * @return string[] */ - protected function getAppDetails($appId): array { - $app = $this->appManager->getAppInfo($appId); + protected function getAppDetails(string $appId): array { + $app = $this->appManager->getAppInfo($appId, false, $this->language); return [ 'appId' => $appId, 'appName' => $app['name'] ?? $appId, diff --git a/apps/updatenotification/lib/Notification/Notifier.php b/apps/updatenotification/lib/Notification/Notifier.php index 787a43b2db8..bfbcc203480 100644 --- a/apps/updatenotification/lib/Notification/Notifier.php +++ b/apps/updatenotification/lib/Notification/Notifier.php @@ -134,7 +134,7 @@ class Notifier implements INotifier { $notification->setLink($this->url->linkToRouteAbsolute('settings.AdminSettings.index', ['section' => 'overview']) . '#version'); } } else { - $appInfo = $this->getAppInfo($notification->getObjectType()); + $appInfo = $this->getAppInfo($notification->getObjectType(), $languageCode); $appName = ($appInfo === null) ? $notification->getObjectType() : $appInfo['name']; if (isset($this->appVersions[$notification->getObjectType()])) { @@ -194,7 +194,7 @@ class Notifier implements INotifier { return \OC_App::getAppVersions(); } - protected function getAppInfo($appId) { - return \OC_App::getAppInfo($appId); + protected function getAppInfo($appId, $languageCode) { + return \OC_App::getAppInfo($appId, false, $languageCode); } } -- cgit v1.2.3