diff options
Diffstat (limited to 'lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php')
-rw-r--r-- | lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php | 32 |
1 files changed, 32 insertions, 0 deletions
diff --git a/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php new file mode 100644 index 00000000000..266125f5ed5 --- /dev/null +++ b/lib/private/Contacts/ContactsMenu/Providers/EMailProvider.php @@ -0,0 +1,32 @@ +<?php + +/** + * SPDX-FileCopyrightText: 2017 Nextcloud GmbH and Nextcloud contributors + * SPDX-License-Identifier: AGPL-3.0-or-later + */ +namespace OC\Contacts\ContactsMenu\Providers; + +use OCP\Contacts\ContactsMenu\IActionFactory; +use OCP\Contacts\ContactsMenu\IEntry; +use OCP\Contacts\ContactsMenu\IProvider; +use OCP\IURLGenerator; + +class EMailProvider implements IProvider { + public function __construct( + private IActionFactory $actionFactory, + private IURLGenerator $urlGenerator, + ) { + } + + public function process(IEntry $entry): void { + $iconUrl = $this->urlGenerator->getAbsoluteURL($this->urlGenerator->imagePath('core', 'actions/mail.svg')); + foreach ($entry->getEMailAddresses() as $address) { + if (empty($address)) { + // Skip + continue; + } + $action = $this->actionFactory->newEMailAction($iconUrl, $address, $address, 'email'); + $entry->addAction($action); + } + } +} |