From a7ab0ed33a1e7f1ef4bc45aacce0c619511fa270 Mon Sep 17 00:00:00 2001 From: Sebastian Wolf Date: Sun, 5 Feb 2023 20:17:06 +0100 Subject: [PATCH] Prepare support for contact sync with SFOS 4.5 --- harbour-fernschreiber.desktop | 2 +- harbour-fernschreiber.pro | 1 + qml/components/ContactSync.qml | 44 +++++++++++++++ .../settingsPage/SettingsUserProfile.qml | 53 ++++++++++++++++++ qml/pages/AboutPage.qml | 2 +- qml/pages/NewChatPage.qml | 28 +++++----- rpm/harbour-fernschreiber.spec | 5 +- rpm/harbour-fernschreiber.yaml | 5 +- src/contactsmodel.cpp | 56 +++++++------------ src/contactsmodel.h | 10 ++-- src/tdlibwrapper.cpp | 2 +- translations/harbour-fernschreiber-de.ts | 27 +++++++-- translations/harbour-fernschreiber-en.ts | 27 +++++++-- translations/harbour-fernschreiber-es.ts | 27 +++++++-- translations/harbour-fernschreiber-fi.ts | 27 +++++++-- translations/harbour-fernschreiber-fr.ts | 27 +++++++-- translations/harbour-fernschreiber-hu.ts | 23 +++++++- translations/harbour-fernschreiber-it.ts | 27 +++++++-- translations/harbour-fernschreiber-pl.ts | 27 +++++++-- translations/harbour-fernschreiber-ru.ts | 27 +++++++-- translations/harbour-fernschreiber-sk.ts | 27 +++++++-- translations/harbour-fernschreiber-sv.ts | 27 +++++++-- translations/harbour-fernschreiber-zh_CN.ts | 27 +++++++-- translations/harbour-fernschreiber.ts | 23 +++++++- 24 files changed, 441 insertions(+), 110 deletions(-) create mode 100644 qml/components/ContactSync.qml diff --git a/harbour-fernschreiber.desktop b/harbour-fernschreiber.desktop index b7d9200..9768ef0 100644 --- a/harbour-fernschreiber.desktop +++ b/harbour-fernschreiber.desktop @@ -6,6 +6,6 @@ Exec=harbour-fernschreiber Name=Fernschreiber [X-Sailjail] -Permissions=Audio;Documents;Downloads;Internet;Location;MediaIndexing;Microphone;Music;Pictures;PublicDir;RemovableMedia;UserDirs;Videos +Permissions=Audio;Contacts;Documents;Downloads;Internet;Location;MediaIndexing;Microphone;Music;Pictures;PublicDir;RemovableMedia;UserDirs;Videos OrganizationName=de.ygriega ApplicationName=fernschreiber diff --git a/harbour-fernschreiber.pro b/harbour-fernschreiber.pro index 65b345c..79af618 100644 --- a/harbour-fernschreiber.pro +++ b/harbour-fernschreiber.pro @@ -46,6 +46,7 @@ DISTFILES += qml/harbour-fernschreiber.qml \ qml/components/AudioPreview.qml \ qml/components/BackgroundImage.qml \ qml/components/ChatListViewItem.qml \ + qml/components/ContactSync.qml \ qml/components/DocumentPreview.qml \ qml/components/GamePreview.qml \ qml/components/ImagePreview.qml \ diff --git a/qml/components/ContactSync.qml b/qml/components/ContactSync.qml new file mode 100644 index 0000000..3833fc1 --- /dev/null +++ b/qml/components/ContactSync.qml @@ -0,0 +1,44 @@ +/* + Copyright (C) 2021 Sebastian J. Wolf and other contributors + + This file is part of Fernschreiber. + + Fernschreiber is free software: you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, either version 3 of the License, or + (at your option) any later version. + + Fernschreiber is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with Fernschreiber. If not, see . +*/ +import QtQuick 2.0 +import org.nemomobile.contacts 1.0 + +Item { + + signal syncError(); + + function synchronize() { + if (peopleModel.count === 0) { + appNotification.show(qsTr("Could not synchronize your contacts with Telegram.")); + syncError(); + } else { + contactsModel.startImportingContacts(); + for (var i = 0; i < peopleModel.count; i++ ) { + contactsModel.importContact(peopleModel.get(i)); + } + contactsModel.stopImportingContacts(); + } + } + + PeopleModel { + id: peopleModel + requiredProperty: PeopleModel.PhoneNumberRequired + } + +} diff --git a/qml/components/settingsPage/SettingsUserProfile.qml b/qml/components/settingsPage/SettingsUserProfile.qml index 4c3f827..f4fad97 100644 --- a/qml/components/settingsPage/SettingsUserProfile.qml +++ b/qml/components/settingsPage/SettingsUserProfile.qml @@ -35,6 +35,7 @@ AccordionItem { readonly property var userInformation: tdLibWrapper.getUserInformation() property bool uploadInProgress: false + property bool contactSyncEnabled: false Component.onCompleted: { tdLibWrapper.getUserProfilePhotos(userInformation.id, 100, 0); @@ -151,6 +152,49 @@ AccordionItem { } } + Column { + id: contactSyncItem + width: parent.width + height: syncInProgress ? ( syncContactsBusyIndicator.height + Theme.paddingMedium ) : ( syncContactsButton.height + Theme.paddingMedium ) + visible: accordionContent.contactSyncEnabled + + property bool syncInProgress: false + + Connections { + target: contactSyncLoader.item + onSyncError: { + contactSyncItem.syncInProgress = false; + } + } + + Connections { + target: tdLibWrapper + onContactsImported: { + appNotification.show(qsTr("Contacts successfully synchronized with Telegram.")); + } + } + + Button { + id: syncContactsButton + text: qsTr("Synchronize Contacts with Telegram") + visible: !contactSyncItem.syncInProgress + anchors { + horizontalCenter: parent.horizontalCenter + } + onClicked: { + contactSyncLoader.item.synchronize(); + } + } + + BusyIndicator { + id: syncContactsBusyIndicator + anchors.horizontalCenter: parent.horizontalCenter + running: contactSyncItem.syncInProgress + size: BusyIndicatorSize.Small + visible: running + } + } + } SectionHeader { @@ -247,6 +291,15 @@ AccordionItem { } + Loader { + id: contactSyncLoader + source: "../ContactSync.qml" + active: true + onLoaded: { + accordionContent.contactSyncEnabled = true; + } + } + Component { id: imagePickerPage ImagePickerPage { diff --git a/qml/pages/AboutPage.qml b/qml/pages/AboutPage.qml index cb52f84..448cc61 100644 --- a/qml/pages/AboutPage.qml +++ b/qml/pages/AboutPage.qml @@ -57,7 +57,7 @@ Page { } Label { - text: "Fernschreiber 0.16" + text: "Fernschreiber 0.17" horizontalAlignment: Text.AlignHCenter font.pixelSize: Theme.fontSizeExtraLarge anchors { diff --git a/qml/pages/NewChatPage.qml b/qml/pages/NewChatPage.qml index 67dc385..b8d091d 100644 --- a/qml/pages/NewChatPage.qml +++ b/qml/pages/NewChatPage.qml @@ -55,16 +55,19 @@ Page { } } - Component.onCompleted: { - // With Sailfish OS 4 we can't get up-to-date contacts andmore. We might need to enter Sailjail eventually... - // Details see https://forum.sailfishos.org/t/4-0-1-45-non-jailed-contacts-sqlite-database-no-longer-updated/4724 - var sailfishOSVersion = fernschreiberUtils.getSailfishOSVersion().split("."); - if (parseInt(sailfishOSVersion[0]) < 4) { - Debug.log("Sailfish OS version 3.x - contact sync should still be possible...") + Connections { + target: contactSyncLoader.item + onSyncError: { + newChatPage.isLoading = false; + } + } + + Loader { + id: contactSyncLoader + source: "../components/ContactSync.qml" + active: true + onLoaded: { newChatPage.syncSupported = true; - } else { - Debug.log("Sailfish OS version 4.x - contact sync no longer supported...") - newChatPage.syncSupported = false; } } @@ -74,14 +77,11 @@ Page { anchors.fill: parent PullDownMenu { - visible: contactsModel.canSynchronizeContacts() && newChatPage.syncSupported + visible: newChatPage.syncSupported MenuItem { onClicked: { newChatPage.isLoading = true; - if (!contactsModel.synchronizeContacts()) { - reloadContacts(); - appNotification.show(qsTr("Could not synchronize your contacts with Telegram.")); - } + contactSyncLoader.item.synchronize(); // Success message is not fired before TDLib returned "Contacts imported" (see above) } text: qsTr("Synchronize Contacts with Telegram") diff --git a/rpm/harbour-fernschreiber.spec b/rpm/harbour-fernschreiber.spec index 925d172..c482b80 100644 --- a/rpm/harbour-fernschreiber.spec +++ b/rpm/harbour-fernschreiber.spec @@ -11,14 +11,15 @@ Name: harbour-fernschreiber # << macros Summary: Fernschreiber is a Telegram client for Sailfish OS -Version: 0.16 -Release: 4 +Version: 0.17 +Release: 1 Group: Qt/Qt License: LICENSE URL: http://werkwolf.eu/ Source0: %{name}-%{version}.tar.bz2 Source100: harbour-fernschreiber.yaml Requires: sailfishsilica-qt5 >= 0.10.9 +Requires: nemo-qml-plugin-contacts-qt5 BuildRequires: pkgconfig(sailfishapp) >= 1.0.2 BuildRequires: pkgconfig(Qt5Core) BuildRequires: pkgconfig(Qt5Qml) diff --git a/rpm/harbour-fernschreiber.yaml b/rpm/harbour-fernschreiber.yaml index 5277fd4..9a4782a 100644 --- a/rpm/harbour-fernschreiber.yaml +++ b/rpm/harbour-fernschreiber.yaml @@ -1,7 +1,7 @@ Name: harbour-fernschreiber Summary: Fernschreiber is a Telegram client for Sailfish OS -Version: 0.16 -Release: 4 +Version: 0.17 +Release: 1 # The contents of the Group field should be one of the groups listed here: # https://github.com/mer-tools/spectacle/blob/master/data/GROUPS Group: Qt/Qt @@ -37,6 +37,7 @@ PkgBR: # Runtime dependencies which are not automatically detected Requires: - sailfishsilica-qt5 >= 0.10.9 + - nemo-qml-plugin-contacts-qt5 # All installed files Files: diff --git a/src/contactsmodel.cpp b/src/contactsmodel.cpp index 59184f5..fa24b24 100644 --- a/src/contactsmodel.cpp +++ b/src/contactsmodel.cpp @@ -39,16 +39,6 @@ ContactsModel::ContactsModel(TDLibWrapper *tdLibWrapper, QObject *parent) { this->tdLibWrapper = tdLibWrapper; connect(this->tdLibWrapper, SIGNAL(usersReceived(QString, QVariantList, int)), this, SLOT(handleUsersReceived(QString, QVariantList, int))); - - this->deviceContactsDatabase = QSqlDatabase::addDatabase("QSQLITE", "contacts"); - this->deviceContactsDatabase.setDatabaseName(QStandardPaths::writableLocation(QStandardPaths::HomeLocation) + "/.local/share/system/Contacts/qtcontacts-sqlite/contacts.db"); - if (this->deviceContactsDatabase.open()) { - LOG("Device's contacts database successfully opened :)"); - this->canUseDeviceContacts = true; - } else { - LOG("Error opening device's contacts database :("); - this->canUseDeviceContacts = false; - } } QHash ContactsModel::roleNames() const @@ -150,35 +140,31 @@ void ContactsModel::hydrateContacts() std::sort(this->contacts.begin(), this->contacts.end(), compareUsers); } -bool ContactsModel::synchronizeContacts() +void ContactsModel::startImportingContacts() { - LOG("Synchronizing device contacts"); - QVariantList deviceContacts; - QSqlQuery databaseQuery(this->deviceContactsDatabase); - databaseQuery.prepare("select distinct c.contactId, c.firstName, c.lastName, n.phoneNumber from Contacts as c inner join PhoneNumbers as n on c.contactId = n.contactId where n.phoneNumber is not null and ( c.firstName is not null or c.lastName is not null );"); - if (databaseQuery.exec()) { - LOG("Device contacts successfully selected from database!"); - while (databaseQuery.next()) { + this->deviceContacts.clear(); +} + +void ContactsModel::stopImportingContacts() +{ + if (!deviceContacts.isEmpty()) { + LOG("Importing found contacts" << deviceContacts.size()); + this->tdLibWrapper->importContacts(deviceContacts); + } +} + +void ContactsModel::importContact(const QVariantMap &singlePerson) +{ + QString firstName = singlePerson.value("firstName").toString(); + QVariantList phoneNumbers = singlePerson.value("phoneNumbers").toList(); + if (!firstName.isEmpty() && !phoneNumbers.isEmpty()) { + for (QVariant phoneNumber : phoneNumbers) { QVariantMap singleContact; - singleContact.insert("first_name", databaseQuery.value(1).toString()); - singleContact.insert("last_name", databaseQuery.value(2).toString()); - singleContact.insert("phone_number", databaseQuery.value(3).toString()); + singleContact.insert("first_name", firstName); + singleContact.insert("last_name", singlePerson.value("lastName").toString()); + singleContact.insert("phone_number", phoneNumber.toString()); deviceContacts.append(singleContact); LOG("Found contact" << singleContact.value("first_name").toString() << singleContact.value("last_name").toString() << singleContact.value("phone_number").toString()); } - if (!deviceContacts.isEmpty()) { - LOG("Importing found contacts" << deviceContacts.size()); - this->tdLibWrapper->importContacts(deviceContacts); - } - return true; - } else { - LOG("Error selecting contacts from database!"); - return false; } - -} - -bool ContactsModel::canSynchronizeContacts() -{ - return this->canUseDeviceContacts; } diff --git a/src/contactsmodel.h b/src/contactsmodel.h index d4af011..6879c11 100644 --- a/src/contactsmodel.h +++ b/src/contactsmodel.h @@ -22,8 +22,6 @@ #include #include -#include -#include #include "tdlibwrapper.h" @@ -50,8 +48,9 @@ public: virtual QVariant data(const QModelIndex &index, int role) const override; Q_INVOKABLE void hydrateContacts(); - Q_INVOKABLE bool synchronizeContacts(); - Q_INVOKABLE bool canSynchronizeContacts(); + Q_INVOKABLE void startImportingContacts(); + Q_INVOKABLE void stopImportingContacts(); + Q_INVOKABLE void importContact(const QVariantMap &singlePerson); public slots: void handleUsersReceived(const QString &extra, const QVariantList &userIds, int totalUsers); @@ -61,8 +60,7 @@ private: QVariantList contacts; QList contactIds; QString filter; - QSqlDatabase deviceContactsDatabase; - bool canUseDeviceContacts; + QVariantList deviceContacts; }; #endif // CONTACTSMODEL_H diff --git a/src/tdlibwrapper.cpp b/src/tdlibwrapper.cpp index eba0455..53be644 100644 --- a/src/tdlibwrapper.cpp +++ b/src/tdlibwrapper.cpp @@ -2095,7 +2095,7 @@ void TDLibWrapper::setInitialParameters() QSettings hardwareSettings("/etc/hw-release", QSettings::NativeFormat); initialParameters.insert("device_model", hardwareSettings.value("NAME", "Unknown Mobile Device").toString()); initialParameters.insert("system_version", QSysInfo::prettyProductName()); - initialParameters.insert("application_version", "0.16"); + initialParameters.insert("application_version", "0.17"); initialParameters.insert("enable_storage_optimizer", appSettings->storageOptimizer()); // initialParameters.insert("use_test_dc", true); requestObject.insert("parameters", initialParameters); diff --git a/translations/harbour-fernschreiber-de.ts b/translations/harbour-fernschreiber-de.ts index 27a8647..30489bc 100644 --- a/translations/harbour-fernschreiber-de.ts +++ b/translations/harbour-fernschreiber-de.ts @@ -183,6 +183,10 @@ Mute Chat Chat stummschalten + + ID has been copied to the clipboard. + ID wurde in die Zwischenablage kopiert + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ Sie haben noch keine Chats. + + ContactSync + + Could not synchronize your contacts with Telegram. + Konnte Ihre Kontakte nicht mit Telegram synchronisieren. + + CoverPage @@ -1149,14 +1160,14 @@ Synchronize Contacts with Telegram Kontakte mit Telegram synchronisieren - - Could not synchronize your contacts with Telegram. - Konnte Ihre Kontakte nicht mit Telegram synchronisieren. - Contacts successfully synchronized with Telegram. Die Kontakte wurden erfolgreich mit Telegram synchronisiert. + + No contacts found. + Keine Kontakte gefunden + NotificationManager @@ -1765,6 +1776,14 @@ Phone number: +%1 Telefonnummer: +%1 + + Contacts successfully synchronized with Telegram. + Die Kontakte wurden erfolgreich mit Telegram synchronisiert. + + + Synchronize Contacts with Telegram + Kontakte mit Telegram synchronisieren + SponsoredMessage diff --git a/translations/harbour-fernschreiber-en.ts b/translations/harbour-fernschreiber-en.ts index 365f816..dc306a1 100644 --- a/translations/harbour-fernschreiber-en.ts +++ b/translations/harbour-fernschreiber-en.ts @@ -183,6 +183,10 @@ Mute Chat Mute Chat + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ You don't have any chats yet. + + ContactSync + + Could not synchronize your contacts with Telegram. + Could not synchronize your contacts with Telegram. + + CoverPage @@ -1151,14 +1162,14 @@ messages Synchronize Contacts with Telegram Synchronize Contacts with Telegram - - Could not synchronize your contacts with Telegram. - Could not synchronize your contacts with Telegram. - Contacts successfully synchronized with Telegram. Contacts successfully synchronized with Telegram. + + No contacts found. + + NotificationManager @@ -1767,6 +1778,14 @@ messages Phone number: +%1 Phone number: +%1 + + Contacts successfully synchronized with Telegram. + Contacts successfully synchronized with Telegram. + + + Synchronize Contacts with Telegram + Synchronize Contacts with Telegram + SponsoredMessage diff --git a/translations/harbour-fernschreiber-es.ts b/translations/harbour-fernschreiber-es.ts index 7c7ff2a..5d236c6 100644 --- a/translations/harbour-fernschreiber-es.ts +++ b/translations/harbour-fernschreiber-es.ts @@ -183,6 +183,10 @@ Mute Chat No notificar + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ No hay todavía conversaciones. + + ContactSync + + Could not synchronize your contacts with Telegram. + No se pudieron sincronizar los contactos con Telegram. + + CoverPage @@ -1149,14 +1160,14 @@ Synchronize Contacts with Telegram Sincronizar con Telegram - - Could not synchronize your contacts with Telegram. - No se pudieron sincronizar los contactos con Telegram. - Contacts successfully synchronized with Telegram. Contactos sincronizados con éxito con Telegram. + + No contacts found. + + NotificationManager @@ -1765,6 +1776,14 @@ Phone number: +%1 + + Contacts successfully synchronized with Telegram. + Contactos sincronizados con éxito con Telegram. + + + Synchronize Contacts with Telegram + Sincronizar con Telegram + SponsoredMessage diff --git a/translations/harbour-fernschreiber-fi.ts b/translations/harbour-fernschreiber-fi.ts index 6e6fc4a..a8e76f7 100644 --- a/translations/harbour-fernschreiber-fi.ts +++ b/translations/harbour-fernschreiber-fi.ts @@ -183,6 +183,10 @@ Mute Chat Vaimenna keskustelu + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ Sinulla ei ole vielä keskusteluja. + + ContactSync + + Could not synchronize your contacts with Telegram. + Yhteystietojasi ei voitu synkronoida Telegramin kanssa. + + CoverPage @@ -1150,14 +1161,14 @@ Synchronize Contacts with Telegram Synkronoi yhteystiedot Telegramin kanssa - - Could not synchronize your contacts with Telegram. - Yhteystietojasi ei voitu synkronoida Telegramin kanssa. - Contacts successfully synchronized with Telegram. Yhteystietojen synkronointi Telegramin kanssa onnistui. + + No contacts found. + + NotificationManager @@ -1766,6 +1777,14 @@ Phone number: +%1 Puhelinnumero: +%1 + + Contacts successfully synchronized with Telegram. + Yhteystietojen synkronointi Telegramin kanssa onnistui. + + + Synchronize Contacts with Telegram + Synkronoi yhteystiedot Telegramin kanssa + SponsoredMessage diff --git a/translations/harbour-fernschreiber-fr.ts b/translations/harbour-fernschreiber-fr.ts index 277c7fa..cb76a6b 100644 --- a/translations/harbour-fernschreiber-fr.ts +++ b/translations/harbour-fernschreiber-fr.ts @@ -183,6 +183,10 @@ Mute Chat Mettre la conversation en sourdine + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ Vous n'avez aucune conversation. + + ContactSync + + Could not synchronize your contacts with Telegram. + Impossible de synchroniser vos contacts avec Telegram. + + CoverPage @@ -1149,14 +1160,14 @@ Synchronize Contacts with Telegram Synchroniser les contacts avec Telegram - - Could not synchronize your contacts with Telegram. - Impossible de synchroniser vos contacts avec Telegram. - Contacts successfully synchronized with Telegram. Contacts synchronisés avec Telegram avec succès. + + No contacts found. + + NotificationManager @@ -1765,6 +1776,14 @@ Phone number: +%1 Numéro de téléphone : +%1 + + Contacts successfully synchronized with Telegram. + Contacts synchronisés avec Telegram avec succès. + + + Synchronize Contacts with Telegram + Synchroniser les contacts avec Telegram + SponsoredMessage diff --git a/translations/harbour-fernschreiber-hu.ts b/translations/harbour-fernschreiber-hu.ts index 02e6431..49311be 100644 --- a/translations/harbour-fernschreiber-hu.ts +++ b/translations/harbour-fernschreiber-hu.ts @@ -180,6 +180,10 @@ Mute Chat Csevegés némítása + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -481,6 +485,13 @@ + + ContactSync + + Could not synchronize your contacts with Telegram. + + + CoverPage @@ -1132,11 +1143,11 @@ - Could not synchronize your contacts with Telegram. + Contacts successfully synchronized with Telegram. - Contacts successfully synchronized with Telegram. + No contacts found. @@ -1738,6 +1749,14 @@ Phone number: +%1 + + Contacts successfully synchronized with Telegram. + + + + Synchronize Contacts with Telegram + + SponsoredMessage diff --git a/translations/harbour-fernschreiber-it.ts b/translations/harbour-fernschreiber-it.ts index c4793ad..15c21b2 100644 --- a/translations/harbour-fernschreiber-it.ts +++ b/translations/harbour-fernschreiber-it.ts @@ -183,6 +183,10 @@ Mute Chat Silenzia chat + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ Nessuna chat presente + + ContactSync + + Could not synchronize your contacts with Telegram. + Sincronizzazione contatti con Telegram non riuscita + + CoverPage @@ -1149,14 +1160,14 @@ Synchronize Contacts with Telegram Sincronizza contatti con Telegram - - Could not synchronize your contacts with Telegram. - Sincronizzazione contatti con Telegram non riuscita - Contacts successfully synchronized with Telegram. Sincronizzazione contatti con Telegram completata + + No contacts found. + + NotificationManager @@ -1765,6 +1776,14 @@ Phone number: +%1 Telefono: +%1 + + Contacts successfully synchronized with Telegram. + Sincronizzazione contatti con Telegram completata + + + Synchronize Contacts with Telegram + Sincronizza contatti con Telegram + SponsoredMessage diff --git a/translations/harbour-fernschreiber-pl.ts b/translations/harbour-fernschreiber-pl.ts index 2b12d87..ab36a1c 100644 --- a/translations/harbour-fernschreiber-pl.ts +++ b/translations/harbour-fernschreiber-pl.ts @@ -186,6 +186,10 @@ Mute Chat Wycisz czat + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -501,6 +505,13 @@ Nie masz jeszcze żadnych czatów. + + ContactSync + + Could not synchronize your contacts with Telegram. + Nie można zsynchonizaować kontaktów z Telegramem. + + CoverPage @@ -1167,14 +1178,14 @@ Synchronize Contacts with Telegram Synchronizuj kontakty z Telegramem - - Could not synchronize your contacts with Telegram. - Nie można zsynchonizaować kontaktów z Telegramem. - Contacts successfully synchronized with Telegram. Synchronizacja kontaktów z Telegramem zakończona sukcesem. + + No contacts found. + + NotificationManager @@ -1792,6 +1803,14 @@ Phone number: +%1 Numer telefonu: +%1 + + Contacts successfully synchronized with Telegram. + Synchronizacja kontaktów z Telegramem zakończona sukcesem. + + + Synchronize Contacts with Telegram + Synchronizuj kontakty z Telegramem + SponsoredMessage diff --git a/translations/harbour-fernschreiber-ru.ts b/translations/harbour-fernschreiber-ru.ts index 9a18e64..42bc524 100644 --- a/translations/harbour-fernschreiber-ru.ts +++ b/translations/harbour-fernschreiber-ru.ts @@ -186,6 +186,10 @@ Mute Chat Выключить уведомления + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -501,6 +505,13 @@ Тут пока ничего нет + + ContactSync + + Could not synchronize your contacts with Telegram. + Невозможно синхронизировать ваши контакты с Телеграм. + + CoverPage @@ -1170,14 +1181,14 @@ Synchronize Contacts with Telegram Синхронизировать с Телеграм - - Could not synchronize your contacts with Telegram. - Невозможно синхронизировать ваши контакты с Телеграм. - Contacts successfully synchronized with Telegram. Контакты успешно синхронизированы с Телеграм. + + No contacts found. + + NotificationManager @@ -1795,6 +1806,14 @@ Phone number: +%1 Ваш телефон: +%1 + + Contacts successfully synchronized with Telegram. + Контакты успешно синхронизированы с Телеграм. + + + Synchronize Contacts with Telegram + Синхронизировать с Телеграм + SponsoredMessage diff --git a/translations/harbour-fernschreiber-sk.ts b/translations/harbour-fernschreiber-sk.ts index f741668..d927177 100644 --- a/translations/harbour-fernschreiber-sk.ts +++ b/translations/harbour-fernschreiber-sk.ts @@ -186,6 +186,10 @@ Mute Chat Umlčať čet + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -501,6 +505,13 @@ Nemáte žiadne čety. + + ContactSync + + Could not synchronize your contacts with Telegram. + Nemožno synchonizovať kontakty s Telegramom. + + CoverPage @@ -1167,14 +1178,14 @@ Synchronize Contacts with Telegram Synchronizovať kontakty s Telegramom - - Could not synchronize your contacts with Telegram. - Nemožno synchonizovať kontakty s Telegramom. - Contacts successfully synchronized with Telegram. Kontakty boli úspešne synchronizované s Telegramom. + + No contacts found. + + NotificationManager @@ -1792,6 +1803,14 @@ Phone number: +%1 Telefónne číslo: +%1 + + Contacts successfully synchronized with Telegram. + Kontakty boli úspešne synchronizované s Telegramom. + + + Synchronize Contacts with Telegram + Synchronizovať kontakty s Telegramom + SponsoredMessage diff --git a/translations/harbour-fernschreiber-sv.ts b/translations/harbour-fernschreiber-sv.ts index 7bdb4dd..cca0617 100644 --- a/translations/harbour-fernschreiber-sv.ts +++ b/translations/harbour-fernschreiber-sv.ts @@ -183,6 +183,10 @@ Mute Chat Stäng av chatten + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ Du har inga chattar än. + + ContactSync + + Could not synchronize your contacts with Telegram. + Kunde inte synkronisera dina kontakter med Telegram. + + CoverPage @@ -1149,14 +1160,14 @@ Synchronize Contacts with Telegram Synkronisera kontakter med Telegram - - Could not synchronize your contacts with Telegram. - Kunde inte synkronisera dina kontakter med Telegram. - Contacts successfully synchronized with Telegram. Kontakter synkroniserade med Telegram. + + No contacts found. + + NotificationManager @@ -1765,6 +1776,14 @@ Phone number: +%1 Telefonnummer: +%1 + + Contacts successfully synchronized with Telegram. + Kontakter synkroniserade med Telegram. + + + Synchronize Contacts with Telegram + Synkronisera kontakter med Telegram + SponsoredMessage diff --git a/translations/harbour-fernschreiber-zh_CN.ts b/translations/harbour-fernschreiber-zh_CN.ts index 5b3406d..20b60e9 100644 --- a/translations/harbour-fernschreiber-zh_CN.ts +++ b/translations/harbour-fernschreiber-zh_CN.ts @@ -180,6 +180,10 @@ Mute Chat 静音对话 + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -481,6 +485,13 @@ 你还没有任何对话。 + + ContactSync + + Could not synchronize your contacts with Telegram. + 无法同步你的云端 Telegram 联系人。 + + CoverPage @@ -1132,14 +1143,14 @@ Synchronize Contacts with Telegram 同步 Telegram 联系人 - - Could not synchronize your contacts with Telegram. - 无法同步你的云端 Telegram 联系人。 - Contacts successfully synchronized with Telegram. 已成功同步 Telegram 联系人。 + + No contacts found. + + NotificationManager @@ -1739,6 +1750,14 @@ Phone number: +%1 电话号码: +%1 + + Contacts successfully synchronized with Telegram. + 已成功同步 Telegram 联系人。 + + + Synchronize Contacts with Telegram + 同步 Telegram 联系人 + SponsoredMessage diff --git a/translations/harbour-fernschreiber.ts b/translations/harbour-fernschreiber.ts index 7e91f57..9cb3f0b 100644 --- a/translations/harbour-fernschreiber.ts +++ b/translations/harbour-fernschreiber.ts @@ -183,6 +183,10 @@ Mute Chat Mute Chat + + ID has been copied to the clipboard. + + ChatInformationTabItemMembersGroups @@ -491,6 +495,13 @@ You don't have any chats yet. + + ContactSync + + Could not synchronize your contacts with Telegram. + + + CoverPage @@ -1150,11 +1161,11 @@ - Could not synchronize your contacts with Telegram. + Contacts successfully synchronized with Telegram. - Contacts successfully synchronized with Telegram. + No contacts found. @@ -1765,6 +1776,14 @@ Phone number: +%1 + + Contacts successfully synchronized with Telegram. + + + + Synchronize Contacts with Telegram + + SponsoredMessage