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 @@
Chat stummschalten
+
+
+ ID wurde in die Zwischenablage kopiert
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
Sie haben noch keine Chats.
+
+ ContactSync
+
+
+ Konnte Ihre Kontakte nicht mit Telegram synchronisieren.
+
+
CoverPage
@@ -1149,14 +1160,14 @@
Kontakte mit Telegram synchronisieren
-
-
- Konnte Ihre Kontakte nicht mit Telegram synchronisieren.
-
Die Kontakte wurden erfolgreich mit Telegram synchronisiert.
+
+
+ Keine Kontakte gefunden
+
NotificationManager
@@ -1765,6 +1776,14 @@
Telefonnummer: +%1
+
+
+ Die Kontakte wurden erfolgreich mit Telegram synchronisiert.
+
+
+
+ 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
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
You don't have any chats yet.
+
+ ContactSync
+
+
+ Could not synchronize your contacts with Telegram.
+
+
CoverPage
@@ -1151,14 +1162,14 @@ messages
Synchronize Contacts with Telegram
-
-
- Could not synchronize your contacts with Telegram.
-
Contacts successfully synchronized with Telegram.
+
+
+
+
NotificationManager
@@ -1767,6 +1778,14 @@ messages
Phone number: +%1
+
+
+ Contacts successfully synchronized 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 @@
No notificar
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
No hay todavía conversaciones.
+
+ ContactSync
+
+
+ No se pudieron sincronizar los contactos con Telegram.
+
+
CoverPage
@@ -1149,14 +1160,14 @@
Sincronizar con Telegram
-
-
- No se pudieron sincronizar los contactos con Telegram.
-
Contactos sincronizados con éxito con Telegram.
+
+
+
+
NotificationManager
@@ -1765,6 +1776,14 @@
+
+
+ Contactos sincronizados con éxito con 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 @@
Vaimenna keskustelu
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
Sinulla ei ole vielä keskusteluja.
+
+ ContactSync
+
+
+ Yhteystietojasi ei voitu synkronoida Telegramin kanssa.
+
+
CoverPage
@@ -1150,14 +1161,14 @@
Synkronoi yhteystiedot Telegramin kanssa
-
-
- Yhteystietojasi ei voitu synkronoida Telegramin kanssa.
-
Yhteystietojen synkronointi Telegramin kanssa onnistui.
+
+
+
+
NotificationManager
@@ -1766,6 +1777,14 @@
Puhelinnumero: +%1
+
+
+ Yhteystietojen synkronointi Telegramin kanssa onnistui.
+
+
+
+ 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 @@
Mettre la conversation en sourdine
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
Vous n'avez aucune conversation.
+
+ ContactSync
+
+
+ Impossible de synchroniser vos contacts avec Telegram.
+
+
CoverPage
@@ -1149,14 +1160,14 @@
Synchroniser les contacts avec Telegram
-
-
- Impossible de synchroniser vos contacts avec Telegram.
-
Contacts synchronisés avec Telegram avec succès.
+
+
+
+
NotificationManager
@@ -1765,6 +1776,14 @@
Numéro de téléphone : +%1
+
+
+ Contacts synchronisés avec Telegram avec succès.
+
+
+
+ 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 @@
Csevegés némítása
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -481,6 +485,13 @@
+
+ ContactSync
+
+
+
+
+
CoverPage
@@ -1132,11 +1143,11 @@
-
+
-
+
@@ -1738,6 +1749,14 @@
+
+
+
+
+
+
+
+
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 @@
Silenzia chat
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
Nessuna chat presente
+
+ ContactSync
+
+
+ Sincronizzazione contatti con Telegram non riuscita
+
+
CoverPage
@@ -1149,14 +1160,14 @@
Sincronizza contatti con Telegram
-
-
- Sincronizzazione contatti con Telegram non riuscita
-
Sincronizzazione contatti con Telegram completata
+
+
+
+
NotificationManager
@@ -1765,6 +1776,14 @@
Telefono: +%1
+
+
+ Sincronizzazione contatti con Telegram completata
+
+
+
+ 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 @@
Wycisz czat
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -501,6 +505,13 @@
Nie masz jeszcze żadnych czatów.
+
+ ContactSync
+
+
+ Nie można zsynchonizaować kontaktów z Telegramem.
+
+
CoverPage
@@ -1167,14 +1178,14 @@
Synchronizuj kontakty z Telegramem
-
-
- Nie można zsynchonizaować kontaktów z Telegramem.
-
Synchronizacja kontaktów z Telegramem zakończona sukcesem.
+
+
+
+
NotificationManager
@@ -1792,6 +1803,14 @@
Numer telefonu: +%1
+
+
+ Synchronizacja kontaktów z Telegramem zakończona sukcesem.
+
+
+
+ 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 @@
Выключить уведомления
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -501,6 +505,13 @@
Тут пока ничего нет
+
+ ContactSync
+
+
+ Невозможно синхронизировать ваши контакты с Телеграм.
+
+
CoverPage
@@ -1170,14 +1181,14 @@
Синхронизировать с Телеграм
-
-
- Невозможно синхронизировать ваши контакты с Телеграм.
-
Контакты успешно синхронизированы с Телеграм.
+
+
+
+
NotificationManager
@@ -1795,6 +1806,14 @@
Ваш телефон: +%1
+
+
+ Контакты успешно синхронизированы с Телеграм.
+
+
+
+ Синхронизировать с Телеграм
+
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 @@
Umlčať čet
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -501,6 +505,13 @@
Nemáte žiadne čety.
+
+ ContactSync
+
+
+ Nemožno synchonizovať kontakty s Telegramom.
+
+
CoverPage
@@ -1167,14 +1178,14 @@
Synchronizovať kontakty s Telegramom
-
-
- Nemožno synchonizovať kontakty s Telegramom.
-
Kontakty boli úspešne synchronizované s Telegramom.
+
+
+
+
NotificationManager
@@ -1792,6 +1803,14 @@
Telefónne číslo: +%1
+
+
+ Kontakty boli úspešne synchronizované s Telegramom.
+
+
+
+ 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 @@
Stäng av chatten
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
Du har inga chattar än.
+
+ ContactSync
+
+
+ Kunde inte synkronisera dina kontakter med Telegram.
+
+
CoverPage
@@ -1149,14 +1160,14 @@
Synkronisera kontakter med Telegram
-
-
- Kunde inte synkronisera dina kontakter med Telegram.
-
Kontakter synkroniserade med Telegram.
+
+
+
+
NotificationManager
@@ -1765,6 +1776,14 @@
Telefonnummer: +%1
+
+
+ Kontakter synkroniserade med 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 @@
静音对话
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -481,6 +485,13 @@
你还没有任何对话。
+
+ ContactSync
+
+
+ 无法同步你的云端 Telegram 联系人。
+
+
CoverPage
@@ -1132,14 +1143,14 @@
同步 Telegram 联系人
-
-
- 无法同步你的云端 Telegram 联系人。
-
已成功同步 Telegram 联系人。
+
+
+
+
NotificationManager
@@ -1739,6 +1750,14 @@
电话号码: +%1
+
+
+ 已成功同步 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
+
+
+
+
ChatInformationTabItemMembersGroups
@@ -491,6 +495,13 @@
You don't have any chats yet.
+
+ ContactSync
+
+
+
+
+
CoverPage
@@ -1150,11 +1161,11 @@
-
+
-
+
@@ -1765,6 +1776,14 @@
+
+
+
+
+
+
+
+
SponsoredMessage