summaryrefslogtreecommitdiffstats
path: root/lib
diff options
context:
space:
mode:
authorMorris Jobke <hey@morrisjobke.de>2018-07-20 11:53:12 +0200
committerGitHub <noreply@github.com>2018-07-20 11:53:12 +0200
commit4536635e2a1f287b8e03fd6f49d1132b11887d97 (patch)
treeb8a0ecd3a5cab88c6f78b42e6a83611f25c3c375 /lib
parente0d9c43c958a1473e287b89e140830fb76f91bed (diff)
parent79b540ecc39202154d2374a96a1d255091b39f22 (diff)
downloadnextcloud-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.php36
-rw-r--r--lib/public/Notification/IManager.php12
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();
}