Skip to content
Snippets Groups Projects

add badge count for android

Merged Patrick Kenny requested to merge issue/firebase_php-3449609:android_badge into 7.0.x
@@ -12,6 +12,7 @@ use Drupal\firebase_php\Exception\FirebasePhpInvalidTokenException;
use Drupal\firebase_php\FirebasePhpMessagingApiInterface;
use Kreait\Firebase\Contract\Messaging;
use Kreait\Firebase\Exception\Messaging\InvalidMessage;
use Kreait\Firebase\Messaging\AndroidConfig;
use Kreait\Firebase\Messaging\ApnsConfig;
use Kreait\Firebase\Messaging\CloudMessage;
use Kreait\Firebase\Messaging\MulticastSendReport;
@@ -191,7 +192,7 @@ class FirebasePhpMessagingApi extends FirebasePhpMessagingService implements Fir
}
if (is_int($badge_count) && $badge_count >= 0) {
$message = $message->withApnsConfig(ApnsConfig::new()->withBadge($badge_count));
$this->setBadgeCount($message, $badge_count);
}
return $message;
@@ -218,6 +219,25 @@ class FirebasePhpMessagingApi extends FirebasePhpMessagingService implements Fir
}
}
/**
* Sets the badge count for both iOS and Android.
*
* @param \Kreait\Firebase\Messaging\CloudMessage $message
* The message to set the badge count for.
* @param int $badge_count
* The badge count from 0 to whatever the upper limit is.
*/
private function setBadgeCount(CloudMessage &$message, int $badge_count): void {
$message = $message->withApnsConfig(ApnsConfig::new()->withBadge($badge_count));
if ($badge_count > 0) {
$message = $message->withAndroidConfig(AndroidConfig::fromArray([
'notification' => [
'notification_count' => $badge_count,
],
]));
}
}
/**
* {@inheritdoc}
*/
Loading