Secret chats begin to work properly...

This commit is contained in:
Sebastian Wolf 2020-11-26 00:25:15 +01:00
parent 3b8d284b2b
commit 90f7535fda
17 changed files with 134 additions and 138 deletions

View file

@ -13,7 +13,7 @@ PhotoTextsListItem {
property int ownUserId
// chat title
primaryText.text: title ? Emoji.emojify(title + ( display.notification_settings.mute_for > 0 ? " 🔇" : "" ), Theme.fontSizeMedium) : qsTr("Unknown")
primaryText.text: title ? Emoji.emojify((listItem.isSecret ? "🔒 " : "" ) + title + ( display.notification_settings.mute_for > 0 ? " 🔇" : "" ), Theme.fontSizeMedium) : qsTr("Unknown")
// last user
prologSecondaryText.text: is_channel ? "" : ( last_message_sender_id ? ( last_message_sender_id !== ownUserId ? Emoji.emojify(Functions.getUserName(tdLibWrapper.getUserInformation(last_message_sender_id)), primaryText.font.pixelSize) : qsTr("You") ) : "" )
// last message

View file

@ -185,7 +185,7 @@ function getSecretChatStatus(secretChatDetails) {
case "secretChatStatePending":
return qsTr("Pending acknowledgement");
case "secretChatStateReady":
return qsTr("Ready to use");
return "";
}
}

View file

