Show the time when we were invited on the invite page
Currently, this is something that's missing even in clients like Element (!?!) I will sometimes miss when invites are sent - like when I'm sleeping - and then when I start back up NeoChat I have no idea when they tried to invite me. This can get worse on bigger timescales, like when you go on vacation for a few days.
This commit is contained in:
@@ -124,6 +124,7 @@ NeoChatRoom::NeoChatRoom(Connection *connection, QString roomId, JoinState joinS
|
||||
updatePushNotificationState(u"m.push_rules"_s);
|
||||
|
||||
Q_EMIT canEncryptRoomChanged();
|
||||
Q_EMIT inviteTimestampChanged();
|
||||
},
|
||||
Qt::SingleShotConnection);
|
||||
connect(this, &Room::changed, this, [this] {
|
||||
@@ -1665,6 +1666,15 @@ QString NeoChatRoom::invitingUserId() const
|
||||
return event->senderId();
|
||||
}
|
||||
|
||||
QDateTime NeoChatRoom::inviteTimestamp() const
|
||||
{
|
||||
auto event = currentState().get<RoomMemberEvent>(connection()->userId());
|
||||
if (!event) {
|
||||
return {};
|
||||
}
|
||||
return event->originTimestamp();
|
||||
}
|
||||
|
||||
void NeoChatRoom::setRoomState(const QString &type, const QString &stateKey, const QByteArray &content)
|
||||
{
|
||||
setState(type, stateKey, QJsonDocument::fromJson(content).object());
|
||||
|
||||
@@ -192,6 +192,11 @@ class NeoChatRoom : public Quotient::Room
|
||||
*/
|
||||
Q_PROPERTY(ChatBarCache *threadCache READ threadCache CONSTANT)
|
||||
|
||||
/**
|
||||
* @brief When the current user was invited to the room.
|
||||
*/
|
||||
Q_PROPERTY(QDateTime inviteTimestamp READ inviteTimestamp NOTIFY inviteTimestampChanged)
|
||||
|
||||
public:
|
||||
explicit NeoChatRoom(Quotient::Connection *connection, QString roomId, Quotient::JoinState joinState = {});
|
||||
|
||||
@@ -525,6 +530,11 @@ public:
|
||||
*/
|
||||
Q_INVOKABLE QString invitingUserId() const;
|
||||
|
||||
/**
|
||||
* If we're invited to this room, the timestamp when we were invited in. Undefined in other cases.
|
||||
*/
|
||||
Q_INVOKABLE QDateTime inviteTimestamp() const;
|
||||
|
||||
/**
|
||||
* @brief Return the cached file transfer information for the event.
|
||||
*
|
||||
@@ -621,6 +631,7 @@ Q_SIGNALS:
|
||||
void maxRoomVersionChanged();
|
||||
void extraEventLoaded(const QString &eventId);
|
||||
void extraEventNotFound(const QString &eventId);
|
||||
void inviteTimestampChanged();
|
||||
|
||||
/**
|
||||
* @brief Request a message be shown to the user of the given type.
|
||||
|
||||
Reference in New Issue
Block a user