diff options
author | Morris Jobke <hey@morrisjobke.de> | 2018-07-20 11:53:12 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2018-07-20 11:53:12 +0200 |
commit | 4536635e2a1f287b8e03fd6f49d1132b11887d97 (patch) | |
tree | b8a0ecd3a5cab88c6f78b42e6a83611f25c3c375 /lib | |
parent | e0d9c43c958a1473e287b89e140830fb76f91bed (diff) | |
parent | 79b540ecc39202154d2374a96a1d255091b39f22 (diff) | |
download | nextcloud-server-4536635e2a1f287b8e03fd6f49d1132b11887d97.tar.gz nextcloud-server-4536635e2a1f287b8e03fd6f49d1132b11887d97.zip |
Merge pull request #10229 from nextcloud/feature/noid/allow-notifiers-to-know-if-we-prepare-push-notifications
Allow notifiers to know if we prepare push notifications
Diffstat (limited to 'lib')
-rw-r--r-- | lib/private/Notification/Manager.php | 36 | ||||
-rw-r--r-- | lib/public/Notification/IManager.php | 12 |
2 files changed, 40 insertions, 8 deletions
diff --git a/lib/private/Notification/Manager.php b/lib/private/Notification/Manager.php index bf0e8abadbb..4c3f7a2453c 100644 --- a/lib/private/Notification/Manager.php +++ b/lib/private/Notification/Manager.php @@ -53,6 +53,9 @@ class Manager implements IManager { /** @var \Closure[] */ protected $notifiersInfoClosures; + /** @var bool */ + protected $preparingPushNotification; + /** * Manager constructor. * @@ -66,6 +69,7 @@ class Manager implements IManager { $this->appsClosures = []; $this->notifiersClosures = []; $this->notifiersInfoClosures = []; + $this->preparingPushNotification = false; } /** @@ -95,7 +99,7 @@ class Manager implements IManager { /** * @return IApp[] */ - protected function getApps() { + protected function getApps(): array { if (!empty($this->apps)) { return $this->apps; } @@ -115,7 +119,7 @@ class Manager implements IManager { /** * @return INotifier[] */ - protected function getNotifiers() { + protected function getNotifiers(): array { if (!empty($this->notifiers)) { return $this->notifiers; } @@ -135,7 +139,7 @@ class Manager implements IManager { /** * @return array[] */ - public function listNotifiers() { + public function listNotifiers(): array { if (!empty($this->notifiersInfo)) { return $this->notifiersInfo; } @@ -143,7 +147,7 @@ class Manager implements IManager { $this->notifiersInfo = []; foreach ($this->notifiersInfoClosures as $closure) { $notifier = $closure(); - if (!is_array($notifier) || count($notifier) !== 2 || !isset($notifier['id']) || !isset($notifier['name'])) { + if (!\is_array($notifier) || \count($notifier) !== 2 || !isset($notifier['id'], $notifier['name'])) { throw new \InvalidArgumentException('The given notifier information is invalid'); } if (isset($this->notifiersInfo[$notifier['id']])) { @@ -159,7 +163,7 @@ class Manager implements IManager { * @return INotification * @since 8.2.0 */ - public function createNotification() { + public function createNotification(): INotification { return new Notification($this->validator); } @@ -167,11 +171,27 @@ class Manager implements IManager { * @return bool * @since 8.2.0 */ - public function hasNotifiers() { + public function hasNotifiers(): bool { return !empty($this->notifiersClosures); } /** + * @param bool $preparingPushNotification + * @since 14.0.0 + */ + public function setPreparingPushNotification($preparingPushNotification) { + $this->preparingPushNotification = $preparingPushNotification; + } + + /** + * @return bool + * @since 14.0.0 + */ + public function isPreparingPushNotification(): bool { + return $this->preparingPushNotification; + } + + /** * @param INotification $notification * @throws \InvalidArgumentException When the notification is not valid * @since 8.2.0 @@ -198,7 +218,7 @@ class Manager implements IManager { * @throws \InvalidArgumentException When the notification was not prepared by a notifier * @since 8.2.0 */ - public function prepare(INotification $notification, $languageCode) { + public function prepare(INotification $notification, $languageCode): INotification { $notifiers = $this->getNotifiers(); foreach ($notifiers as $notifier) { @@ -235,7 +255,7 @@ class Manager implements IManager { * @param INotification $notification * @return int */ - public function getCount(INotification $notification) { + public function getCount(INotification $notification): int { $apps = $this->getApps(); $count = 0; diff --git a/lib/public/Notification/IManager.php b/lib/public/Notification/IManager.php index cbc48142cbb..003e5f1bad1 100644 --- a/lib/public/Notification/IManager.php +++ b/lib/public/Notification/IManager.php @@ -62,4 +62,16 @@ interface IManager extends IApp, INotifier { * @since 9.0.0 */ public function hasNotifiers(); + + /** + * @param bool $preparingPushNotification + * @since 14.0.0 + */ + public function setPreparingPushNotification($preparingPushNotification); + + /** + * @return bool + * @since 14.0.0 + */ + public function isPreparingPushNotification(); } |