@ -40,6 +40,7 @@ Page {
property alias chatPicture: chatPictureThumbnail.photoData
property bool isPrivateChat: false;
property bool isSecretChat: false;
property bool isSecretChatReady: false;
property bool isBasicGroup: false;
property bool isSuperGroup: false;
property bool isChannel: false;
@ -48,7 +49,7 @@ Page {
property int chatOnlineMemberCount: 0;
property var emojiProposals;
property bool iterativeInitialization: false;
readonly property bool userIsMember: (isPrivateChat && chatInformation["@type"]) || // should be optimized
readonly property bool userIsMember: ((isPrivateChat || isSecretChat) && chatInformation["@type"]) || // should be optimized
(isBasicGroup || isSuperGroup) && (
(chatGroupInformation.status["@type"] === "chatMemberStatusMember")
|| (chatGroupInformation.status["@type"] === "chatMemberStatusAdministrator")
@ -111,10 +112,13 @@ Page {
}
var statusText = Functions.getChatPartnerStatusText(chatPartnerInformation.status['@type'], chatPartnerInformation.status.was_online);
if (chatPage.secretChatDetails) {
if (statusText) {
var secretChatStatus = Functions.getSecretChatStatus(chatPage.secretChatDetails);
if (statusText && secretChatStatus) {
statusText += " - ";
}
statusText += Functions.getSecretChatStatus(chatPage.secretChatDetails);
if (secretChatStatus) {
statusText += secretChatStatus;
}
}
if (statusText) {
@ -147,11 +151,11 @@ Page {
chatView.currentIndex = -1;
chatView.lastReadSentIndex = 0;
var chatType = chatInformation.type['@type'];
isPrivateChat = ( chatType === "chatTypePrivate"|| chatType === "chatTypeSecret" );
isPrivateChat = chatType === "chatTypePrivate";
isSecretChat = chatType === "chatTypeSecret";
isBasicGroup = ( chatType === "chatTypeBasicGroup" );
isSuperGroup = ( chatType === "chatTypeSupergroup" );
if (isPrivateChat) {
if (isPrivateChat || isSecretChat) {
chatPartnerInformation = tdLibWrapper.getUserInformation(chatInformation.type.user_id);
updateChatPartnerStatusText();
if (isSecretChat) {
@ -304,11 +308,12 @@ Page {
|| groupStatusType === "chatMemberStatusAdministrator"
|| groupStatusType === "chatMemberStatusCreator"
|| (groupStatusType === "chatMemberStatusRestricted" && groupStatus.permissions[privilege])
|| (chatPage.isSecretChat && chatPage.isSecretChatReady)
}
function canPinMessages() {
Debug.log("Can we pin messages?");
if (chatPage.isPrivateChat) {
Debug.log("Private Chat: No!");
if (chatPage.isPrivateChat || chatPage.isSecretChat) {
Debug.log("Private/Secret Chat: No!");
return false;
}
if (chatPage.chatGroupInformation.status["@type"] === "chatMemberStatusCreator") {
@ -380,7 +385,7 @@ Page {
Connections {
target: tdLibWrapper
onUserUpdated: {
if (isPrivateChat && chatPartnerInformation.id.toString() === userId ) {
if ((isPrivateChat || isSecretChat) && chatPartnerInformation.id.toString() === userId ) {
chatPartnerInformation = userInformation;
updateChatPartnerStatusText();
}
@ -428,6 +433,7 @@ Page {
Debug.log("[ChatPage] Received detailed information about this secret chat");
chatPage.secretChatDetails = secretChat;
updateChatPartnerStatusText();
chatPage.isSecretChatReady = chatPage.secretChatDetails.state["@type"] === "secretChatStateReady";
}
}
onSecretChatUpdated: {
@ -435,6 +441,7 @@ Page {
Debug.log("[ChatPage] Detailed information about this secret chat was updated");
chatPage.secretChatDetails = secretChat;
updateChatPartnerStatusText();
chatPage.isSecretChatReady = chatPage.secretChatDetails.state["@type"] === "secretChatStateReady";
}
}
}
@ -534,7 +541,7 @@ Page {
Timer {
id: chatContactTimeUpdater
interval: 60000
running: isPrivateChat
running: isPrivateChat || isSecretChat
repeat: true
onTriggered: {
updateChatPartnerStatusText();
@ -686,7 +693,7 @@ Page {
id: chatNameText
width: Math.min(implicitWidth, parent.width)
anchors.right: parent.right
text: chatInformation.title !== "" ? Emoji.emojify(chatInformation.title, font.pixelSize) : qsTr("Unknown")
text: chatInformation.title !== "" ? Emoji.emojify((chatPage.isSecretChat ? "🔒 " : "" ) + chatInformation.title, font.pixelSize) : qsTr("Unknown")
textFormat: Text.StyledText
font.pixelSize: chatPage.isPortrait ? Theme.fontSizeLarge : Theme.fontSizeMedium
font.family: Theme.fontFamilyHeading
@ -908,8 +915,9 @@ Page {
VerticalScrollDecorator {}
ViewPlaceholder {
id: chatViewPlaceholder
enabled: chatView.count === 0
text: qsTr("This chat is empty.")
text: (chatPage.isSecretChat && !chatPage.isSecretChatReady) ? qsTr("This secret chat is not yet ready. Your chat partner needs to go online first.") : qsTr("This chat is empty.")
}
}
@ -1103,7 +1111,7 @@ Page {
}
}
IconButton {
visible: !chatPage.isPrivateChat && chatPage.hasSendPrivilege("can_send_polls")
visible: !(chatPage.isPrivateChat || chatPage.isSecretChat) && chatPage.hasSendPrivilege("can_send_polls")
icon.source: "image://theme/icon-m-question"
onClicked: {
pageStack.push(Qt.resolvedUrl("../pages/PollCreationPage.qml"), { "chatId" : chatInformation.id, groupName: chatInformation.title});
@ -1383,7 +1391,7 @@ Page {
verticalCenter: parent.verticalCenter
}
visible: selectedMessages.every(function(message){
return message.can_be_forwarded
return message.can_be_forwarded && !chatPage.isSecretChat
})
width: visible ? Theme.itemSizeMedium : 0
icon.source: "image://theme/icon-m-forward"

View file

@ -69,7 +69,7 @@ Page {
SearchField {
id: contactsSearchField
width: parent.width
placeholderText: qsTr("Search a contact")
placeholderText: qsTr("Search a contact...")
active: !newChatPage.isLoading
onTextChanged: contactsModel.applyFilter(text);
EnterKey.iconSource: "image://theme/icon-m-enter-close"

View file

@ -46,6 +46,7 @@ namespace {
const QString IS_CHANNEL("is_channel");
const QString PINNED_MESSAGE_ID("pinned_message_id");
const QString _TYPE("@type");
const QString SECRET_CHAT_ID("secret_chat_id");
}
class ChatListModel::ChatData
@ -518,13 +519,16 @@ void ChatListModel::updateChatVisibility(const TDLibWrapper::Group *group)
void ChatListModel::updateSecretChatVisibility(const QVariantMap secretChatDetails)
{
LOG("Updating secret chat visibility" << secretChatDetails.value(ID));
// See if any group has been removed from from view
LOG("Updating secret chat visibility" << secretChatDetails.value(ID).toString());
// See if any secret chat has been closed
for (int i = 0; i < chatList.size(); i++) {
ChatData *chat = chatList.at(i);
if (chat->chatType != TDLibWrapper::ChatTypeSecret) {
continue;
}
if (chat->chatData.value(TYPE).toMap().value(SECRET_CHAT_ID).toString() != secretChatDetails.value(ID).toString()) {
continue;
}
const QVector<int> changedRoles(chat->updateSecretChat(secretChatDetails));
if (chat->isHidden() && !showHiddenChats) {
LOG("Hiding chat" << chat->chatId << "at" << i);
@ -543,21 +547,6 @@ void ChatListModel::updateSecretChatVisibility(const QVariantMap secretChatDetai
emit dataChanged(modelIndex, modelIndex, changedRoles);
}
}
// And see if any group been added to the view
const QList<ChatData*> hiddenChatList = hiddenChats.values();
const int n = hiddenChatList.size();
for (int j = 0; j < n; j++) {
ChatData *chat = hiddenChatList.at(j);
if (chat->chatType != TDLibWrapper::ChatTypeSecret) {
continue;
}
chat->updateSecretChat(secretChatDetails);
if (!chat->isHidden() || showHiddenChats) {
hiddenChats.remove(chat->chatId);
addVisibleChat(chat);
}
}
}
bool ChatListModel::showAllChats() const
@ -584,7 +573,7 @@ void ChatListModel::handleChatDiscovered(const QString &, const QVariantMap &cha
}
if (chat->chatType == TDLibWrapper::ChatTypeSecret) {
QVariantMap secretChatDetails = tdLibWrapper->getSecretChatFromCache(chatToBeAdded.value(TYPE).toMap().value("secret_chat_id").toString());
QVariantMap secretChatDetails = tdLibWrapper->getSecretChatFromCache(chatToBeAdded.value(TYPE).toMap().value(SECRET_CHAT_ID).toString());
if (!secretChatDetails.isEmpty()) {
chat->updateSecretChat(secretChatDetails);
}

View file

@ -530,8 +530,7 @@ void TDLibReceiver::nop(const QVariantMap &)
void TDLibReceiver::processSecretChat(const QVariantMap &receivedInformation)
{
LOG("Received a secret chat");
QVariantMap discoveredSecretChat = receivedInformation.value(SECRET_CHAT).toMap();
emit secretChat(discoveredSecretChat.value(ID).toString(), discoveredSecretChat);
emit secretChat(receivedInformation.value(ID).toString(), receivedInformation);
}
void TDLibReceiver::processUpdateSecretChat(const QVariantMap &receivedInformation)

View file

@ -379,6 +379,10 @@
<numerusform>%1 online</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation>Dieser geheime Chat ist noch nicht bereit. Ihr Chatpartner muss erst noch online gehen.</translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -921,8 +925,8 @@
<translation>Ende-zu-Ende-verschlüsselt, nur auf diesem Gerät zugreifbar</translation>
</message>
<message>
<source>Search a contact</source>
<translation>Suchen Sie einen Kontakt</translation>
<source>Search a contact...</source>
<translation>Einen Kontakt suchen...</translation>
</message>
<message>
<source>Loading contacts...</source>
@ -1655,9 +1659,5 @@
<source>Pending acknowledgement</source>
<translation>Ausstehende Bestätigung</translation>
</message>
<message>
<source>Ready to use</source>
<translation>Einsatzbereit</translation>
</message>
</context>
</TS>

View file

@ -262,7 +262,7 @@
</message>
<message>
<source>No message in this chat.</source>
<translation type="unfinished"></translation>
<translation>No message in this chat.</translation>
</message>
</context>
<context>
@ -379,6 +379,10 @@
<numerusform>%1 online</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation>This secret chat is not yet ready. Your chat partner needs to go online first.</translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -873,7 +877,7 @@
</message>
<message>
<source>Pin Message</source>
<translation type="unfinished"></translation>
<translation>Pin Message</translation>
</message>
</context>
<context>
@ -887,46 +891,46 @@
<name>MessageOverlayFlickable</name>
<message>
<source>You</source>
<translation type="unfinished">You</translation>
<translation>You</translation>
</message>
<message>
<source>This message was forwarded. Original author: %1</source>
<translation type="unfinished"></translation>
<translation>This message was forwarded. Original author: %1</translation>
</message>
</context>
<context>
<name>NewChatPage</name>
<message>
<source>Your Contacts</source>
<translation type="unfinished"></translation>
<translation>Your Contacts</translation>
</message>
<message>
<source>You don&apos;t have any contacts.</source>
<translation type="unfinished"></translation>
<translation>You don&apos;t have any contacts.</translation>
</message>
<message>
<source>Private Chat</source>
<translation type="unfinished"></translation>
<translation>Private Chat</translation>
</message>
<message>
<source>Secret Chat</source>
<translation type="unfinished"></translation>
<translation>Secret Chat</translation>
</message>
<message>
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
<translation>End-to-end-encrypted, accessible on this device only</translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
<source>Search a contact...</source>
<translation>Search a contact...</translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
<translation>Loading contacts...</translation>
</message>
<message>
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
<translation>Transport-encrypted, uses Telegram Cloud, sharable across devices</translation>
</message>
</context>
<context>
@ -983,22 +987,22 @@
</message>
<message>
<source>New Chat</source>
<translation type="unfinished"></translation>
<translation>New Chat</translation>
</message>
</context>
<context>
<name>PinnedMessageItem</name>
<message>
<source>You</source>
<translation type="unfinished">You</translation>
<translation>You</translation>
</message>
<message>
<source>Pinned Message</source>
<translation type="unfinished"></translation>
<translation>Pinned Message</translation>
</message>
<message>
<source>Message unpinned</source>
<translation type="unfinished"></translation>
<translation>Message unpinned</translation>
</message>
</context>
<context>
@ -1243,7 +1247,7 @@
</message>
<message>
<source>Notification turns on the display</source>
<translation type="unfinished"></translation>
<translation>Notification turns on the display</translation>
</message>
</context>
<context>
@ -1649,15 +1653,11 @@
</message>
<message>
<source>Closed!</source>
<translation type="unfinished"></translation>
<translation>Closed!</translation>
</message>
<message>
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
<translation>Pending acknowledgement</translation>
</message>
</context>
</TS>

View file

@ -369,6 +369,10 @@
<numerusform>%1 en línea</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -906,10 +910,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -918,6 +918,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1636,9 +1640,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -379,6 +379,10 @@
<numerusform>%1 paikalla</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -917,10 +921,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -929,6 +929,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1656,9 +1660,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -369,6 +369,10 @@
<numerusform></numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -906,10 +910,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -918,6 +918,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1636,9 +1640,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -379,6 +379,10 @@
<numerusform>%1 online</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -916,10 +920,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -928,6 +928,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1655,9 +1659,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -389,6 +389,10 @@
<numerusform>%1 online</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -926,10 +930,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -938,6 +938,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1674,9 +1678,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -389,6 +389,10 @@
<numerusform></numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -926,10 +930,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -938,6 +938,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1674,9 +1678,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -379,6 +379,10 @@
<numerusform>%1 online</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -916,10 +920,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -928,6 +928,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1655,9 +1659,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -369,6 +369,10 @@
<numerusform>%1 线</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -906,10 +910,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -918,6 +918,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1636,9 +1640,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>

View file

@ -379,6 +379,10 @@
<numerusform>%1 online</numerusform>
</translation>
</message>
<message>
<source>This secret chat is not yet ready. Your chat partner needs to go online first.</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>ChatSelectionPage</name>
@ -916,10 +920,6 @@
<source>End-to-end-encrypted, accessible on this device only</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Loading contacts...</source>
<translation type="unfinished"></translation>
@ -928,6 +928,10 @@
<source>Transport-encrypted, uses Telegram Cloud, sharable across devices</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Search a contact...</source>
<translation type="unfinished"></translation>
</message>
</context>
<context>
<name>NotificationManager</name>
@ -1655,9 +1659,5 @@
<source>Pending acknowledgement</source>
<translation type="unfinished"></translation>
</message>
<message>
<source>Ready to use</source>
<translation type="unfinished"></translation>
</message>
</context>
</TS>