Skip to content
This repository has been archived by the owner on Sep 4, 2021. It is now read-only.
Permalink

Comparing changes

Choose two branches to see what’s changed or to start a new pull request. If you need to, you can also or learn more about diff comparisons.

Open a pull request

Create a new pull request by comparing changes across two branches. If you need to, you can also . Learn more about diff comparisons here.
base repository: sailfishos/libcontacts
base: cdf40120084b86fe98842fa7b81e6c6f59881acd
Choose a base ref
...
head repository: sailfishos/libcontacts
compare: 06adaa5129922130922b41e4b4e0237b27496e22
Choose a head ref
  • 5 commits
  • 6 files changed
  • 2 contributors

Commits on Jan 29, 2020

  1. [libcontacts] Filter out false positive matches even if there is only…

    … one query result. Contributes to JB#38835
    Timur Kristóf committed Jan 29, 2020
    Copy the full SHA
    1283203 View commit details
    Browse the repository at this point in the history
  2. [libcontacts] Store the normalized number in cache. Contributes to JB…

    …#38835
    Timur Kristóf committed Jan 29, 2020
    Copy the full SHA
    2df678a View commit details
    Browse the repository at this point in the history

Commits on Feb 4, 2020

  1. [libcontacts] Use libphonenumber for number matching. Contributes to …

    …JB#38835
    
    This commit yields a significant improvement to how our phone number
    matching works. It gets rid of a lot of false positive matches.
    
    Previously we used a "minimized" number which we stored in the cache
    and used for matching. This lead to false positives between numbers
    for which the "minimized" number was the same when the full wasn't,
    for example when the area code of the number differs in only one digit.
    
    Examples of solved false positive matches:
    "+36 20 123 4567" and "+36 30 123 4567" were matched incorrectly.
    "+36 20 123 4567" and "+44 20 123 4567" were matched incorrectly.
    
    The new approach is to cache the full phone number and perform the
    matching between the full numbers using libphonenumber, which has
    a quite resilient algorithm for this. Local numbers and
    international direct dial (IDD) are still matched:
    
    Examples of local and IDD numbers that still work:
    "+36 20 123 4567" still matches "06 20 123 4567" (local)
    "+36 20 123 4567" still matches "00 36 70 381 0581" (IID)
    
    Limitations:
    We currently do NOT pass a default region code to libphonenumber,
    which means that some false positives can still occour in edge
    cases when a country code would be required to distinguish between
    the two numbers. This only happens when some numbers are supplied
    in a non-international format.
    
    Examples of remaining false positives:
    "06 20 123 4567" is a false positive match of "+1 0620 123 4567"
    "00 36 20 123 4567" is a false positive match of "+1 00 36 20 123 4567"
    
    We deem that the remaining false positives are unlikely enough that
    they don't matter in practice. If this becomes relevant, we will need
    to make it possible to pass a region code to the matching algorithm.
    Timur Kristóf committed Feb 4, 2020
    Copy the full SHA
    cdb0005 View commit details
    Browse the repository at this point in the history
  2. [libcontacts] Add test cases for new number matching. Contributes to …

    …JB#38835
    Timur Kristóf committed Feb 4, 2020
    Copy the full SHA
    2f6013c View commit details
    Browse the repository at this point in the history

Commits on Feb 7, 2020

  1. Merge branch 'phonenumbermatch-jb38835' into 'master'

    More robust phone number matching using libphonenumber
    
    See merge request mer-core/libcontacts!15
    Venemo committed Feb 7, 2020
    Copy the full SHA
    06adaa5 View commit details
    Browse the repository at this point in the history