diff options
author | Joas Schilling <coding@schilljs.com> | 2022-03-24 15:57:17 +0100 |
---|---|---|
committer | Vitor Mattos <vitor@php.rio> | 2022-04-28 07:09:44 -0300 |
commit | 902476fa20516ac3abe3c79dd10aad1c8b60910e (patch) | |
tree | 15f277f69f714ecdba91c62356cbd7e1f96b4dee /lib/private | |
parent | 768da60ae2bc11b415b52624121d70316c1e9de6 (diff) | |
download | nextcloud-server-902476fa20516ac3abe3c79dd10aad1c8b60910e.tar.gz nextcloud-server-902476fa20516ac3abe3c79dd10aad1c8b60910e.zip |
Extract the EmojiService from user status and add an OCP interface
Signed-off-by: Joas Schilling <coding@schilljs.com>
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/Comments/Manager.php | 7 | ||||
-rw-r--r-- | lib/private/EmojiHelper.php (renamed from lib/private/Comments/EmojiHelper.php) | 27 | ||||
-rw-r--r-- | lib/private/Server.php | 2 |
3 files changed, 11 insertions, 25 deletions
diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php index 123e4f6988d..31107c1b9fb 100644 --- a/lib/private/Comments/Manager.php +++ b/lib/private/Comments/Manager.php @@ -39,6 +39,7 @@ use OCP\Comments\NotFoundException; use OCP\DB\QueryBuilder\IQueryBuilder; use OCP\IConfig; use OCP\IDBConnection; +use OCP\IEmojiHelper; use OCP\IUser; use OCP\IInitialStateService; use OCP\PreConditionNotMetException; @@ -59,7 +60,7 @@ class Manager implements ICommentsManager { /** @var ITimeFactory */ protected $timeFactory; - /** @var EmojiHelper */ + /** @var IEmojiHelper */ protected $emojiHelper; /** @var IInitialStateService */ @@ -81,7 +82,7 @@ class Manager implements ICommentsManager { LoggerInterface $logger, IConfig $config, ITimeFactory $timeFactory, - EmojiHelper $emojiHelper, + IEmojiHelper $emojiHelper, IInitialStateService $initialStateService) { $this->dbConn = $dbConn; $this->logger = $logger; @@ -153,7 +154,7 @@ class Manager implements ICommentsManager { throw new \UnexpectedValueException('Actor, Object and Verb information must be provided for saving'); } - if ($comment->getVerb() === 'reaction' && !$this->emojiHelper->isValidEmoji($comment->getMessage())) { + if ($comment->getVerb() === 'reaction' && !$this->emojiHelper->isValidSingleEmoji($comment->getMessage())) { // 4 characters: laptop + person + gender + skin color => "🧑🏽💻" is a single emoji from the picker throw new \UnexpectedValueException('Reactions can only be a single emoji'); } diff --git a/lib/private/Comments/EmojiHelper.php b/lib/private/EmojiHelper.php index a75919edbc9..7a4580a1bdb 100644 --- a/lib/private/Comments/EmojiHelper.php +++ b/lib/private/EmojiHelper.php @@ -24,41 +24,24 @@ declare(strict_types=1); * along with this program. If not, see <http://www.gnu.org/licenses/>. * */ -namespace OC\Comments; +namespace OC; use OCP\IDBConnection; +use OCP\IEmojiHelper; -/** - * Copied OCA\UserStatus\Service\EmojiService - * Needs to be unified later - */ -class EmojiHelper { - - /** @var IDBConnection */ - private $db; +class EmojiHelper implements IEmojiHelper { + private IDBConnection $db; - /** - * EmojiService constructor. - * - * @param IDBConnection $db - */ public function __construct(IDBConnection $db) { $this->db = $db; } - /** - * @return bool - */ public function doesPlatformSupportEmoji(): bool { return $this->db->supports4ByteText() && \class_exists(\IntlBreakIterator::class); } - /** - * @param string $emoji - * @return bool - */ - public function isValidEmoji(string $emoji): bool { + public function isValidSingleEmoji(string $emoji): bool { $intlBreakIterator = \IntlBreakIterator::createCharacterInstance(); $intlBreakIterator->setText($emoji); diff --git a/lib/private/Server.php b/lib/private/Server.php index e9d673d3746..5308de21f51 100644 --- a/lib/private/Server.php +++ b/lib/private/Server.php @@ -1431,6 +1431,8 @@ class Server extends ServerContainer implements IServerContainer { $this->registerAlias(IInitialStateService::class, InitialStateService::class); + $this->registerAlias(\OCP\IEmojiHelper::class, \OC\EmojiHelper::class); + $this->registerAlias(\OCP\UserStatus\IManager::class, \OC\UserStatus\Manager::class); $this->registerAlias(IBroker::class, Broker::class); |