Skip to content

Commit

Permalink
[nemo-qml-plugin-contacts] Enable the use of region codes for phone n…
Browse files Browse the repository at this point in the history
…umber resolution. Contributes to JB#38835
  • Loading branch information
Timur Kristóf committed Sep 2, 2019
1 parent c4b5474 commit 42455b1
Show file tree
Hide file tree
Showing 6 changed files with 22 additions and 6 deletions.
9 changes: 8 additions & 1 deletion src/seasidefilteredmodel.cpp
Expand Up @@ -825,7 +825,14 @@ SeasidePerson *SeasideFilteredModel::personById(int id) const

SeasidePerson *SeasideFilteredModel::personByPhoneNumber(const QString &number, bool requireComplete) const
{
return personFromItem(SeasideCache::itemByPhoneNumber(number, requireComplete));
qWarning() << Q_FUNC_INFO << "calling this function without a region code is deprecated";

return personByPhoneNumber(number, QString(), requireComplete);
}

SeasidePerson *SeasideFilteredModel::personByPhoneNumber(const QString &number, const QString &regionCode, bool requireComplete) const
{
return personFromItem(SeasideCache::itemByPhoneNumber(number, regionCode, requireComplete));
}

SeasidePerson *SeasideFilteredModel::personByEmailAddress(const QString &email, bool requireComplete) const
Expand Down
1 change: 1 addition & 0 deletions src/seasidefilteredmodel.h
Expand Up @@ -149,6 +149,7 @@ class SeasideFilteredModel : public SeasideCache::ListModel
Q_INVOKABLE SeasidePerson *personByRow(int row) const;
Q_INVOKABLE SeasidePerson *personById(int id) const;
Q_INVOKABLE SeasidePerson *personByPhoneNumber(const QString &number, bool requireComplete = true) const;
Q_INVOKABLE SeasidePerson *personByPhoneNumber(const QString &number, const QString &regionCode, bool requireComplete = true) const;
Q_INVOKABLE SeasidePerson *personByEmailAddress(const QString &email, bool requireComplete = true) const;
Q_INVOKABLE SeasidePerson *personByOnlineAccount(const QString &localUid, const QString &remoteUid, bool requireComplete = true) const;
Q_INVOKABLE SeasidePerson *selfPerson() const;
Expand Down
9 changes: 8 additions & 1 deletion src/seasideperson.cpp
Expand Up @@ -2147,11 +2147,18 @@ void SeasidePerson::fetchMergeCandidates()
}

void SeasidePerson::resolvePhoneNumber(const QString &number, bool requireComplete)
{
qWarning() << Q_FUNC_INFO << "calling this function without a region code is deprecated";

resolvePhoneNumber(number, QString(), requireComplete);
}

void SeasidePerson::resolvePhoneNumber(const QString &number, const QString &regionCode, bool requireComplete)
{
mResolving = true;
emit resolvingChanged();

if (SeasideCache::CacheItem *item = SeasideCache::resolvePhoneNumber(this, number, requireComplete)) {
if (SeasideCache::CacheItem *item = SeasideCache::resolvePhoneNumber(this, number, regionCode, requireComplete)) {
// TODO: should this be invoked async?
addressResolved(QString(), number, item);
}
Expand Down
1 change: 1 addition & 0 deletions src/seasideperson.h
Expand Up @@ -323,6 +323,7 @@ class SeasidePerson
Q_INVOKABLE void fetchMergeCandidates();

Q_INVOKABLE void resolvePhoneNumber(const QString &number, bool requireComplete = true);
Q_INVOKABLE void resolvePhoneNumber(const QString &number, const QString &regionCode, bool requireComplete = true);
Q_INVOKABLE void resolveEmailAddress(const QString &address, bool requireComplete = true);
Q_INVOKABLE void resolveOnlineAccount(const QString &localUid, const QString &remoteUid, bool requireComplete = true);

Expand Down
4 changes: 2 additions & 2 deletions tests/tst_seasidefilteredmodel/seasidecache.cpp
Expand Up @@ -325,7 +325,7 @@ void SeasideCache::refreshContact(CacheItem *)
{
}

SeasideCache::CacheItem *SeasideCache::itemByPhoneNumber(const QString &, bool)
SeasideCache::CacheItem *SeasideCache::itemByPhoneNumber(const QString &, const QString &, bool)
{
return 0;
}
Expand All @@ -340,7 +340,7 @@ SeasideCache::CacheItem *SeasideCache::itemByOnlineAccount(const QString &, cons
return 0;
}

SeasideCache::CacheItem *SeasideCache::resolvePhoneNumber(ResolveListener *, const QString &, bool)
SeasideCache::CacheItem *SeasideCache::resolvePhoneNumber(ResolveListener *, const QString &, const QString &, bool)
{
// TODO: implement and test these functions
return 0;
Expand Down
4 changes: 2 additions & 2 deletions tests/tst_seasidefilteredmodel/seasidecache.h
Expand Up @@ -181,11 +181,11 @@ class SeasideCache : public QObject
static void ensureCompletion(CacheItem *cacheItem);
static void refreshContact(CacheItem *cacheItem);

static CacheItem *itemByPhoneNumber(const QString &number, bool requireComplete = true);
static CacheItem *itemByPhoneNumber(const QString &number, const QString &regionCode, bool requireComplete = true);
static CacheItem *itemByEmailAddress(const QString &email, bool requireComplete = true);
static CacheItem *itemByOnlineAccount(const QString &localUid, const QString &remoteUid, bool requireComplete = true);

static CacheItem *resolvePhoneNumber(ResolveListener *listener, const QString &msisdn, bool requireComplete = true);
static CacheItem *resolvePhoneNumber(ResolveListener *listener, const QString &msisdn, const QString &regionCode, bool requireComplete = true);
static CacheItem *resolveEmailAddress(ResolveListener *listener, const QString &email, bool requireComplete = true);
static CacheItem *resolveOnlineAccount(ResolveListener *listener, const QString &localUid, const QString &remoteUid, bool requireComplete = true);

Expand Down

0 comments on commit 42455b1

Please sign in to comment.