diff options
author | Joas Schilling <coding@schilljs.com> | 2019-04-30 14:29:30 +0200 |
---|---|---|
committer | Joas Schilling <coding@schilljs.com> | 2019-07-15 15:15:00 +0200 |
commit | 6d71e471e166c30c0b9abe05d36240b9f1556d8e (patch) | |
tree | 561fe5a415ddfc239f9b6e2549df55bfa6a7e51b /apps/updatenotification/lib | |
parent | 64f67818bcc6cc61cc49b1a7c032f3db85b73c91 (diff) | |
download | nextcloud-server-6d71e471e166c30c0b9abe05d36240b9f1556d8e.tar.gz nextcloud-server-6d71e471e166c30c0b9abe05d36240b9f1556d8e.zip |
Update shipped implementations of the INotifier
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'apps/updatenotification/lib')
-rw-r--r-- | apps/updatenotification/lib/AppInfo/Application.php | 10 | ||||
-rw-r--r-- | apps/updatenotification/lib/Notification/Notifier.php | 29 |
2 files changed, 26 insertions, 13 deletions
diff --git a/apps/updatenotification/lib/AppInfo/Application.php b/apps/updatenotification/lib/AppInfo/Application.php index 14512bae838..91b9020d82e 100644 --- a/apps/updatenotification/lib/AppInfo/Application.php +++ b/apps/updatenotification/lib/AppInfo/Application.php @@ -71,14 +71,6 @@ class Application extends App { public function registerNotifier() { $notificationsManager = $this->getContainer()->getServer()->getNotificationManager(); - $notificationsManager->registerNotifier(function() { - return $this->getContainer()->query(Notifier::class); - }, function() { - $l = $this->getContainer()->getServer()->getL10N('updatenotification'); - return [ - 'id' => 'updatenotification', - 'name' => $l->t('Update notifications'), - ]; - }); + $notificationsManager->registerNotifier(Notifier::class); } } diff --git a/apps/updatenotification/lib/Notification/Notifier.php b/apps/updatenotification/lib/Notification/Notifier.php index 4e3a30f225e..44fe91c63d5 100644 --- a/apps/updatenotification/lib/Notification/Notifier.php +++ b/apps/updatenotification/lib/Notification/Notifier.php @@ -31,6 +31,7 @@ use OCP\IURLGenerator; use OCP\IUser; use OCP\IUserSession; use OCP\L10N\IFactory; +use OCP\Notification\AlreadyProcessedException; use OCP\Notification\IManager; use OCP\Notification\INotification; use OCP\Notification\INotifier; @@ -80,13 +81,34 @@ class Notifier implements INotifier { } /** + * Identifier of the notifier, only use [a-z0-9_] + * + * @return string + * @since 17.0.0 + */ + public function getID(): string { + return 'updatenotification'; + } + + /** + * Human readable name describing the notifier + * + * @return string + * @since 17.0.0 + */ + public function getName(): string { + return $this->l10NFactory->get('updatenotification')->t('Update notifications'); + } + + /** * @param INotification $notification * @param string $languageCode The code of the language that should be used to prepare the notification * @return INotification * @throws \InvalidArgumentException When the notification was not prepared by a notifier + * @throws AlreadyProcessedException When the notification is not needed anymore and should be deleted * @since 9.0.0 */ - public function prepare(INotification $notification, $languageCode): INotification { + public function prepare(INotification $notification, string $languageCode): INotification { if ($notification->getApp() !== 'updatenotification') { throw new \InvalidArgumentException('Unknown app id'); } @@ -142,12 +164,11 @@ class Notifier implements INotifier { * * @param INotification $notification * @param string $installedVersion - * @throws \InvalidArgumentException When the update is already installed + * @throws AlreadyProcessedException When the update is already installed */ protected function updateAlreadyInstalledCheck(INotification $notification, $installedVersion) { if (version_compare($notification->getObjectId(), $installedVersion, '<=')) { - $this->notificationManager->markProcessed($notification); - throw new \InvalidArgumentException('Update already installed'); + throw new AlreadyProcessedException(); } } |