From f73cd4cd77bc0b2105e9177d3ee9f98d2c2ca361 Mon Sep 17 00:00:00 2001 From: Matt Vogt Date: Sun, 9 Feb 2014 17:00:38 -0800 Subject: [PATCH] [libcontacts] Skip validation when normalizing numbers In most cases, there is no benefit to validating numbers as they are normalized, since the data has come from the system. Validation of data already present in the system is counterproductive since it can cause us not to process some details. --- src/seasidecache.cpp | 15 ++++++++------- src/seasidecache.h | 4 ++-- 2 files changed, 10 insertions(+), 9 deletions(-) diff --git a/src/seasidecache.cpp b/src/seasidecache.cpp index 8cd4a23..8ffc615 100644 --- a/src/seasidecache.cpp +++ b/src/seasidecache.cpp @@ -1241,22 +1241,23 @@ QUrl SeasideCache::filteredAvatarUrl(const QContact &contact, const QStringList return QUrl(); } -QString SeasideCache::normalizePhoneNumber(const QString &input) +QString SeasideCache::normalizePhoneNumber(const QString &input, bool validate) { - const QtContactsSqliteExtensions::NormalizePhoneNumberFlags normalizeFlags(QtContactsSqliteExtensions::KeepPhoneNumberDialString | - QtContactsSqliteExtensions::ValidatePhoneNumber); + QtContactsSqliteExtensions::NormalizePhoneNumberFlags normalizeFlags(QtContactsSqliteExtensions::KeepPhoneNumberDialString); + if (validate) { + // If the number if not valid, return empty + normalizeFlags |= QtContactsSqliteExtensions::ValidatePhoneNumber; + } - // If the number if not valid, return null return QtContactsSqliteExtensions::normalizePhoneNumber(input, normalizeFlags); } -QString SeasideCache::minimizePhoneNumber(const QString &input) +QString SeasideCache::minimizePhoneNumber(const QString &input, bool validate) { // TODO: use a configuration variable to make this configurable const int maxCharacters = QtContactsSqliteExtensions::DefaultMaximumPhoneNumberCharacters; - // If the number if not valid, return null - QString validated(normalizePhoneNumber(input)); + QString validated(normalizePhoneNumber(input, validate)); if (validated.isNull()) return validated; diff --git a/src/seasidecache.h b/src/seasidecache.h index 6fa6070..246ec54 100644 --- a/src/seasidecache.h +++ b/src/seasidecache.h @@ -326,8 +326,8 @@ class CONTACTCACHE_EXPORT SeasideCache : public QObject static QString generateDisplayLabelFromNonNameDetails(const QContact &contact); static QUrl filteredAvatarUrl(const QContact &contact, const QStringList &metadataFragments = QStringList()); - static QString normalizePhoneNumber(const QString &input); - static QString minimizePhoneNumber(const QString &input); + static QString normalizePhoneNumber(const QString &input, bool validate = false); + static QString minimizePhoneNumber(const QString &input, bool validate = false); bool event(QEvent *event);