1. 10 Oct, 2016 1 commit
  2. 20 Mar, 2016 1 commit
  3. 04 Mar, 2016 1 commit
  4. 30 Oct, 2015 1 commit
  5. 26 Aug, 2015 1 commit
  6. 24 Aug, 2015 1 commit
  7. 19 Aug, 2015 4 commits
  8. 06 Aug, 2015 1 commit
  9. 08 Apr, 2015 1 commit
    • chriadam's avatar
      [libcontacts] Run tests with privileges · 96732850
      chriadam authored
      The contact cache provided by libcontacts is intended for use by
      privileged applications only.  Its functionality does not make sense
      for non-privileged clients, and cannot be tested correctly when
      run in non-privileged mode.
      96732850
  10. 05 Mar, 2015 1 commit
    • mvogt's avatar
      [libcontacts] Some scripts imply name token ordering · f4c2e52e
      mvogt authored
      For a specific set of character scripts, if a contact's first and last
      names are entirely composed of that script, then that (most likely)
      implies a cultural ordering for given/family name tokens that should
      override the device setting.
      f4c2e52e
  11. 12 Feb, 2015 1 commit
    • Richard Braakman's avatar
      [performance] Avoid resolving addresses multiple times · 4bfe8804
      Richard Braakman authored
      Parts of commhistory (GroupManager) will send a stream of
      resolve requests with many duplicates. This used to be
      tolerable because requests were handled slowly in the
      event loop, but now that they have higher priority it has
      become a problem.
      
      I went for the simple solution of ignoring requests that
      are identical to still-active requests (same uids, same
      listener, same requireComplete flag). It's not optimal (we
      could combine more requests into the same backend query if we
      tried), but it solves the problem without adding a lot of
      bookkeeping.
      4bfe8804
  12. 04 Feb, 2015 1 commit
  13. 01 Dec, 2014 1 commit
  14. 21 Oct, 2014 1 commit
  15. 17 Oct, 2014 1 commit
    • Richard Braakman's avatar
      [performance] Schedule resolveAddress immediately · e2ab0615
      Richard Braakman authored
      resolveAddress requests are done with one query at a time, in
      order to correlate the results with the looked-up addresses.
      Doing them sequentially via UpdateRequest events added a lot
      of overhead in the form of coordination between threads.
      
      This commit creates a dedicated QContactFetchRequest for each
      resolveAddress call, so that the events for starting them can
      arrive all together in the backend thread and the events
      announcing the results can arrive all together in the UI thread.
      They will still be processed sequentially, but this change cuts
      out the delay between finishing one request and starting the next.
      
      In tests with 10k contacts and a recent contacts list with limit=20,
      this reduced the resolve time from 1s to 0.3s.
      e2ab0615
  16. 15 Oct, 2014 2 commits
  17. 17 Sep, 2014 1 commit
  18. 12 Sep, 2014 1 commit
    • Richard Braakman's avatar
      [libcontacts] make sure UpdateRequest processing continues · ff84e74f
      Richard Braakman authored
      The logic for scheduling UpdateRequest events broke down when
      m_contactsToAppend went empty during a fetch request; even though
      more contacts were coming in through contactsAvailable, no more
      UpdateRequest events would be scheduled until the whole request
      was complete.
      
      Fixed by making m_updatesPending the definitive flag for whether
      there is an UpdateRequest event on the queue, rather than leaving
      it on during the whole fetch request.
      
      This change is safe because the flag was only inspected by the
      requestUpdate() helper and had no side meanings. Now all
      UpdateRequest event scheduling goes through requestUpdate().
      ff84e74f
  19. 26 Aug, 2014 1 commit
  20. 31 Jul, 2014 1 commit
  21. 30 Jul, 2014 1 commit
  22. 19 Jun, 2014 3 commits
    • mvogt's avatar
      [libcontacts] Remove unnecessary sorting · 4eaf7126
      mvogt authored
      When sorting is not required, clear the sort property of the fetch
      request; the sorting does not cause errors, but results in unnecessary
      effort to process the query.
      4eaf7126
    • mvogt's avatar
      [libcontacts] Ensure search terms are trimmed · 4884893c
      mvogt authored
      When searching for merge candidates, trim the strings used as search
      tokens in case they contain problematic whitespace.
      4884893c
    • mvogt's avatar
      [libcontacts] Remove unnecessary sorting · 03168e5c
      mvogt authored
      When sorting is not required, clear the sort property of the fetch
      request; the sorting does not cause errors, but results in unnecessary
      effort to process the query.
      03168e5c
  23. 12 Jun, 2014 1 commit
  24. 27 May, 2014 1 commit
  25. 12 May, 2014 1 commit
  26. 24 Apr, 2014 1 commit
  27. 10 Apr, 2014 1 commit
  28. 10 Feb, 2014 1 commit
    • mvogt's avatar
      [libcontacts] Skip validation when normalizing numbers · f73cd4cd
      mvogt authored
      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.
      f73cd4cd
  29. 28 Jan, 2014 2 commits
  30. 15 Jan, 2014 1 commit
  31. 09 Jan, 2014 3 commits
    • mvogt's avatar
      [libcontacts] Append contacts in large batches · 82e2289f
      mvogt authored
      Batched append slows down the overall throughput, but is necessary
      to give interactivity during startup with huge contact counts. With
      10000 contacts, the penalty is less than 10% overall, and the app
      remains usable during the append period.
      82e2289f
    • mvogt's avatar
      [libcontacts] Update partial contact correctly · 9c48a0dd
      mvogt authored
      Using the nemomobile contacts engine, a partially fetched contact will
      always contain the detail types from the main contact table, even if
      they are not included in the detail mask.  Therefore, they should not
      be copied from the existing cache item if already present.
      9c48a0dd
    • mvogt's avatar
      [libcontacts] Improve separation between request initiation and other processing · 76227c6b
      mvogt authored
      We should start requests as early as possible, and other tasks can be
      processed whenever we are unable to start new requests.
      76227c6b