namespace OCA\UserStatus\Connector;
use DateTimeImmutable;
-use OCA\UserStatus\Service\StatusService;
use OCP\UserStatus\IUserStatus;
use OCA\UserStatus\Db;
$this->message = $status->getCustomMessage();
$this->icon = $status->getCustomIcon();
- if ($status->getStatus() === StatusService::INVISIBLE) {
- $this->status = StatusService::OFFLINE;
+ if ($status->getStatus() === IUserStatus::INVISIBLE) {
+ $this->status = IUserStatus::OFFLINE;
}
if ($status->getClearAt() !== null) {
$this->clearAt = DateTimeImmutable::createFromFormat('U', (string)$status->getClearAt());
namespace OCA\UserStatus\Controller;
-use OCA\UserStatus\Service\StatusService;
use OCP\AppFramework\Controller;
use OCP\AppFramework\Http;
use OCP\AppFramework\Http\JSONResponse;
use OCP\IRequest;
use OCP\IUserSession;
use OCP\User\Events\UserLiveStatusEvent;
+use OCP\UserStatus\IUserStatus;
class HeartbeatController extends Controller {
* @return JSONResponse
*/
public function heartbeat(string $status): JSONResponse {
- if (!\in_array($status, [StatusService::ONLINE, StatusService::AWAY], true)) {
+ if (!\in_array($status, [IUserStatus::ONLINE, IUserStatus::AWAY], true)) {
return new JSONResponse([], Http::STATUS_BAD_REQUEST);
}
use OCP\AppFramework\OCS\OCSNotFoundException;
use OCP\AppFramework\OCSController;
use OCP\IRequest;
+use OCP\UserStatus\IUserStatus;
class StatusesController extends OCSController {
*/
private function formatStatus(UserStatus $status): array {
$visibleStatus = $status->getStatus();
- if ($visibleStatus === StatusService::INVISIBLE) {
- $visibleStatus = StatusService::OFFLINE;
+ if ($visibleStatus === IUserStatus::INVISIBLE) {
+ $visibleStatus = IUserStatus::OFFLINE;
}
return [
use OCP\IL10N;
use OCP\IUserManager;
use OCP\IUserSession;
+use OCP\UserStatus\IUserStatus;
/**
* Class UserStatusWidget
return [
'userId' => $status->getUserId(),
'displayName' => $displayName,
- 'status' => $status->getStatus() === StatusService::INVISIBLE
- ? StatusService::OFFLINE
+ 'status' => $status->getStatus() === IUserStatus::INVISIBLE
+ ? IUserStatus::OFFLINE
: $status->getStatus(),
'icon' => $status->getCustomIcon(),
'message' => $status->getCustomMessage(),
namespace OCA\UserStatus\Db;
-use OCA\UserStatus\Service\StatusService;
use OCP\AppFramework\Db\QBMapper;
use OCP\DB\QueryBuilder\IQueryBuilder;
use OCP\IDBConnection;
+use OCP\UserStatus\IUserStatus;
/**
* Class UserStatusMapper
->select('*')
->from($this->tableName)
->orderBy('status_timestamp', 'DESC')
- ->where($qb->expr()->notIn('status', $qb->createNamedParameter([StatusService::ONLINE, StatusService::AWAY, StatusService::OFFLINE], IQueryBuilder::PARAM_STR_ARRAY)))
+ ->where($qb->expr()->notIn('status', $qb->createNamedParameter([IUserStatus::ONLINE, IUserStatus::AWAY, IUserStatus::OFFLINE], IQueryBuilder::PARAM_STR_ARRAY)))
->orWhere($qb->expr()->isNotNull('message_id'))
->orWhere($qb->expr()->isNotNull('custom_icon'))
->orWhere($qb->expr()->isNotNull('custom_message'));
public function clearStatusesOlderThan(int $olderThan, int $now): void {
$qb = $this->db->getQueryBuilder();
$qb->update($this->tableName)
- ->set('status', $qb->createNamedParameter(StatusService::OFFLINE))
+ ->set('status', $qb->createNamedParameter(IUserStatus::OFFLINE))
->set('is_user_defined', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL))
->set('status_timestamp', $qb->createNamedParameter($now, IQueryBuilder::PARAM_INT))
->where($qb->expr()->lte('status_timestamp', $qb->createNamedParameter($olderThan, IQueryBuilder::PARAM_INT)))
->andWhere($qb->expr()->orX(
$qb->expr()->eq('is_user_defined', $qb->createNamedParameter(false, IQueryBuilder::PARAM_BOOL), IQueryBuilder::PARAM_BOOL),
- $qb->expr()->eq('status', $qb->createNamedParameter(StatusService::ONLINE))
+ $qb->expr()->eq('status', $qb->createNamedParameter(IUserStatus::ONLINE))
));
$qb->execute();
use OCP\EventDispatcher\IEventListener;
use OCP\EventDispatcher\Event;
use OCP\User\Events\UserLiveStatusEvent;
+use OCP\UserStatus\IUserStatus;
/**
* Class UserDeletedListener
} catch (DoesNotExistException $ex) {
$userStatus = new UserStatus();
$userStatus->setUserId($user->getUID());
- $userStatus->setStatus(StatusService::OFFLINE);
+ $userStatus->setStatus(IUserStatus::OFFLINE);
$userStatus->setStatusTimestamp(0);
$userStatus->setIsUserDefined(false);
}
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\IUserSession;
+use OCP\UserStatus\IUserStatus;
class JSDataService implements \JsonSerializable {
'messageIsPredefined' => false,
'icon' => null,
'clearAt' => null,
- 'status' => StatusService::OFFLINE,
+ 'status' => IUserStatus::OFFLINE,
'statusIsUserDefined' => false,
];
}
use OCA\UserStatus\Exception\StatusMessageTooLongException;
use OCP\AppFramework\Db\DoesNotExistException;
use OCP\AppFramework\Utility\ITimeFactory;
+use OCP\UserStatus\IUserStatus;
/**
* Class StatusService
/** @var EmojiService */
private $emojiService;
- public const ONLINE = 'online';
- public const AWAY = 'away';
- public const DND = 'dnd';
- public const INVISIBLE = 'invisible';
- public const OFFLINE = 'offline';
-
/**
* List of priorities ordered by their priority
*/
public const PRIORITY_ORDERED_STATUSES = [
- self::ONLINE,
- self::AWAY,
- self::DND,
- self::INVISIBLE,
- self::OFFLINE
+ IUserStatus::ONLINE,
+ IUserStatus::AWAY,
+ IUserStatus::DND,
+ IUserStatus::INVISIBLE,
+ IUserStatus::OFFLINE
];
/**
* or UserLiveStatusEvents
*/
public const PERSISTENT_STATUSES = [
- self::AWAY,
- self::DND,
- self::INVISIBLE,
+ IUserStatus::AWAY,
+ IUserStatus::DND,
+ IUserStatus::INVISIBLE,
];
/** @var int */
} catch (DoesNotExistException $ex) {
$userStatus = new UserStatus();
$userStatus->setUserId($userId);
- $userStatus->setStatus(self::OFFLINE);
+ $userStatus->setStatus(IUserStatus::OFFLINE);
$userStatus->setStatusTimestamp(0);
$userStatus->setIsUserDefined(false);
}
} catch (DoesNotExistException $ex) {
$userStatus = new UserStatus();
$userStatus->setUserId($userId);
- $userStatus->setStatus(self::OFFLINE);
+ $userStatus->setStatus(IUserStatus::OFFLINE);
$userStatus->setStatusTimestamp(0);
$userStatus->setIsUserDefined(false);
}
return false;
}
- $userStatus->setStatus(self::OFFLINE);
+ $userStatus->setStatus(IUserStatus::OFFLINE);
$userStatus->setStatusTimestamp(0);
$userStatus->setIsUserDefined(false);
$clearAt = $status->getClearAt();
if ($status->getStatusTimestamp() < $this->timeFactory->getTime() - self::INVALIDATE_STATUS_THRESHOLD
- && (!$status->getIsUserDefined() || $status->getStatus() === self::ONLINE)) {
+ && (!$status->getIsUserDefined() || $status->getStatus() === IUserStatus::ONLINE)) {
$this->cleanStatus($status);
}
if ($clearAt !== null && $clearAt < $this->timeFactory->getTime()) {
* @param UserStatus $status
*/
private function cleanStatus(UserStatus $status): void {
- $status->setStatus(self::OFFLINE);
+ $status->setStatus(IUserStatus::OFFLINE);
$status->setStatusTimestamp($this->timeFactory->getTime());
$status->setIsUserDefined(false);
*/
public const OFFLINE = 'offline';
+ /**
+ * @var string
+ * @since 20.0.0
+ */
+ public const INVISIBLE = 'invisible';
+
/**
* Get the user this status is connected to
*