Skip to content

Commit

Permalink
[buteo-sync-plugins-social] Remove stale / old codepaths
Browse files Browse the repository at this point in the history
Each sync profile which gets triggered is for a particular account.
This commit removes the (old, stale) code which is related to the
no-longer-supported template profiles.  This commit also removes
the now-unused one-way google contacts sync adaptor.
  • Loading branch information
chriadam committed Jan 9, 2015
1 parent a3d95f8 commit ba56c46
Show file tree
Hide file tree
Showing 37 changed files with 171 additions and 1,114 deletions.
4 changes: 2 additions & 2 deletions src/common/socialdbuteoplugin.cpp
Expand Up @@ -201,8 +201,8 @@ bool SocialdButeoPlugin::cleanUp()
}

if (m_socialNetworkSyncAdaptor && m_profileAccountId > 0) {
m_socialNetworkSyncAdaptor->purgeDataForOldAccounts(QList<int>() << m_profileAccountId,
SocialNetworkSyncAdaptor::CleanUpPurge);
m_socialNetworkSyncAdaptor->purgeDataForOldAccount(m_profileAccountId,
SocialNetworkSyncAdaptor::CleanUpPurge);
}

return true;
Expand Down
71 changes: 8 additions & 63 deletions src/common/socialnetworksyncadaptor.cpp
Expand Up @@ -63,9 +63,9 @@ SocialNetworkSyncAdaptor::SocialNetworkSyncAdaptor(const QString &serviceName,
SocialNetworkSyncAdaptor::DataType dataType,
QObject *parent)
: QObject(parent)
, dataType(dataType)
, accountManager(new Accounts::Manager(this))
, networkAccessManager(new SocialdNetworkAccessManager(this))
, m_dataType(dataType)
, m_accountManager(new Accounts::Manager(this))
, m_networkAccessManager(new SocialdNetworkAccessManager(this))
, m_accountSyncProfile(NULL)
, m_syncDb(new SocialNetworkSyncDatabase())
, m_status(SocialNetworkSyncAdaptor::Invalid)
Expand All @@ -83,15 +83,7 @@ SocialNetworkSyncAdaptor::~SocialNetworkSyncAdaptor()
void SocialNetworkSyncAdaptor::setAccountSyncProfile(Buteo::SyncProfile* perAccountSyncProfile)
{
delete m_accountSyncProfile;
m_accountSyncProfile = NULL;

if (perAccountSyncProfile) { // can be null if template sync profile was triggered.
if (perAccountSyncProfile->key(Buteo::KEY_ACCOUNT_ID).toInt() > 0) {
m_accountSyncProfile = perAccountSyncProfile;
} else {
qWarning() << Q_FUNC_INFO << "sync profile is not per-account profile:" << perAccountSyncProfile->name();
}
}
m_accountSyncProfile = perAccountSyncProfile;
}

SocialNetworkSyncAdaptor::Status SocialNetworkSyncAdaptor::status() const
Expand All @@ -116,53 +108,6 @@ void SocialNetworkSyncAdaptor::sync(const QString &dataType, int accountId)
SOCIALD_LOG_ERROR("sync() must be overridden by derived types");
}

void SocialNetworkSyncAdaptor::checkAccounts(SocialNetworkSyncAdaptor::DataType dataType, QList<int> *newIds, QList<int> *purgeIds, QList<int> *updateIds)
{
QList<int> knownIds = syncedAccounts(SocialNetworkSyncAdaptor::dataTypeName(dataType));
QList<uint> currentAUIds = accountManager->accountList();
QList<int> currentIds;
foreach (uint auid, currentAUIds) {
currentIds.append(static_cast<int>(auid));
}
SOCIALD_LOG_DEBUG("have found" << currentIds.size() <<
"accounts which support a sync service; determining old/new/update sets...");

foreach (int currId, currentIds) {
Accounts::Account *act = accountManager->account(currId);
if (!act || act->services().size() <= 0 || act->providerName() != m_serviceName) {
SOCIALD_LOG_DEBUG("account" << currId << "does not support service" << m_serviceName << "- ignoring.");
continue; // not same account provider as m_serviceName. Ignore it.
}

// we have a valid account with the provider
// we need to determine whether it is either:
// - new account
// - account needing update
// - disabled account (neither sync nor purge)
if (act->enabled() && checkAccount(act)) {
if (knownIds.contains(currId)) {
// existing account needing update sync
knownIds.removeAll(currId);
updateIds->append(currId);
} else {
// new account needing first-time sync
newIds->append(currId);
}
} else {
// disabled, or disabled with this type of data sync
// we neither purge nor sync this account.
knownIds.removeAll(currId);
SOCIALD_LOG_DEBUG("account" << currId << "is disabled for" <<
m_serviceName << dataTypeName(dataType) << "sync.");
}
}

// anything left in knownIds must belong to an old, removed account.
foreach (int id, knownIds) {
purgeIds->append(id);
}
}

