summaryrefslogtreecommitdiffstats
path: root/lib/private
diff options
context:
space:
mode:
authorJoas Schilling <coding@schilljs.com>2022-03-24 15:57:17 +0100
committerVitor Mattos <vitor@php.rio>2022-04-28 07:09:44 -0300
commit902476fa20516ac3abe3c79dd10aad1c8b60910e (patch)
tree15f277f69f714ecdba91c62356cbd7e1f96b4dee /lib/private
parent768da60ae2bc11b415b52624121d70316c1e9de6 (diff)
downloadnextcloud-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.php7
-rw-r--r--lib/private/EmojiHelper.php (renamed from lib/private/Comments/EmojiHelper.php)27
-rw-r--r--lib/private/Server.php2
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);