diff options
author | Joas Schilling <213943+nickvergessen@users.noreply.github.com> | 2022-04-29 18:31:29 +0200 |
---|---|---|
committer | GitHub <noreply@github.com> | 2022-04-29 18:31:29 +0200 |
commit | 0d873357510a1a6d57a6b8fa54b027b2eb8e558b (patch) | |
tree | 90da8c4baebf4e2dacc76b02cfa5cd0e8a529cb6 /lib/private | |
parent | 2d938ab8dcaf0455f0c0fd67cc27b8fae186326f (diff) | |
parent | a75a22f3ac3384ffd52e4642c05fbd3d35f94a3d (diff) | |
download | nextcloud-server-0d873357510a1a6d57a6b8fa54b027b2eb8e558b.tar.gz nextcloud-server-0d873357510a1a6d57a6b8fa54b027b2eb8e558b.zip |
Merge pull request #31703 from nextcloud/techdebt/noid/emojihelper-interface
Emojihelper interface
Diffstat (limited to 'lib/private')
-rw-r--r-- | lib/private/Comments/Manager.php | 9 | ||||
-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, 12 insertions, 26 deletions
diff --git a/lib/private/Comments/Manager.php b/lib/private/Comments/Manager.php index abbe4c66c95..3275658d555 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'); } @@ -1074,7 +1075,7 @@ class Manager implements ICommentsManager { * @since 24.0.0 */ public function supportReactions(): bool { - return $this->dbConn->supports4ByteText(); + return $this->emojiHelper->doesPlatformSupportEmoji(); } /** 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); |