/*!
* \brief SocialNetworkSyncAdaptor::checkAccount
* \param account
Expand All @@ -174,11 +119,11 @@ void SocialNetworkSyncAdaptor::checkAccounts(SocialNetworkSyncAdaptor::DataType
bool SocialNetworkSyncAdaptor::checkAccount(Accounts::Account *account)
{
bool globallyEnabled = account->enabled();
Accounts::Service srv(accountManager->service(syncServiceName()));
Accounts::Service srv(m_accountManager->service(syncServiceName()));
if (!srv.isValid()) {
SOCIALD_LOG_INFO("invalid service" << syncServiceName() <<
"specified, account" << account->id() <<
"will be disabled for" << m_serviceName << dataTypeName(dataType) << "sync");
"will be disabled for" << m_serviceName << dataTypeName(m_dataType) << "sync");
return false;
}
account->selectService(srv);
Expand Down Expand Up @@ -300,7 +245,7 @@ void SocialNetworkSyncAdaptor::setInitialActive(bool enabled)
void SocialNetworkSyncAdaptor::setFinishedInactive()
{
finalCleanup();
SOCIALD_LOG_INFO("Finished" << m_serviceName << SocialNetworkSyncAdaptor::dataTypeName(dataType) <<
SOCIALD_LOG_INFO("Finished" << m_serviceName << SocialNetworkSyncAdaptor::dataTypeName(m_dataType) <<
"sync at:" << QDateTime::currentDateTime().toString(Qt::ISODate));
setStatus(SocialNetworkSyncAdaptor::Inactive);
}
Expand Down Expand Up @@ -342,7 +287,7 @@ void SocialNetworkSyncAdaptor::decrementSemaphore(int accountId)
// finished all outstanding sync requests for this account.
// update the sync time in the global sociald database.
updateLastSyncTimestamp(m_serviceName,
SocialNetworkSyncAdaptor::dataTypeName(dataType), accountId,
SocialNetworkSyncAdaptor::dataTypeName(m_dataType), accountId,
QDateTime::currentDateTime().toTimeSpec(Qt::UTC));

// if all outstanding requests for all accounts have finished,
Expand Down
9 changes: 4 additions & 5 deletions src/common/socialnetworksyncadaptor.h
Expand Up @@ -87,9 +87,8 @@ class SocialNetworkSyncAdaptor : public QObject
Status status() const;
bool enabled() const;
QString serviceName() const;
void checkAccounts(SocialNetworkSyncAdaptor::DataType dataType, QList<int> *newIds, QList<int> *purgeIds, QList<int> *updateIds);
virtual void sync(const QString &dataType, int accountId = 0);
virtual void purgeDataForOldAccounts(const QList<int> &accountIds, PurgeMode mode = SyncPurge) = 0;
virtual void purgeDataForOldAccount(int accountId, PurgeMode mode = SyncPurge) = 0;

Q_SIGNALS:
void statusChanged();
Expand Down Expand Up @@ -120,9 +119,9 @@ class SocialNetworkSyncAdaptor : public QObject
static QJsonObject parseJsonObjectReplyData(const QByteArray &replyData, bool *ok);
static QJsonArray parseJsonArrayReplyData(const QByteArray &replyData, bool *ok);

const SocialNetworkSyncAdaptor::DataType dataType;
Accounts::Manager * const accountManager;
QNetworkAccessManager * const networkAccessManager;
const SocialNetworkSyncAdaptor::DataType m_dataType;
Accounts::Manager * const m_accountManager;
QNetworkAccessManager * const m_networkAccessManager;
Buteo::SyncProfile *m_accountSyncProfile;

protected Q_SLOTS:
Expand Down
44 changes: 21 additions & 23 deletions src/facebook/facebook-calendars/facebookcalendarsyncadaptor.cpp
Expand Up @@ -96,7 +96,7 @@ void FacebookCalendarSyncAdaptor::finalCleanup()
if (!ghostEventCleanupPerformed()) {
// Delete any events which are not associated with a notebook.
// These events are ghost events, caused by a bug which previously
// existed in the purgeDataForOldAccounts code.
// existed in the purgeDataForOldAccount code.
// The mkcal API doesn't allow us to determine which notebook a
// given incidence belongs to, so we have to instead load
// everything and then find the ones which are ophaned.
Expand Down Expand Up @@ -129,7 +129,7 @@ void FacebookCalendarSyncAdaptor::finalCleanup()
m_storage->close();
}

void FacebookCalendarSyncAdaptor::purgeDataForOldAccounts(const QList<int> &oldIds, SocialNetworkSyncAdaptor::PurgeMode mode)
void FacebookCalendarSyncAdaptor::purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode mode)
{
if (mode == SocialNetworkSyncAdaptor::CleanUpPurge) {
// we need to initialise the storage
Expand All @@ -138,28 +138,26 @@ void FacebookCalendarSyncAdaptor::purgeDataForOldAccounts(const QList<int> &oldI
}

// We clean all the entries in the calendar
foreach (int accountId, oldIds) {
foreach (mKCal::Notebook::Ptr notebook, m_storage->notebooks()) {
if (notebook->pluginName() == QLatin1String(FACEBOOK)
&& notebook->account() == QString::number(accountId)) {
notebook->setIsReadOnly(false);
m_storage->loadNotebookIncidences(notebook->uid());
KCalCore::Incidence::List allIncidences;
m_storage->allIncidences(&allIncidences, notebook->uid());
foreach (const KCalCore::Incidence::Ptr incidence, allIncidences) {
m_calendar->deleteIncidence(m_calendar->incidence(incidence->uid()));
}
m_storage->deleteNotebook(notebook);
m_storageNeedsSave = true;
foreach (mKCal::Notebook::Ptr notebook, m_storage->notebooks()) {
if (notebook->pluginName() == QLatin1String(FACEBOOK)
&& notebook->account() == QString::number(oldId)) {
notebook->setIsReadOnly(false);
m_storage->loadNotebookIncidences(notebook->uid());
KCalCore::Incidence::List allIncidences;
m_storage->allIncidences(&allIncidences, notebook->uid());
foreach (const KCalCore::Incidence::Ptr incidence, allIncidences) {
m_calendar->deleteIncidence(m_calendar->incidence(incidence->uid()));
}
m_storage->deleteNotebook(notebook);
m_storageNeedsSave = true;
}

// Clean the database
m_db.removeEvents(accountId);
m_db.sync(accountId);
m_db.wait();
}

// Clean the database
m_db.removeEvents(oldId);
m_db.sync(oldId);
m_db.wait();

if (mode == SocialNetworkSyncAdaptor::CleanUpPurge) {
// and commit any changes made.
finalCleanup();
Expand Down Expand Up @@ -200,7 +198,7 @@ void FacebookCalendarSyncAdaptor::requestEvents(int accountId, const QString &ac
QUrlQuery query(url);
query.setQueryItems(queryItems);
url.setQuery(query);
QNetworkReply *reply = networkAccessManager->get(QNetworkRequest(url));
QNetworkReply *reply = m_networkAccessManager->get(QNetworkRequest(url));

if (reply) {
reply->setProperty("accountId", accountId);
Expand Down Expand Up @@ -278,7 +276,7 @@ void FacebookCalendarSyncAdaptor::finishedHandler()
notebook->setPluginName(QLatin1String(FACEBOOK));
notebook->setAccount(QString::number(accountId));
notebook->setColor(QLatin1String(FACEBOOK_COLOR));
notebook->setDescription(accountManager->account(accountId)->displayName());
notebook->setDescription(m_accountManager->account(accountId)->displayName());
notebook->setIsReadOnly(true);
m_storage->addNotebook(notebook);
m_storageNeedsSave = true;
Expand All @@ -287,7 +285,7 @@ void FacebookCalendarSyncAdaptor::finishedHandler()
bool changed = false;

if (notebook->description().isEmpty()) {
notebook->setDescription(accountManager->account(accountId)->displayName());
notebook->setDescription(m_accountManager->account(accountId)->displayName());
changed = true;
}

Expand Down
4 changes: 2 additions & 2 deletions src/facebook/facebook-calendars/facebookcalendarsyncadaptor.h
Expand Up @@ -39,10 +39,10 @@ class FacebookCalendarSyncAdaptor
~FacebookCalendarSyncAdaptor();

QString syncServiceName() const;
void sync(const QString &dataTypeString, int accountId = 0);
void sync(const QString &dataTypeString, int accountId);

protected: // implementing FacebookDataTypeSyncAdaptor interface
void purgeDataForOldAccounts(const QList<int> &oldIds, SocialNetworkSyncAdaptor::PurgeMode mode);
void purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode mode);
void beginSync(int accountId, const QString &accessToken);
void finalCleanup();

Expand Down
15 changes: 6 additions & 9 deletions src/facebook/facebook-contacts/facebookcontactsyncadaptor.cpp
Expand Up @@ -58,7 +58,7 @@
#define SOCIALD_FACEBOOK_CONTACTS_ID_PREFIX QLatin1String("facebook-contacts-")
#define SOCIALD_FACEBOOK_CONTACTS_GROUPNAME QLatin1String("sociald-sync-facebook-contacts")
#define SOCIALD_FACEBOOK_CONTACTS_SYNCTARGET QLatin1String("facebook")
#define SOCIALD_FACEBOOK_CONTACTS_AVATAR_FILENAME(fbFriendId, avatarType) QString("%1/%2/%3-%4.jpg").arg(QLatin1String(PRIVILEGED_DATA_DIR)).arg(SocialNetworkSyncAdaptor::dataTypeName(dataType)).arg(fbFriendId).arg(avatarType)
#define SOCIALD_FACEBOOK_CONTACTS_AVATAR_FILENAME(fbFriendId, avatarType) QString("%1/%2/%3-%4.jpg").arg(QLatin1String(PRIVILEGED_DATA_DIR)).arg(SocialNetworkSyncAdaptor::dataTypeName(m_dataType)).arg(fbFriendId).arg(avatarType)
#define SOCIALD_FACEBOOK_CONTACTS_AVATAR_BATCHSIZE 20

static const char *WHICH_FIELDS = "name,first_name,middle_name,last_name,link,website,"\
Expand Down Expand Up @@ -196,12 +196,9 @@ void FacebookContactSyncAdaptor::sync(const QString &dataTypeString, int account
FacebookDataTypeSyncAdaptor::sync(dataTypeString, accountId);
}

void FacebookContactSyncAdaptor::purgeDataForOldAccounts(const QList<int> &purgeIds, SocialNetworkSyncAdaptor::PurgeMode)
void FacebookContactSyncAdaptor::purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode)
{
foreach (int pid, purgeIds) {
// first, purge all data from QtContacts and also our cache db.
purgeAccount(pid);
}
purgeAccount(oldId);
}

void FacebookContactSyncAdaptor::beginSync(int accountId, const QString &accessToken)
Expand Down Expand Up @@ -247,7 +244,7 @@ void FacebookContactSyncAdaptor::requestData(int accountId, const QString &acces
url.setQuery(query);
}

QNetworkReply *reply = networkAccessManager->get(QNetworkRequest(url));
QNetworkReply *reply = m_networkAccessManager->get(QNetworkRequest(url));

if (reply) {
reply->setProperty("accountId", accountId);
Expand Down Expand Up @@ -982,12 +979,12 @@ void FacebookContactSyncAdaptor::finalCleanup()
QList<int> facebookAccountIds;
QList<int> purgeAccountIds;
QList<int> currentAccountIds;
QList<uint> uaids = accountManager->accountList();
QList<uint> uaids = m_accountManager->accountList();
foreach (uint uaid, uaids) {
currentAccountIds.append(static_cast<int>(uaid));
}
foreach (int currId, currentAccountIds) {
Accounts::Account *act = accountManager->account(currId);
Accounts::Account *act = m_accountManager->account(currId);
if (act) {
if (act->providerName() == QString(QLatin1String("facebook")) && checkAccount(act)) {
facebookAccountIds.append(currId);
Expand Down
4 changes: 2 additions & 2 deletions src/facebook/facebook-contacts/facebookcontactsyncadaptor.h
Expand Up @@ -51,10 +51,10 @@ class FacebookContactSyncAdaptor : public FacebookDataTypeSyncAdaptor
~FacebookContactSyncAdaptor();

QString syncServiceName() const;
void sync(const QString &dataTypeString, int accountId = 0);
void sync(const QString &dataTypeString, int accountId);

protected: // implementing FacebookDataTypeSyncAdaptor interface
void purgeDataForOldAccounts(const QList<int> &oldIds, SocialNetworkSyncAdaptor::PurgeMode mode);
void purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode mode);
void beginSync(int accountId, const QString &accessToken);
void finalize(int accountId);
void finalCleanup();
Expand Down
11 changes: 4 additions & 7 deletions src/facebook/facebook-images/facebookimagesyncadaptor.cpp
Expand Up @@ -74,12 +74,9 @@ void FacebookImageSyncAdaptor::sync(const QString &dataTypeString, int accountId
FacebookDataTypeSyncAdaptor::sync(dataTypeString, accountId);
}

void FacebookImageSyncAdaptor::purgeDataForOldAccounts(const QList<int> &purgeIds, SocialNetworkSyncAdaptor::PurgeMode)
void FacebookImageSyncAdaptor::purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode)
{
foreach (int pid, purgeIds) {
// first, purge the data from our database + our cache directory
m_db.purgeAccount(pid);
}
m_db.purgeAccount(oldId);
m_db.commit();
m_db.wait();
}
Expand Down Expand Up @@ -137,7 +134,7 @@ void FacebookImageSyncAdaptor::requestData(int accountId,
url.setQuery(query);
}

QNetworkReply *reply = networkAccessManager->get(QNetworkRequest(url));
QNetworkReply *reply = m_networkAccessManager->get(QNetworkRequest(url));
if (reply) {
reply->setProperty("accountId", accountId);
reply->setProperty("accessToken", accessToken);
Expand Down Expand Up @@ -391,7 +388,7 @@ void FacebookImageSyncAdaptor::possiblyAddNewUser(const QString &fbUserId, int a
QUrlQuery query(url);
query.setQueryItems(queryItems);
url.setQuery(query);
QNetworkReply *reply = networkAccessManager->get(QNetworkRequest(url));
QNetworkReply *reply = m_networkAccessManager->get(QNetworkRequest(url));
if (reply) {
reply->setProperty("accountId", accountId);
reply->setProperty("accessToken", accessToken);
Expand Down
4 changes: 2 additions & 2 deletions src/facebook/facebook-images/facebookimagesyncadaptor.h
Expand Up @@ -46,10 +46,10 @@ class FacebookImageSyncAdaptor
~FacebookImageSyncAdaptor();

QString syncServiceName() const;
void sync(const QString &dataTypeString, int accountId = 0);
void sync(const QString &dataTypeString, int accountId);

protected: // implementing FacebookDataTypeSyncAdaptor interface
void purgeDataForOldAccounts(const QList<int> &oldIds, SocialNetworkSyncAdaptor::PurgeMode mode);
void purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode mode);
void beginSync(int accountId, const QString &accessToken);
void finalize(int accountId);

Expand Down
Expand Up @@ -43,15 +43,11 @@ QString FacebookNotificationSyncAdaptor::syncServiceName() const
return QStringLiteral("facebook-microblog");
}

void FacebookNotificationSyncAdaptor::purgeDataForOldAccounts(const QList<int> &purgeIds, SocialNetworkSyncAdaptor::PurgeMode)
void FacebookNotificationSyncAdaptor::purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode)
{
if (purgeIds.size()) {
foreach (int accountIdentifier, purgeIds) {
m_db.removeNotifications(accountIdentifier);
}
m_db.sync();
m_db.wait();
}
m_db.removeNotifications(oldId);
m_db.sync();
m_db.wait();
}

void FacebookNotificationSyncAdaptor::beginSync(int accountId, const QString &accessToken)
Expand Down Expand Up @@ -93,7 +89,7 @@ void FacebookNotificationSyncAdaptor::requestNotifications(int accountId, const
QUrlQuery query(url);
query.setQueryItems(queryItems);
url.setQuery(query);
QNetworkReply *reply = networkAccessManager->get(QNetworkRequest(url));
QNetworkReply *reply = m_networkAccessManager->get(QNetworkRequest(url));

if (reply) {
reply->setProperty("accountId", accountId);
Expand Down
Expand Up @@ -38,7 +38,7 @@ class FacebookNotificationSyncAdaptor : public FacebookDataTypeSyncAdaptor
QString syncServiceName() const;

protected: // implementing FacebookDataTypeSyncAdaptor interface
void purgeDataForOldAccounts(const QList<int> &oldIds, SocialNetworkSyncAdaptor::PurgeMode mode);
void purgeDataForOldAccount(int oldId, SocialNetworkSyncAdaptor::PurgeMode mode);
void beginSync(int accountId, const QString &accessToken);
void finalize(int accountId);

Expand Down

0 comments on commit ba56c46

Please sign in to comment.