Implement delete/add chat members properly, fixes #131
This commit is contained in:
parent
65c3871b4a
commit
775a31cecb
23 changed files with 471 additions and 39 deletions
|
@ -37,7 +37,7 @@ Row {
|
||||||
onInReplyToMessageChanged: {
|
onInReplyToMessageChanged: {
|
||||||
if (inReplyToMessage) {
|
if (inReplyToMessage) {
|
||||||
inReplyToUserText.text = (inReplyToMessage.sender["@type"] === "messageSenderChat" ? page.chatInformation.title : (inReplyToRow.inReplyToMessage.sender.user_id !== inReplyToRow.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(inReplyToRow.inReplyToMessage.sender.user_id)), inReplyToUserText.font.pixelSize) : qsTr("You"));
|
inReplyToUserText.text = (inReplyToMessage.sender["@type"] === "messageSenderChat" ? page.chatInformation.title : (inReplyToRow.inReplyToMessage.sender.user_id !== inReplyToRow.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(inReplyToRow.inReplyToMessage.sender.user_id)), inReplyToUserText.font.pixelSize) : qsTr("You"));
|
||||||
inReplyToMessageText.text = Emoji.emojify(Functions.getMessageText(inReplyToRow.inReplyToMessage, true, inReplyToRow.inReplyToMessage.sender.user_id === inReplyToRow.myUserId, false), inReplyToMessageText.font.pixelSize);
|
inReplyToMessageText.text = Emoji.emojify(Functions.getMessageText(inReplyToRow.inReplyToMessage, true, inReplyToRow.myUserId, false), inReplyToMessageText.font.pixelSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -106,7 +106,7 @@ ListItem {
|
||||||
}
|
}
|
||||||
MenuItem {
|
MenuItem {
|
||||||
onClicked: {
|
onClicked: {
|
||||||
Clipboard.text = Functions.getMessageText(myMessage, true, false, true);
|
Clipboard.text = Functions.getMessageText(myMessage, true, userInformation.id, true);
|
||||||
}
|
}
|
||||||
text: qsTr("Copy Message to Clipboard")
|
text: qsTr("Copy Message to Clipboard")
|
||||||
}
|
}
|
||||||
|
@ -163,7 +163,7 @@ ListItem {
|
||||||
if (index === modelIndex) {
|
if (index === modelIndex) {
|
||||||
Debug.log("[ChatModel] This message was updated, index ", index, ", updating content...");
|
Debug.log("[ChatModel] This message was updated, index ", index, ", updating content...");
|
||||||
messageDateText.text = getMessageStatusText(myMessage, index, chatView.lastReadSentIndex, messageDateText.useElapsed);
|
messageDateText.text = getMessageStatusText(myMessage, index, chatView.lastReadSentIndex, messageDateText.useElapsed);
|
||||||
messageText.text = Emoji.emojify(Functions.getMessageText(myMessage, false, messageListItem.isOwnMessage. false), messageText.font.pixelSize);
|
messageText.text = Emoji.emojify(Functions.getMessageText(myMessage, false, page.myUserId, false), messageText.font.pixelSize);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -392,7 +392,7 @@ ListItem {
|
||||||
Text {
|
Text {
|
||||||
id: messageText
|
id: messageText
|
||||||
width: parent.width
|
width: parent.width
|
||||||
text: Emoji.emojify(Functions.getMessageText(myMessage, false, messageListItem.isOwnMessage, false), font.pixelSize)
|
text: Emoji.emojify(Functions.getMessageText(myMessage, false, page.myUserId, false), font.pixelSize)
|
||||||
font.pixelSize: Theme.fontSizeSmall
|
font.pixelSize: Theme.fontSizeSmall
|
||||||
color: messageListItem.textColor
|
color: messageListItem.textColor
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
|
|
@ -43,7 +43,7 @@ Item {
|
||||||
color: Theme.highlightColor
|
color: Theme.highlightColor
|
||||||
horizontalAlignment: Text.AlignHCenter
|
horizontalAlignment: Text.AlignHCenter
|
||||||
font.pixelSize: Theme.fontSizeExtraSmall
|
font.pixelSize: Theme.fontSizeExtraSmall
|
||||||
text: "<a style=\"text-decoration: none; font-weight: bold; color:"+Theme.primaryColor+"\" href=\"userId://" + messageListItem.userInformation.id + "\">" + (!messageListItem.isOwnMessage ? Emoji.emojify(Functions.getUserName(messageListItem.userInformation), font.pixelSize) : qsTr("You")) + "</a> " + Emoji.emojify(Functions.getMessageText(messageListItem.myMessage, false, messageListItem.isOwnMessage, false), font.pixelSize)
|
text: "<a style=\"text-decoration: none; font-weight: bold; color:"+Theme.primaryColor+"\" href=\"userId://" + messageListItem.userInformation.id + "\">" + (!messageListItem.isOwnMessage ? Emoji.emojify(Functions.getUserName(messageListItem.userInformation), font.pixelSize) : qsTr("You")) + "</a> " + Emoji.emojify(Functions.getMessageText(messageListItem.myMessage, false, chatPage.myUserId, false), font.pixelSize)
|
||||||
textFormat: Text.RichText
|
textFormat: Text.RichText
|
||||||
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
wrapMode: Text.WrapAtWordBoundaryOrAnywhere
|
||||||
onLinkActivated: {
|
onLinkActivated: {
|
||||||
|
|
|
@ -139,7 +139,7 @@ Flickable {
|
||||||
Text {
|
Text {
|
||||||
id: overlayMessageText
|
id: overlayMessageText
|
||||||
width: parent.width
|
width: parent.width
|
||||||
text: Emoji.emojify(Functions.getMessageText(overlayMessage, false, messageOverlayFlickable.isOwnMessage, false), font.pixelSize)
|
text: Emoji.emojify(Functions.getMessageText(overlayMessage, false, tdLibWrapper.getUserInformation().id, false), font.pixelSize)
|
||||||
font.pixelSize: Theme.fontSizeMedium
|
font.pixelSize: Theme.fontSizeMedium
|
||||||
color: Theme.primaryColor
|
color: Theme.primaryColor
|
||||||
wrapMode: Text.Wrap
|
wrapMode: Text.Wrap
|
||||||
|
|
|
@ -35,7 +35,7 @@ Item {
|
||||||
Debug.log("[ChatPage] Activating pinned message");
|
Debug.log("[ChatPage] Activating pinned message");
|
||||||
var messageUserText = (pinnedMessage.sender.user_id !== chatPage.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(pinnedMessage.sender.user_id)), pinnedMessageUserText.font.pixelSize) : qsTr("You");
|
var messageUserText = (pinnedMessage.sender.user_id !== chatPage.myUserId) ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(pinnedMessage.sender.user_id)), pinnedMessageUserText.font.pixelSize) : qsTr("You");
|
||||||
pinnedMessageUserText.text = (messageUserText === "" ? qsTr("Pinned Message") : messageUserText );
|
pinnedMessageUserText.text = (messageUserText === "" ? qsTr("Pinned Message") : messageUserText );
|
||||||
pinnedMessageText.text = Emoji.emojify(Functions.getMessageText(pinnedMessage, true, pinnedMessage.sender.user_id === chatPage.myUserId, false), pinnedMessageText.font.pixelSize);
|
pinnedMessageText.text = Emoji.emojify(Functions.getMessageText(pinnedMessage, true, chatPage.myUserId, false), pinnedMessageText.font.pixelSize);
|
||||||
pinnedMessageItem.visible = true;
|
pinnedMessageItem.visible = true;
|
||||||
} else {
|
} else {
|
||||||
pinnedMessageItem.visible = false;
|
pinnedMessageItem.visible = false;
|
||||||
|
|
|
@ -32,7 +32,10 @@ function getUserName(userInformation) {
|
||||||
return ((userInformation.first_name || "") + " " + (userInformation.last_name || "")).trim();
|
return ((userInformation.first_name || "") + " " + (userInformation.last_name || "")).trim();
|
||||||
}
|
}
|
||||||
|
|
||||||
function getMessageText(message, simple, myself, ignoreEntities) {
|
function getMessageText(message, simple, currentUserId, ignoreEntities) {
|
||||||
|
|
||||||
|
var myself = ( message.sender['@type'] === "messageSenderUser" && message.sender.user_id.toString() === currentUserId.toString() );
|
||||||
|
|
||||||
switch(message.content['@type']) {
|
switch(message.content['@type']) {
|
||||||
case 'messageText':
|
case 'messageText':
|
||||||
if (simple) {
|
if (simple) {
|
||||||
|
@ -89,9 +92,24 @@ function getMessageText(message, simple, myself, ignoreEntities) {
|
||||||
case 'messageChatJoinByLink':
|
case 'messageChatJoinByLink':
|
||||||
return myself ? qsTr("joined this chat", "myself") : qsTr("joined this chat");
|
return myself ? qsTr("joined this chat", "myself") : qsTr("joined this chat");
|
||||||
case 'messageChatAddMembers':
|
case 'messageChatAddMembers':
|
||||||
return myself ? qsTr("were added to this chat", "myself") : qsTr("was added to this chat");
|
if (message.sender['@type'] === "messageSenderUser" && message.sender.user_id === message.content.member_user_ids[0]) {
|
||||||
|
return myself ? qsTr("were added to this chat", "myself") : qsTr("was added to this chat");
|
||||||
|
} else {
|
||||||
|
var addedUserNames = "";
|
||||||
|
for (var i = 0; i < message.content.member_user_ids.length; i++) {
|
||||||
|
if (i > 0) {
|
||||||
|
addedUserNames += ", ";
|
||||||
|
}
|
||||||
|
addedUserNames += getUserName(tdLibWrapper.getUserInformation(message.content.member_user_ids[i]));
|
||||||
|
}
|
||||||
|
return myself ? qsTr("have added %1 to the chat", "myself").arg(addedUserNames) : qsTr("has added %1 to the chat").arg(addedUserNames);
|
||||||
|
}
|
||||||
case 'messageChatDeleteMember':
|
case 'messageChatDeleteMember':
|
||||||
return myself ? qsTr("left this chat", "myself") : qsTr("left this chat");
|
if (message.sender['@type'] === "messageSenderUser" && message.sender.user_id === message.content.user_id) {
|
||||||
|
return myself ? qsTr("left this chat", "myself") : qsTr("left this chat");
|
||||||
|
} else {
|
||||||
|
return myself ? qsTr("have removed %1 from the chat", "myself").arg(getUserName(tdLibWrapper.getUserInformation(message.content.user_id))) : qsTr("has removed %1 from the chat").arg(getUserName(tdLibWrapper.getUserInformation(message.content.user_id)));
|
||||||
|
}
|
||||||
case 'messageChatChangeTitle':
|
case 'messageChatChangeTitle':
|
||||||
return myself ? qsTr("changed the chat title to %1", "myself").arg(message.content.title) : qsTr("changed the chat title to %1").arg(message.content.title);
|
return myself ? qsTr("changed the chat title to %1", "myself").arg(message.content.title) : qsTr("changed the chat title to %1").arg(message.content.title);
|
||||||
case 'messagePoll':
|
case 'messagePoll':
|
||||||
|
@ -415,7 +433,7 @@ function getMessagesArrayText(messages) {
|
||||||
lines.push(senderName);
|
lines.push(senderName);
|
||||||
}
|
}
|
||||||
lastSenderName = senderName;
|
lastSenderName = senderName;
|
||||||
lines.push(getMessageText(messages[i], true, false));
|
lines.push(getMessageText(messages[i], true, tdLibWrapper.getUserInformation().id, false));
|
||||||
lines.push("");
|
lines.push("");
|
||||||
}
|
}
|
||||||
return lines.join("\n");
|
return lines.join("\n");
|
||||||
|
|
|
@ -935,7 +935,7 @@ Page {
|
||||||
}
|
}
|
||||||
onEditMessage: {
|
onEditMessage: {
|
||||||
newMessageColumn.editMessageId = messageId
|
newMessageColumn.editMessageId = messageId
|
||||||
newMessageTextField.text = Functions.getMessageText(myMessage, false, false, true)
|
newMessageTextField.text = Functions.getMessageText(myMessage, false, chatPage.myUserId, true)
|
||||||
newMessageTextField.focus = true
|
newMessageTextField.focus = true
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -72,7 +72,7 @@ public:
|
||||||
RoleIsChannel
|
RoleIsChannel
|
||||||
};
|
};
|
||||||
|
|
||||||
ChatData(const QVariantMap &data, const QVariantMap &userInformation);
|
ChatData(TDLibWrapper *tdLibWrapper, const QVariantMap &data);
|
||||||
|
|
||||||
int compareTo(const ChatData *chat) const;
|
int compareTo(const ChatData *chat) const;
|
||||||
bool setOrder(const QString &order);
|
bool setOrder(const QString &order);
|
||||||
|
@ -94,6 +94,7 @@ public:
|
||||||
QVector<int> updateLastMessage(const QVariantMap &message);
|
QVector<int> updateLastMessage(const QVariantMap &message);
|
||||||
QVector<int> updateGroup(const TDLibWrapper::Group *group);
|
QVector<int> updateGroup(const TDLibWrapper::Group *group);
|
||||||
QVector<int> updateSecretChat(const QVariantMap &secretChatDetails);
|
QVector<int> updateSecretChat(const QVariantMap &secretChatDetails);
|
||||||
|
TDLibWrapper *tdLibWrapper;
|
||||||
|
|
||||||
public:
|
public:
|
||||||
QVariantMap chatData;
|
QVariantMap chatData;
|
||||||
|
@ -107,7 +108,8 @@ public:
|
||||||
QVariantMap userInformation;
|
QVariantMap userInformation;
|
||||||
};
|
};
|
||||||
|
|
||||||
ChatListModel::ChatData::ChatData(const QVariantMap &data, const QVariantMap &userInfo) :
|
ChatListModel::ChatData::ChatData(TDLibWrapper *tdLibWrapper, const QVariantMap &data) :
|
||||||
|
tdLibWrapper(tdLibWrapper),
|
||||||
chatData(data),
|
chatData(data),
|
||||||
chatId(data.value(ID).toLongLong()),
|
chatId(data.value(ID).toLongLong()),
|
||||||
order(data.value(ORDER).toLongLong()),
|
order(data.value(ORDER).toLongLong()),
|
||||||
|
@ -115,7 +117,7 @@ ChatListModel::ChatData::ChatData(const QVariantMap &data, const QVariantMap &us
|
||||||
verified(false),
|
verified(false),
|
||||||
memberStatus(TDLibWrapper::ChatMemberStatusUnknown),
|
memberStatus(TDLibWrapper::ChatMemberStatusUnknown),
|
||||||
secretChatState(TDLibWrapper::SecretChatStateUnknown),
|
secretChatState(TDLibWrapper::SecretChatStateUnknown),
|
||||||
userInformation(userInfo)
|
userInformation(tdLibWrapper->getUserInformation())
|
||||||
{
|
{
|
||||||
const QVariantMap type(data.value(TYPE).toMap());
|
const QVariantMap type(data.value(TYPE).toMap());
|
||||||
switch (chatType = TDLibWrapper::chatTypeFromString(type.value(_TYPE).toString())) {
|
switch (chatType = TDLibWrapper::chatTypeFromString(type.value(_TYPE).toString())) {
|
||||||
|
@ -199,7 +201,7 @@ qlonglong ChatListModel::ChatData::senderMessageDate() const
|
||||||
|
|
||||||
QString ChatListModel::ChatData::senderMessageText() const
|
QString ChatListModel::ChatData::senderMessageText() const
|
||||||
{
|
{
|
||||||
return FernschreiberUtils::getMessageShortText(lastMessage(CONTENT).toMap(), ( isChannel() ? false : this->userInformation.value(ID).toLongLong() == senderUserId() ) );
|
return FernschreiberUtils::getMessageShortText(tdLibWrapper, lastMessage(CONTENT).toMap(), isChannel(), this->userInformation.value(ID).toLongLong(), lastMessage(SENDER).toMap() );
|
||||||
}
|
}
|
||||||
|
|
||||||
QString ChatListModel::ChatData::senderMessageStatus() const
|
QString ChatListModel::ChatData::senderMessageStatus() const
|
||||||
|
@ -592,7 +594,7 @@ void ChatListModel::setShowAllChats(bool showAll)
|
||||||
|
|
||||||
void ChatListModel::handleChatDiscovered(const QString &, const QVariantMap &chatToBeAdded)
|
void ChatListModel::handleChatDiscovered(const QString &, const QVariantMap &chatToBeAdded)
|
||||||
{
|
{
|
||||||
ChatData *chat = new ChatData(chatToBeAdded, tdLibWrapper->getUserInformation());
|
ChatData *chat = new ChatData(tdLibWrapper, chatToBeAdded);
|
||||||
|
|
||||||
const TDLibWrapper::Group *group = tdLibWrapper->getGroup(chat->groupId);
|
const TDLibWrapper::Group *group = tdLibWrapper->getGroup(chat->groupId);
|
||||||
if (group) {
|
if (group) {
|
||||||
|
|
|
@ -8,12 +8,14 @@ FernschreiberUtils::FernschreiberUtils(QObject *parent) : QObject(parent)
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
QString FernschreiberUtils::getMessageShortText(const QVariantMap &messageContent, const bool &myself)
|
QString FernschreiberUtils::getMessageShortText(TDLibWrapper *tdLibWrapper, const QVariantMap &messageContent, const bool isChannel, const qlonglong currentUserId, const QVariantMap &messageSender)
|
||||||
{
|
{
|
||||||
if (messageContent.isEmpty()) {
|
if (messageContent.isEmpty()) {
|
||||||
return QString();
|
return QString();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
const bool myself = !isChannel && (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == currentUserId);
|
||||||
|
|
||||||
QString contentType = messageContent.value("@type").toString();
|
QString contentType = messageContent.value("@type").toString();
|
||||||
|
|
||||||
if (contentType == "messageText") {
|
if (contentType == "messageText") {
|
||||||
|
@ -53,10 +55,26 @@ QString FernschreiberUtils::getMessageShortText(const QVariantMap &messageConten
|
||||||
return myself ? tr("joined this chat", "myself") : tr("joined this chat");
|
return myself ? tr("joined this chat", "myself") : tr("joined this chat");
|
||||||
}
|
}
|
||||||
if (contentType == "messageChatAddMembers") {
|
if (contentType == "messageChatAddMembers") {
|
||||||
return myself ? tr("were added to this chat", "myself") : tr("was added to this chat");
|
if (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == messageContent.value("member_user_ids").toList().at(0).toLongLong()) {
|
||||||
|
return myself ? tr("were added to this chat", "myself") : tr("was added to this chat");
|
||||||
|
} else {
|
||||||
|
QVariantList memberUserIds = messageContent.value("member_user_ids").toList();
|
||||||
|
QString addedUserNames;
|
||||||
|
for (int i = 0; i < memberUserIds.size(); i++) {
|
||||||
|
if (i > 0) {
|
||||||
|
addedUserNames += ", ";
|
||||||
|
}
|
||||||
|
addedUserNames += getUserName(tdLibWrapper->getUserInformation(memberUserIds.at(i).toString()));
|
||||||
|
}
|
||||||
|
return myself ? tr("have added %1 to the chat", "myself").arg(addedUserNames) : tr("has added %1 to the chat").arg(addedUserNames);
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (contentType == "messageChatDeleteMember") {
|
if (contentType == "messageChatDeleteMember") {
|
||||||
return myself ? tr("left this chat", "myself") : tr("left this chat");
|
if (messageSender.value("@type").toString() == "messageSenderUser" && messageSender.value("user_id").toLongLong() == messageContent.value("user_id").toLongLong()) {
|
||||||
|
return myself ? tr("left this chat", "myself") : tr("left this chat");
|
||||||
|
} else {
|
||||||
|
return myself ? tr("have removed %1 from the chat", "myself").arg(getUserName(tdLibWrapper->getUserInformation(messageContent.value("user_id").toString()))) : tr("has removed %1 from the chat").arg(getUserName(tdLibWrapper->getUserInformation(messageContent.value("user_id").toString())));
|
||||||
|
}
|
||||||
}
|
}
|
||||||
if (contentType == "messageChatChangeTitle") {
|
if (contentType == "messageChatChangeTitle") {
|
||||||
return myself ? tr("changed the chat title", "myself") : tr("changed the chat title");
|
return myself ? tr("changed the chat title", "myself") : tr("changed the chat title");
|
||||||
|
@ -103,3 +121,10 @@ QString FernschreiberUtils::getMessageShortText(const QVariantMap &messageConten
|
||||||
|
|
||||||
return myself ? tr("sent an unsupported message: %1", "myself").arg(contentType.mid(7)) : tr("sent an unsupported message: %1").arg(contentType.mid(7));
|
return myself ? tr("sent an unsupported message: %1", "myself").arg(contentType.mid(7)) : tr("sent an unsupported message: %1").arg(contentType.mid(7));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
QString FernschreiberUtils::getUserName(const QVariantMap &userInformation)
|
||||||
|
{
|
||||||
|
const QString firstName = userInformation.value("first_name").toString();
|
||||||
|
const QString lastName = userInformation.value("last_name").toString();
|
||||||
|
return QString(firstName + " " + lastName).trimmed();
|
||||||
|
}
|
||||||
|
|
|
@ -2,6 +2,7 @@
|
||||||
#define FERNSCHREIBERUTILS_H
|
#define FERNSCHREIBERUTILS_H
|
||||||
|
|
||||||
#include <QObject>
|
#include <QObject>
|
||||||
|
#include "tdlibwrapper.h"
|
||||||
|
|
||||||
class FernschreiberUtils : public QObject
|
class FernschreiberUtils : public QObject
|
||||||
{
|
{
|
||||||
|
@ -9,7 +10,8 @@ class FernschreiberUtils : public QObject
|
||||||
public:
|
public:
|
||||||
explicit FernschreiberUtils(QObject *parent = nullptr);
|
explicit FernschreiberUtils(QObject *parent = nullptr);
|
||||||
|
|
||||||
static QString getMessageShortText(const QVariantMap &messageContent, const bool &myself);
|
static QString getMessageShortText(TDLibWrapper *tdLibWrapper, const QVariantMap &messageContent, const bool isChannel, const qlonglong currentUserId, const QVariantMap &messageSender);
|
||||||
|
static QString getUserName(const QVariantMap &userInformation);
|
||||||
|
|
||||||
signals:
|
signals:
|
||||||
|
|
||||||
|
|
|
@ -332,25 +332,22 @@ void NotificationManager::publishNotification(const NotificationGroup *notificat
|
||||||
}
|
}
|
||||||
|
|
||||||
QString notificationBody;
|
QString notificationBody;
|
||||||
|
const QVariantMap senderInformation = messageMap.value(SENDER).toMap();
|
||||||
if (notificationGroup->totalCount == 1 && !messageMap.isEmpty()) {
|
if (notificationGroup->totalCount == 1 && !messageMap.isEmpty()) {
|
||||||
LOG("Group" << notificationGroup->notificationGroupId << "has 1 notification");
|
LOG("Group" << notificationGroup->notificationGroupId << "has 1 notification");
|
||||||
if (chatInformation && (chatInformation->type == TDLibWrapper::ChatTypeBasicGroup ||
|
if (chatInformation && (chatInformation->type == TDLibWrapper::ChatTypeBasicGroup ||
|
||||||
(chatInformation->type == TDLibWrapper::ChatTypeSupergroup && !chatInformation->isChannel))) {
|
(chatInformation->type == TDLibWrapper::ChatTypeSupergroup && !chatInformation->isChannel))) {
|
||||||
// Add author
|
// Add author
|
||||||
const QVariantMap senderInformation = messageMap.value(SENDER).toMap();
|
|
||||||
QString fullName;
|
QString fullName;
|
||||||
if (senderInformation.value(_TYPE).toString() == "messageSenderChat") {
|
if (senderInformation.value(_TYPE).toString() == "messageSenderChat") {
|
||||||
fullName = tdLibWrapper->getChat(senderInformation.value(CHAT_ID).toString()).value(TITLE).toString();
|
fullName = tdLibWrapper->getChat(senderInformation.value(CHAT_ID).toString()).value(TITLE).toString();
|
||||||
} else {
|
} else {
|
||||||
const QVariantMap authorInformation = tdLibWrapper->getUserInformation(senderInformation.value(USER_ID).toString());
|
fullName = FernschreiberUtils::getUserName(tdLibWrapper->getUserInformation(senderInformation.value(USER_ID).toString()));
|
||||||
const QString firstName = authorInformation.value(FIRST_NAME).toString();
|
|
||||||
const QString lastName = authorInformation.value(LAST_NAME).toString();
|
|
||||||
fullName = firstName + " " + lastName;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
notificationBody = notificationBody + fullName.trimmed() + ": ";
|
notificationBody = notificationBody + fullName.trimmed() + ": ";
|
||||||
}
|
}
|
||||||
notificationBody += getNotificationText(messageMap.value(CONTENT).toMap());
|
notificationBody += FernschreiberUtils::getMessageShortText(tdLibWrapper, messageMap.value(CONTENT).toMap(), (chatInformation ? chatInformation->isChannel : false), tdLibWrapper->getUserInformation().value(ID).toLongLong(), senderInformation );
|
||||||
nemoNotification->setBody(notificationBody);
|
nemoNotification->setBody(notificationBody);
|
||||||
} else {
|
} else {
|
||||||
// Either we have more than one notification or we have no content to display
|
// Either we have more than one notification or we have no content to display
|
||||||
|
@ -380,13 +377,6 @@ void NotificationManager::publishNotification(const NotificationGroup *notificat
|
||||||
nemoNotification->publish();
|
nemoNotification->publish();
|
||||||
}
|
}
|
||||||
|
|
||||||
QString NotificationManager::getNotificationText(const QVariantMap ¬ificationContent)
|
|
||||||
{
|
|
||||||
LOG("Getting notification text from content" << notificationContent);
|
|
||||||
|
|
||||||
return FernschreiberUtils::getMessageShortText(notificationContent, false);
|
|
||||||
}
|
|
||||||
|
|
||||||
void NotificationManager::controlLedNotification(bool enabled)
|
void NotificationManager::controlLedNotification(bool enabled)
|
||||||
{
|
{
|
||||||
static const QString PATTERN("PatternCommunicationIM");
|
static const QString PATTERN("PatternCommunicationIM");
|
||||||
|
|
|
@ -50,7 +50,6 @@ public slots:
|
||||||
private:
|
private:
|
||||||
|
|
||||||
void publishNotification(const NotificationGroup *notificationGroup, bool needFeedback);
|
void publishNotification(const NotificationGroup *notificationGroup, bool needFeedback);
|
||||||
QString getNotificationText(const QVariantMap ¬ificationContent);
|
|
||||||
void controlLedNotification(bool enabled);
|
void controlLedNotification(bool enabled);
|
||||||
void updateNotificationGroup(int groupId, qlonglong chatId, int totalCount,
|
void updateNotificationGroup(int groupId, qlonglong chatId, int totalCount,
|
||||||
const QVariantList &addedNotifications,
|
const QVariantList &addedNotifications,
|
||||||
|
|
|
@ -765,6 +765,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>hat eine Audiodatei gesendet</translation>
|
<translation>hat eine Audiodatei gesendet</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation>hat %1 zum Chat hinzugefügt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation>hat %1 vom Chat entfernt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation>haben %1 zum Chat hinzugefügt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation>haben %1 vom Chat entfernt</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1028,11 +1046,11 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Download of %1 successful.</source>
|
<source>Download of %1 successful.</source>
|
||||||
<translation type="unfinished">Download von %1 erfolgreich.</translation>
|
<translation>Download von %1 erfolgreich.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Download failed.</source>
|
<source>Download failed.</source>
|
||||||
<translation type="unfinished">Download fehlgeschlagen.</translation>
|
<translation>Download fehlgeschlagen.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1712,5 +1730,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>Ausstehende Bestätigung</translation>
|
<translation>Ausstehende Bestätigung</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation>hat %1 zum Chat hinzugefügt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation>hat %1 vom Chat entfernt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation>haben %1 zum Chat hinzugefügt</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation>haben %1 vom Chat entfernt</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -765,6 +765,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>sent an audio</translation>
|
<translation>sent an audio</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation>has added %1 to the chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation>has removed %1 from the chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation>have added %1 to the chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation>have removed %1 from the chat</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1028,11 +1046,11 @@
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Download of %1 successful.</source>
|
<source>Download of %1 successful.</source>
|
||||||
<translation type="unfinished">Download of %1 successful.</translation>
|
<translation>Download of %1 successful.</translation>
|
||||||
</message>
|
</message>
|
||||||
<message>
|
<message>
|
||||||
<source>Download failed.</source>
|
<source>Download failed.</source>
|
||||||
<translation type="unfinished">Download failed.</translation>
|
<translation>Download failed.</translation>
|
||||||
</message>
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
|
@ -1712,5 +1730,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>Pending acknowledgement</translation>
|
<translation>Pending acknowledgement</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished">has added %1 to the chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished">has removed %1 from the chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished">have added %1 to the chat</translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished">have removed %1 from the chat</translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -755,6 +755,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>envió un audio</translation>
|
<translation>envió un audio</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1693,5 +1711,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>Pendiente de reconocimiento</translation>
|
<translation>Pendiente de reconocimiento</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -766,6 +766,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>lähetti äänitteen</translation>
|
<translation>lähetti äänitteen</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1713,5 +1731,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>Odottaa hyväksyntää</translation>
|
<translation>Odottaa hyväksyntää</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -755,6 +755,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation type="unfinished">audiót küldött</translation>
|
<translation type="unfinished">audiót küldött</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1693,5 +1711,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -765,6 +765,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>ha inviato un audio</translation>
|
<translation>ha inviato un audio</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1712,5 +1730,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>In attesa di conferma</translation>
|
<translation>In attesa di conferma</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -775,6 +775,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>wysłał plik dźwiękowy</translation>
|
<translation>wysłał plik dźwiękowy</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1731,5 +1749,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>Oczekujące na potwierdzenie</translation>
|
<translation>Oczekujące na potwierdzenie</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -775,6 +775,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>отправил(а) аудио</translation>
|
<translation>отправил(а) аудио</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1731,5 +1749,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>Ожидание подтверждения</translation>
|
<translation>Ожидание подтверждения</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -765,6 +765,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>skickade en ljudfil</translation>
|
<translation>skickade en ljudfil</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1712,5 +1730,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>Väntar på bekräftelse</translation>
|
<translation>Väntar på bekräftelse</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -755,6 +755,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation>发送音频</translation>
|
<translation>发送音频</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1693,5 +1711,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation>等待确认</translation>
|
<translation>等待确认</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
|
@ -765,6 +765,24 @@
|
||||||
<source>sent an audio</source>
|
<source>sent an audio</source>
|
||||||
<translation type="unfinished">sent an audio</translation>
|
<translation type="unfinished">sent an audio</translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
<context>
|
<context>
|
||||||
<name>ImagePage</name>
|
<name>ImagePage</name>
|
||||||
|
@ -1712,5 +1730,23 @@
|
||||||
<source>Pending acknowledgement</source>
|
<source>Pending acknowledgement</source>
|
||||||
<translation type="unfinished"></translation>
|
<translation type="unfinished"></translation>
|
||||||
</message>
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has added %1 to the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>has removed %1 from the chat</source>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have added %1 to the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
|
<message>
|
||||||
|
<source>have removed %1 from the chat</source>
|
||||||
|
<comment>myself</comment>
|
||||||
|
<translation type="unfinished"></translation>
|
||||||
|
</message>
|
||||||
</context>
|
</context>
|
||||||
</TS>
|
</TS>
|
||||||
|
|
Loading…
Reference in a new issue