facebook contacts sync #1

Closed
wants to merge 567 commits into
from
This pull request is big! We’re only showing the most recent 250 commits.
Commits on Jul 8, 2011
  1. Provider implementation of stream item API.

    Daniel Lehmann committed Jul 8, 2011
    The following URIs are supported:
    contacts/#/stream_items (query stream items by contact ID)
    contacts/lookup/*/stream_items (query stream items by lookup key)
    contacts/lookup/*/#/stream_items (query stream items by both)
    raw_contacts/#/stream_items (query/insert stream items by raw contact ID)
    stream_items (query/insert/update/delete stream items)
    stream_items/photo (query/insert/update stream items)
    stream_items/# (query/update/delete stream items by ID)
    stream_items/#/photo (query/insert/delete stream item photos)
    stream_items/#/photo/# (query/update/delete stream item photos by IDs)
    stream_items_limit (query limits for stream items and photos)
    
    Change-Id: Ice433c53e18087e5e6295ad9a112062d44b12dd2
  2. VoicemailStatus content provider implementation.

    Debashish Chatterjee committed Jul 6, 2011
    - New Voicemail.Delegate implementation for voicemail_status table.
    - modified openFile() interface to simplify the interaction.
    - UridData now has a getWhereClause() method that can be used by both
      the tables to set selection clause based on the uriData.
    - Imrpoved permission checks for ContentValues for
      update/insert/bulkinsert operations.
    
    Bug:4968719
    
    Change-Id: I6a6173c58d9929ef952c7d7e95afb8bc5ff4157b
  3. Merge "VoicemailStatus content provider implementation."

    Debashish Chatterjee committed with Android (Google) Code Review Jul 8, 2011
Commits on Jul 11, 2011
  1. Remove restricted white-listing

    Daniel Lehmann committed Jul 11, 2011
    Bug:4974334
    Change-Id: I4dd95089774373d2b67d7e14dc6b7fc40a92d094
Commits on Jul 12, 2011
  1. Allow a sync adapter to provide an OPEN action for a group

    Daniel Lehmann committed Jul 12, 2011
    Bug:4413120
    Change-Id: I798b586acd200f0713c59f75b2815ce22e8a9c86
Commits on Jul 14, 2011
  1. Large photo storage.

    Dave Santoro committed Jun 27, 2011
    This change adds support for storing large photos for contacts in the
    file system.  Large photos passed to the provider will be downscaled
    and re-encoded as JPEGs before being stored in the usual data BLOB
    field (for the thumbnail) and in the photo store (for the display
    photo).
    
    See go/large-photo-design for details.
    
    Change-Id: I26a69ac2ccba631962a3ac5c83edb3f45d7cfc7f
  2. Fix the tests

    Daniel Lehmann committed Jul 14, 2011
    Bug:4413120
    Change-Id: I796dc50d8e3e978098869fcb7fccd597a84c2e4a
  3. Merge "Large photo storage."

    Dave Santoro committed with Android (Google) Code Review Jul 14, 2011
  4. Fix issue with profile checks during updateData().

    Dave Santoro committed Jul 14, 2011
    We were doing a query with profiles included to determine the set of
    items to update, but that triggers a permission error if the calling
    app doesn't have READ_PROFILE permission (even if the rows being
    updated don't affect the profile).
    
    Bug 5028891
    
    Change-Id: Id16d31d5d9d62dea2e62709c6ac03c1562a64438
Commits on Jul 15, 2011
  1. Update profile enforcement checks to require a DB.

    Dave Santoro committed Jul 15, 2011
    In most cases, mDb would be set by the time a profile check was first
    made, but if the first check is a query, it won't be set.  So pass in
    the database for initialization on all enforcement calls.
    
    Bug 5032229
    
    Change-Id: I5bde0d9ac54522483a09fb174f22b06a4582b3a5
Commits on Jul 16, 2011
  1. Photo aggregation logic update.

    Dave Santoro committed Jul 15, 2011
    In the new logic, we'll pick the largest photo (in pixels, using file
    size as a tiebreaker for display photos) to determine photo priority
    if no super-primary is defined.
    
    If this logic doesn't pick a winner, we fall back to the old photo
    priority based on the account.
    
    Change-Id: I9cf58b86a6c22bcf671a4852606a4534fa0fa7da
Commits on Jul 18, 2011
  1. Fix malfunctioning bucketization logic

    Daisuke Miyakawa committed Jul 17, 2011
    I82052953d5dad42ac171df29248ed25e9b4a2434 dropped the
    logic so we need to re-introduce it correctly
    
    As we don't have public API for updating LAST_TIME_USED
    columns outside the provider, we need to let the unit test
    call a method in ContactsProvider2 directly instead of
    calling DataUsageStat API.
    
    - fix the query
    - make update logic package-private
    - add a unit test for it
    - introduce guava to include @VisibleForTesting
    
    Bug: 4998821
    Change-Id: I0b699bffffd42a13ab00ac335796687052efb67a
Commits on Jul 20, 2011
  1. Include EXTRA_SELF_CHANGE only for PROVIDER_CHANGED event.

    Debashish Chatterjee committed Jul 20, 2011
    Voicemail content provider should include the extra EXTRA_SELF_CHANGED
    only for the PROVIDER_CHANGED and not for NEW_VOICEMAIL event.
    
    Bug: 5052915
    Change-Id: Idd976ced2a3eaed878847e43488eb5202b677338
  2. Forward-compatibility of old status update API.

    Dave Santoro committed Jul 15, 2011
    With this change, inserts or updates to the old status update API
    will be mirrored as stream item inserts or updates in the new
    social stream API.  This is primarily to bootstrap the new stream
    data (which is what the UI will be showing) until such time as data
    providers start using the new API.
    
    This change also includes migration to using the new photo storage
    system for photos from the social stream API.
    
    Change-Id: I0974444077790f706637dd6b9d1f6f50d204aa6c
  3. Get rid of voicemail permissions from contacts content provider.

    Debashish Chatterjee committed Jul 20, 2011
    They are now defined in framework/base. submitted in
    https://android-git.corp.google.com/g/119573
    
    Bug: 5049309
    Change-Id: I9927efe575b3a8b098599154c213840564023dfd
  4. Tweak to StreamItemPhotos to include metadata.

    Dave Santoro committed Jul 19, 2011
    This joins in the PhotoFiles table to get width, height, and filesize
    info from that table when selecting stream item photos.
    
    It also adds an option to the photo processor to force cropping the
    image to a square centered on the original's rect - this is how the
    social stream photos are to be displayed in the designs.
    
    Change-Id: I596a4a0be94db0df39d29bc06e1a1684a057a202
Commits on Jul 21, 2011
  1. Merge "Get rid of voicemail permissions from contacts content provider."

    Debashish Chatterjee committed with Android (Google) Code Review Jul 21, 2011
  2. Make strequent-phone-only returns what we want

    Daisuke Miyakawa committed Jul 20, 2011
    - in starred section, just starred persons should be listed.
      One person should not appear more than once.
    - in freuqent section, we should be able to obtain phone numbers
      One person can appear multiple times with different numbers.
    
    To achieve it, we need to tweak results further. Instead of
    allowing users to have Contacts columns, we have to allow part of
    Data columns (DATA1, DATA2, DATA3). Those Data-columns will be NULL
    in the starred section right now.
    
    In order to have those additional columns in Contacts Uri (this is
    for Contacts.CONTENT_STREQUENT_URI, not Data), this change has
    one restriction: with phone_only flag, users cannot have
    IS_USER_PROFILE any more. That's not so critical as phone_only
    is not part of public API.
    
    Modify unit test for phone-only results (SMS feedback shouldn't
    affect phone-only results). Also introduce comvenient function
    for testing feedback stuff in general.
    
    FUTURE TODO:
    - We should also be able to obtain a phone number relevant to
      the starred person while this change doesn't support it.
    - We may need to group numbers by contact instead of showing
      them apart  (bug: 5059874)
    
    Bug: 5050181
    Change-Id: I47f532e5b7bb3f8bfd77215c61abb31a09d7fd51
Commits on Jul 22, 2011
  1. Add support for frequent uri

    Daisuke Miyakawa committed Jul 21, 2011
    Must be after Ia670229e4d3e793446b0a0dce2590e20709ee18c
    
    Bug: 5050315
    Change-Id: I0ad08f65659987aefda20cd1f9fdfb0d375660f0
Commits on Jul 25, 2011
  1. Add group count capability and improve performance

    Daisuke Miyakawa committed Jul 23, 2011
    - implement group count feature in group summary uri
    - improve performance for the uri
    -- starting from data table makes SUMMARY_COUNT
       SUMMARY_WITH_PHONES quite slow
    - add unit test for group summary uri
    
    Must be after Ibc604770cb61ca9fd92280e58f1cd1bbf30c216a
    
    Bug: 5039532
    Change-Id: I58fb1040d9025af2e0820a6de85a4eaf2ae30852
  2. Implement IS_READ column in content providers.

    flerda committed Jul 21, 2011
    Add support for the IS_READ column in the call log and voicemail content
    providers. This columns will be used to store whether a call log entry
    (currently only voicemail) has been read or otherwise consumed by the
    user.
    
    Bug: 5036195
    Change-Id: I06840f9820f7d568a738c0307f4294c2b8c66031
  3. Make frequent uri work correctly

    Daisuke Miyakawa committed Jul 25, 2011
    Also add unit test for it
    
    Bug: 5073384
    Change-Id: I7fa41f50883e14a84ef95d2b098379b1d6b47bae
Commits on Jul 26, 2011
  1. Improvements in voicemail broadcast notifications.

    Debashish Chatterjee committed Jul 22, 2011
    This change fixes two primary issues:
    1) If a voicemail record is modified through call log provider, a
    voicemail provider notification is now generated.
    2) voicemail notifications are now sent with permission ALL if the
    receiving component packages is not the owner of the modified record.
    This ensures that a voicemail source (having OWN permission) gets notified
    only of changes for records that it owns. But a package that has ALL
    permissions get notified of everything,
    
    A new interface DatabaseModifier is now used by both voicemail as well as
    calllog provider to perform any operations that can modify the
    underlying table. DbModifierWithVmNotification implementation of this
    interface fires relevant notifications under the hoods.
    All logic related to sending notifications is now moved from
    VoicemailContentProvider to this new class.
    
    bulkInsert has no special treatment anymore. We now fall back to the framework's
    default implementation. It was complicated to optimize for provider_changed events
    for bulk insert when using the DatabaseModifier interface.
    
    TODO: I am yet to write unit tests for broadcast intents. I have done
    manual testing to make sure that they work. Also the existing unit tests pass,
    proving that none of the existing content provider operations are broken by
    using the DatabaseModifier wrapper.
    
    Bug: 5060354
    Bug: 4974222
    
    Change-Id: I0935105f146a71abeffbde634d79f8806b8e0ed2
  2. Fixed VoicemailProviderTest.

    Debashish Chatterjee committed Jul 26, 2011
    A recent change added a new 'IS_READ' field into the content provider but
    this test was missed to be updated for the number of columns expected
    out of the content provider.
    
    Change-Id: I03885e2b2ac827fe04e06e528e9ffd51823004ee
  3. Do not expose the NEW column in the Voicemail provider.

    flerda committed Jul 26, 2011
    We added the IS_READ column, so that we can distinguish between items
    that are new and items that have not been read (or heard, for
    voicemail).
    
    However, there is no reason to expose the NEW status of voicemail, since
    that is about whether the user should be notified and it is handled
    entirely by the content provider and Contacts application.
    
    This is part of the changes needed to fix notifications for voicemails.
    
    Bug: 5036195
    Change-Id: I74d760a73d5ffbbb6eb26f2dbe7c7ca2a92ad2d6
  4. Import revised translations.

    Eric Fischer committed Jul 26, 2011
    Change-Id: I7a76451008d3ae29155e9bc62a8223b05a249e69
  5. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Jul 26, 2011
Commits on Jul 27, 2011
  1. Merge "Improvements in voicemail broadcast notifications."

    Debashish Chatterjee committed with Android (Google) Code Review Jul 27, 2011
Commits on Jul 28, 2011
  1. Query speed up with "raw_contact_is_user_profile" check

    Makoto Onuki committed Jul 27, 2011
    Put the raw_contact_is_user_profile after user'selection, not before.
    
    This check is slow but most of the rows would just pass the check, it's better
    to do this check after user's selection.
    
    This change will make the group member list query more than twice as fast.
    
    Bug 5087853
    
    Change-Id: I07e7ecb3324601d0c38b5c1aba82d8bdb2501438
  2. Provider and DB changes to support data_set field.

    Dave Santoro committed Jul 13, 2011
    The intent of the data set field is to provide a way for multiple
    sync adapters from the same account name + type to manage separate
    sets of data in the raw_contacts and groups table.
    
    For example, this would allow for Focus groups to be synced in from
    Focus via the Google Contacts sync adapter, and for Google+ Circles
    to be synced in from the Google+ app, even though both are tied to
    the same account name + type.
    
    Bug 5077096
    
    Change-Id: I641c5d233d8d4d70988d209179c4e79bdb9c7ea1
  3. Merge "Query speed up with "raw_contact_is_user_profile" check"

    Makoto Onuki committed with Android (Google) Code Review Jul 28, 2011
  4. Merge "Provider and DB changes to support data_set field."

    Dave Santoro committed with Android (Google) Code Review Jul 28, 2011
  5. Return starred with phone number when phone-only

    Daisuke Miyakawa committed Jul 28, 2011
    Bug: 5087645
    Change-Id: Ib60353fd44c23566ae0d2cbaa695f5bbdfd26eb0
  6. Do not send the provider_changed event to pkgs that have not changed.

    Debashish Chatterjee committed Jul 28, 2011
    The earlier code sent provider changed notification with permission
    READ_WRITE_ALL_VOICEMAIL if the candidate package is not affected by the
    change. This guaranteed that the change is not notified to the package
    if it does not have ALL permission, but it generated an error log with
    "permission denied" message. This is not desirable.
    
    This change checks for ALL permission explicitly and do not even fire
    the notification if the candidate package is not affected and does not
    have ALL permission.
    
    Change-Id: I20982572d7f9a08ce98b03b23c9d2d8aa60efc9f
  7. Merge "Return starred with phone number when phone-only"

    Daisuke Miyakawa committed with Android (Google) Code Review Jul 28, 2011
  8. Initialize PhotoStore in background thread.

    Dave Santoro committed Jul 28, 2011
    Bug 5031708
    
    Change-Id: I6a621ca81281c3a146846f89650779f2a73888cc
  9. Fix missing column issue with lookup-by-name query

    Dave Santoro committed Jul 28, 2011
    Also fixed a similar problem for undeleting raw contacts.
    
    Bug 5091427
    
    Change-Id: I043eb51eb53676ee9719834456920a9aff4d3e42
Commits on Jul 29, 2011
  1. Added query instrumentation when verbose logging.

    Dave Santoro committed Jul 29, 2011
    Change-Id: Id55596034b11f819e4f1d367f648be4bb0e73a33
  2. Fix VoicemailProviderTest.

    Debashish Chatterjee committed Jul 29, 2011
    Modified MockPackageManager to stub checkPermissions. This method was
    recently used in production code in
    Change-Id: I20982572d7f9a08ce98b03b23c9d2d8aa60efc9f
    
    but I missed to update the Mock. Consequently the tests now fail with
    unsupportedoperation exception.
  3. No more use audio mime type for voicemail uris.

    Debashish Chatterjee committed Jul 29, 2011
    This makes the uri handling simpler, as we voicemail uris can now only
    be of item or dir and does not depend on the content.
    
    This also avoids strict mode violation when getType is called from UI
    thread.
    
    There is no change needed in the contacts app because the URI mime type
    is right now used by the app.
    
    Bug: 5090052
    Change-Id: Ie2e502f9b09465dc343e873d43e206aaad8b6076
  4. Merge "Added query instrumentation when verbose logging."

    Dave Santoro committed with Android (Google) Code Review Jul 29, 2011
Commits on Aug 1, 2011
  1. Merge "No more use audio mime type for voicemail uris."

    Debashish Chatterjee committed with Android (Google) Code Review Aug 1, 2011
  2. Delete voicemail data when source package is uninstalled.

    Debashish Chatterjee committed Jul 28, 2011
    The deletion of voicemail data for the uninstalled package is done
    through a service. The PackageIntentReceiver just forwards the package
    removal intent to the service after sanity check that the intent is
    really for an uninstalled package.
    
    The logic to check whether the intent should trigger a clean up is
    repeated in VoicemailCleanupService as well. This provides an extra
    safety net and and also lets the unit test cover this functionality.
    
    Bug: 5056159
    Change-Id: Id7315a1318d510b50878f26c2e0d380c1920ee4e
  3. Create account record if needed on profile insert.

    Dave Santoro committed Aug 1, 2011
    For accounts without a data set, this should be handled automatically
    when the account is added.  But with data sets, we need to handle it
    specially so that the profile raw contact ID reference has a row to
    hang off of.
    
    Other raw contacts or groups with a data set will have the account
    record created in the background when the provider is initialized.
    
    Change-Id: I24ea0c389c3bc839aee295f1297e2236c473d66f
  4. Merge "Create account record if needed on profile insert."

    Dave Santoro committed with Android (Google) Code Review Aug 1, 2011
  5. Populate data_set in values from the URI.

    Dave Santoro committed Aug 1, 2011
    Change-Id: I332596515fc55d9c28ed7b79128650328112da6c
Commits on Aug 2, 2011
  1. Add synthetic columns to voicemail table.

    Hugo Hudson committed Jul 29, 2011
    - Since our voicemail table supports getInputStream and getOutputStream
      we should also support the columns for DISPLAY_NAME and SIZE, since
      these are expected to exist for helping other apps share files -
      attaching to an email in GMail for example.
    - Uses an SQL hack to combine a suitably localized string with the
      number column for the display name.
    
    Bug: 5066115
    Change-Id: I48a08ade2a3a2a28a1d3e3415ec27dd956056d44
  2. Merge "Add synthetic columns to voicemail table."

    Hugo Hudson committed with Android (Google) Code Review Aug 2, 2011
  3. Import revised translations.

    Eric Fischer committed Aug 2, 2011
    Change-Id: I8abc0470d538f0cee3384854b78978e2b0583934
  4. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Aug 2, 2011
Commits on Aug 3, 2011
  1. Merge "Delete voicemail data when source package is uninstalled."

    Debashish Chatterjee committed with Android (Google) Code Review Aug 3, 2011
  2. Renamed permission READ_WRITE_OWN_VOICEMAIL to ADD_VOICEMAIL

    Debashish Chatterjee committed Aug 3, 2011
    The framework changes to add new permission ADD_VOICEMAIL went in
    change-Id: I515e7967bdb0e8498a60a32983f9122ce10dcc4a.
    And the contacts app to start using the new permission went in
    change-id: I188a109b69228e58a2c9b1d9a234a270df60555a
    
    Bug: 5098551
  3. Fix photo-related tests for Proguard builds.

    Dave Santoro committed Aug 3, 2011
    Bug 5112593
    
    Change-Id: I4b559911a100fdbe466bc79057d22000800e08be
  4. Merge "Fix photo-related tests for Proguard builds."

    Dave Santoro committed with Android (Google) Code Review Aug 3, 2011
Commits on Aug 4, 2011
  1. Merge "Renamed permission READ_WRITE_OWN_VOICEMAIL to ADD_VOICEMAIL"

    Debashish Chatterjee committed with Android (Google) Code Review Aug 4, 2011
  2. Fixed broken VoicemailContentProviderTest.

    Debashish Chatterjee committed Aug 4, 2011
    The tests were broken in two areas following recent changes
    - permission READ_WRITE_OWN_VOICEMAIL was renamed to ADD_VOICEMAIL in
      the production code, but was not renamed in test.
    - Two new synthetic fields DISPLAY_NAME and SIZE were added in the
      production code but the expected num fields were not updated in the
      tests.
    
    Change-Id: I96c1997af8dadb5a95d7224b0364cf48e6244977
  3. Fixed a strict mode violation in voicemail/calllog provider.

    Debashish Chatterjee committed Aug 4, 2011
    DbModifiervmNotification did not close the Cursor after making the
    query to determine affected packages.
    
    Change-Id: I2b8723a8b903117b28e8c905f68b3cfc039afc79
  4. Don't crash deleting a voiceamil with no file.

    Hugo Hudson committed Aug 4, 2011
    - The file constructor wasn't happy with null.
    - Instead log a warning and carry on.
    
    Bug: 5120418
    Change-Id: I6d83c34dbea828b560674c065b45a1eb04b07ee6
  5. Merge "Fixed broken VoicemailContentProviderTest."

    Debashish Chatterjee committed with Android (Google) Code Review Aug 4, 2011
  6. Merge "Fixed a strict mode violation in voicemail/calllog provider."

    Debashish Chatterjee committed with Android (Google) Code Review Aug 4, 2011
  7. Allow read-only sharing of Uri in voicemail content provider.

    Debashish Chatterjee committed Aug 4, 2011
    Since we perform our own permission check, uri permission check
    done by the content resolver is not sufficient. Our implementation of
    the content provider should also explicitly check for uri level permission.
    
    This is needed to allow sharing of voicemail uri from the contacts app.
    
    In a follow up change we will allow sharing of URIs only to those apps that has
    ALL permission. Right now the provider definition does not allow sharing
    of uri.
    
    Bug: 4961053
    Change-Id: I5af53ee76ea10fa5f45c8cdcb95c773cc7ad138e
  8. Fix data set handling for groups.

    Dave Santoro committed Aug 4, 2011
    Bug 5121818
    
    Change-Id: I5bd0c6b0678aed2b708057774d7041b822bf3ed9
  9. Merge "Fix data set handling for groups."

    Dave Santoro committed with Android (Google) Code Review Aug 4, 2011
  10. Add support for updating profile raw contacts.

    Dave Santoro committed Aug 4, 2011
    Bug 5122027
    
    Change-Id: I4c0c4dc3b8b9eedbca347929fe16893aa1630005
Commits on Aug 5, 2011
  1. Merge "Allow read-only sharing of Uri in voicemail content provider."

    Debashish Chatterjee committed with Android (Google) Code Review Aug 5, 2011
  2. The provider now contains the label for the acore process.

    Dianne Hackborn committed Aug 5, 2011
    Change-Id: I8503aad9a7c283f661a2781e147033cfeb57c2bb
Commits on Aug 6, 2011
  1. Import revised translations.

    Eric Fischer committed Aug 6, 2011
    Change-Id: I446f6a97b663db69db9ec1aa41f7ee472103f370
Commits on Aug 8, 2011
  1. Modified VoicemailContentProvider to set Calls.NEW

    Debashish Chatterjee committed Aug 8, 2011
    Calls.NEW is now an internal field for the voicemail interface and so
    the content provider must set it to '1' for new voicemail insertions.
    Contacts app now depends on this field to show notifications.
    
    Bug: 5055868
    
    Change-Id: Ic76501fa3a4361f1fce278247295d0bbe2f1f4c8
  2. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Aug 8, 2011
Commits on Aug 9, 2011
  1. Exclude profile from email filter

    Daisuke Miyakawa committed Aug 9, 2011
    Bug: 5131203
    Change-Id: I735fc33d00c5d7dde67e3b759365cb8812f69b20
  2. Automatically add a geocoded location to entries in the call log.

    flerda committed Aug 9, 2011
    This change adds a geocoded location value to entries added to the call
    log.
    
    One limitation is that this is unaware of changes to the locale. We
    needed to decide whether this is fine or if we should update the stored
    geocode on locale changes.
    
    Bug: 5129581
    Change-Id: I2ad1b3fbd24491df2febf3e1fd615c16dd74398f
  3. Merge "Automatically add a geocoded location to entries in the call l…

    flerda committed with Android (Google) Code Review Aug 9, 2011
    …og."
Commits on Aug 10, 2011
  1. Convert status updates to HTML.

    flerda committed Aug 9, 2011
    Since stream items text is HTML but status updates are text only,
    convert the text to HTML when inserting a status update into the stream
    items.
    
    Bug: 5122642
    Change-Id: I61e3d9802e527c6977e7d29660ffd137ae899dae
  2. Notify callog uri if a change is made through voicemail provider.

    Debashish Chatterjee committed Aug 9, 2011
    DbModifierWithVmNotification till now only notified to voicemail uri
    content observers for change made through call log provider. We need the
    otherway round as well so that any change made to a voicemail entry
    through the voicemail provider should be notified to listeners of
    calllog uri. This is needed to make call log auto refresh work when a new
    voicemail is inserted.
    
    DbModifierWithVmNotification is now renamed to DbModifierWithNotification
    and suports both ways notification. Notifications generated by call log
    provider as well is now routed through this class.
    
    Bug: 5055868
    Change-Id: I2de8c9867445bcb86ce94a8600acc726266c8008
Commits on Aug 11, 2011
  1. Voicemail provider: Don't automatically set HAS_CONTENT field.

    Debashish Chatterjee committed Aug 11, 2011
    It is best to let the content owner set this field when it is finished
    writing the content into the file.
    
    Another change will modify the voicemailproviderdemo app to set this
    field in the app.
    
    Bug: 5147190
    Change-Id: I93e4b467acdefe339fa70dd751ea05f195c32e71
Commits on Aug 12, 2011
  1. Merge "Convert status updates to HTML."

    flerda committed with Android (Google) Code Review Aug 12, 2011
  2. Renaming com.google.i18n.phonenumbers to com.android.i18n.phonenumbers

    jias0001 committed Aug 12, 2011
    to avoid name collision.
    
    Bug: 5157607
    Change-Id: If7db52ae5eba1696d20e9897860d757021477002
  3. Fix openAssetFile method of inserting photos.

    Dave Santoro committed Aug 12, 2011
    For reference, the issue was occurring because the file descriptor
    passed back to the caller is parceled immediately, which closes the
    file descriptor on the provider side before it even gets to the
    caller.  The solution was to stop fiddling around with temp files
    and just pass back a pipe instead - the provider then can simply
    read the image content from the pipe and process it.
    
    Bug 5156644
    
    Change-Id: Ie210f65b5b8681524fed12a53df0c852fc951e5a
  4. Fix crash in GoogleVoice when getting contact info

    Isaac Katzenelson committed Aug 12, 2011
    Bug: 5155743 Google voice is in crash loop (stack goes through Contacts)
    
    GoogleVoice is queries for contact data using the PHONE_LOOKUP query.
    If the phone number is part of the user's profile, the returned contact
    is the profile and further queries (to get the contact's photo) fail
    the security check and an exception is thrown.
    
    The fix restrict the PHONE_LOOKUP query to non-profile contacts.
    This is a temporary fix until dave's major change for profile
    handling is submitted.
    
    Change-Id: I65e42156f1fab5e5cded77f288e3ef69c3f6ecac
Commits on Aug 13, 2011
  1. Import revised translations.

    Eric Fischer committed Aug 13, 2011
    Change-Id: I0de64ae1b715cb2b374f08e23fbf70558c714897
  2. Merge "Fix openAssetFile method of inserting photos."

    Dave Santoro committed with Android (Google) Code Review Aug 13, 2011
Commits on Aug 14, 2011
  1. Several DB changes as requested by ES

    Daniel Lehmann committed Aug 14, 2011
     - Switch from resource ids to names to prevent breakage on package upgrade
       Bug:5135277
     - Add SYNC1...SYNC4 columns to StreamItems and StreamItemPhotos
       Bug:5119385
     - Remove ACTION, ACTION_URI from Groups, StreamItems and StreamItemPhotos
       (this reduces db size and prevents click intercepting)
       Bug:5135808
     - Add some raw-contact fields to the StreamItem and StreamItemPhotos query
       Bug:5134081
    
    Doing those changes in one block to prevent too many db upgrade steps
    
    Bug:5135277
    Change-Id: I1d1661c9a507d9efd4ef334fe21481097e820b7c
Commits on Aug 15, 2011
  1. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Aug 15, 2011
  2. Merge "Renaming com.google.i18n.phonenumbers to com.android.i18n.phon…

    Daniel Lehmann committed with Android (Google) Code Review Aug 15, 2011
    …enumbers to avoid name collision."
  3. Fix provider empty state status

    Isaac Katzenelson committed Aug 15, 2011
    Bug: 5074806
    
    The provider was setting the empty state (no account and no contacts)
    when the account count was zero and the contacts count was zero.
    This is no longer true when you have a profile, so a check was added
    to set the status to empty if there is one contact and it is a profile
    
    Change-Id: I9771dc99af1573e5c0ff2ac62ed5e5ca433fd738
  4. Merge "Fix provider empty state status"

    Isaac Katzenelson committed with Android (Google) Code Review Aug 15, 2011
Commits on Aug 16, 2011
  1. Introduce trigger for AUTO_ADD update

    Daisuke Miyakawa committed Aug 13, 2011
    AUTO_ADD can be changed after database upgrade.
    
    Also stop using constants in the relevant upgrade code.
    The code should use the exact value at that moment, not the latest
    values each constant points to in the latest code base.
    
    TESTED:
    - GB to ICS migration path with phone device
    - HC to ICS migration path with tablet device
    
    Bug: 5153692
    Change-Id: I9460a9da42cc3685328f8063c81c72c5f6aec268
  2. Use phone number for grouping when normalized number is null

    Daisuke Miyakawa committed Aug 16, 2011
    NORMALIZED_NUMBER may become null when the number isn't able to be
    parsed by the library (e.g. pager address). Current implementation
    groups multiple numbers with null normalized values into one
    result, which confuses users.
    
    Bug: 5040732
    Change-Id: I1ad7dfb72dbc5d239aa95a913d35c2d8dfe3167c
Commits on Aug 17, 2011
  1. Stop using a cached value for auto_add trigger

    Daisuke Miyakawa committed Aug 17, 2011
    Trigger must not use the value cached when it is created.
    
    TESTED:
    - upgrade a phone device from GB to ICS and see default_directory
      works fine
    - remove Contacts database, sync with Google account in ICS, and see
      all default contacts are shown (bug 5174433)
    - do factory reset, set up the device with a Google account, and see
      all default contacts are shown
    
    Bug: 5174433
    Change-Id: If554b7eba4acfcf7a79309b998ec05e8557da397
  2. Merge "Use phone number for grouping when normalized number is null"

    Daisuke Miyakawa committed with Android (Google) Code Review Aug 17, 2011
Commits on Aug 21, 2011
  1. Remove extra new line from status updates.

    flerda committed Aug 21, 2011
    When status updates are added to the stream items, they need to be
    converted to HTML. In the process, an extra new line was added at the
    end of each of them.
    
    This commit removed this trailing new line, so that the updates are
    shown correctly in the UI.
    
    Bug: 5193689
    Change-Id: I223070eeb1439a8ffacbfb61d6e86355b14c68db
Commits on Aug 22, 2011
  1. Import revised translations.

    Eric Fischer committed Aug 22, 2011
    Change-Id: I102634d828b289fa20485ad363fe5223ae9c7840
  2. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Aug 22, 2011
  3. Add boot message when upgrading database.

    Dianne Hackborn committed Aug 22, 2011
    Change-Id: I3f17aed690066ed4d2ab645a059c66a1bdd7a1f1
  4. Remove the java-synchronization and completely rely on DB transactions

    Daniel Lehmann committed Aug 22, 2011
    Bug:5134056
    Change-Id: Ied50a93fbcd1121ca978cbb8fdcd8556020cb28f
  5. Return proper mime-types for stream items

    Makoto Onuki committed Aug 22, 2011
    Bug 5196154
    Bug 5198078
    
    Change-Id: I6da42907e900d348294b42d2bc556090c2639ab5
  6. Merge "Remove the java-synchronization and completely rely on DB tran…

    Daniel Lehmann committed with Android (Google) Code Review Aug 22, 2011
    …sactions"
Commits on Aug 25, 2011
  1. Fixes convertion to HTML of status updates.

    flerda committed Aug 25, 2011
    The code was stripping one extract character. This is only a problem
    whem something is appending after it, as in the case of the Updates
    header.
    
    Bug: 5212740
    Change-Id: I5b82168d83ee41a20256118003bb3d1bce182990
  2. Fix ambiguity for Contacts._ID and RawContacts._ID in Stream Items

    Daniel Lehmann committed Aug 25, 2011
    Bug:5134325
    
    Change-Id: Id5159a24c9a2aee58e566b9bc03719e7a6ee0f7c
  3. Group rows with a same phone number and a contact id.

    Daisuke Miyakawa committed Aug 25, 2011
    Bug: 5201809
    Change-Id: Ie21abb12736715358dd33bc690269f51ae1e0944
  4. Merge "Group rows with a same phone number and a contact id."

    Daisuke Miyakawa committed with Android (Google) Code Review Aug 25, 2011
  5. Fix the creation of the search_index table when the aggregation mode

    Daniel Lehmann committed Aug 25, 2011
    changes
    
    Original CL submitted by Google TV
    
    Bug:4485628
    Change-Id: I1d964bd153cc4de1b5543970bbfd89ff89587451
Commits on Aug 26, 2011
  1. Merge "Fixes convertion to HTML of status updates."

    flerda committed with Android (Google) Code Review Aug 26, 2011
  2. Add a few columns for caching to the call log.

    flerda committed Aug 21, 2011
    These columns store additional information about the contact associated
    with a call log entry and are needed by the new functionality present in
    the call log.
    
    This change matches the newly defined columns in
    android.provider.CallLog.
    
    Bug: 5101753
    Change-Id: Ife45e7034af098bf0e1ca35d05bb389a2c47909a
  3. Merge "Return proper mime-types for stream items"

    Makoto Onuki committed with Android (Google) Code Review Aug 26, 2011
  4. Import revised translations.

    Eric Fischer committed Aug 26, 2011
    Change-Id: I6d9721da9e0321852e63f887c1f8f8a3ae5c9b1c
  5. Merge "Fix the creation of the search_index table when the aggregatio…

    Daniel Lehmann committed with Android (Google) Code Review Aug 26, 2011
    …n mode changes"
  6. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Aug 26, 2011
Commits on Aug 28, 2011
  1. Fix status message in contact updates.

    flerda committed Aug 28, 2011
    This fixes a problem with a status message being added to a contact's
    update stream. The text contains an extra <p> tag, which leads to extra
    newlines being rendered.
    
    Bug: 5176548
    Change-Id: I28854bf053508e63ac0345556129e82c9e7984cb
  2. Add log to measure startup performance

    Makoto Onuki committed Aug 28, 2011
    Use this to enable log:
    
    adb shell setprop log.tag.ContactsPerf VERBOSE
    
    Bug 5195464
    
    Change-Id: I8348dffb050c562e708ab81405d556625794fdf3
Commits on Aug 29, 2011
  1. Add lookup_key to the StreamItemsView (it was missing in the previous…

    Daniel Lehmann committed Aug 29, 2011
    … CL)
    
    Bug:5134325
    Change-Id: I214f5750a9c445b2bca0cc6a448463c38519bfa1
Commits on Aug 30, 2011
  1. Lazily-initialize PhoneNumberOfflineGeocoder/PhoneNumberUtil

    Makoto Onuki committed Aug 28, 2011
    - They were indirectly created in VoicemailContentProvider.onCreate and
      CallLogProvider.onCreate, and were slow. It was taking ~300ms on my
      measurement on a nexus-s.  Also it touched the filesystem, so it can
      be much slower on worn-out flash or when flash is busy.
    
    - Doing it in a provider's onCreate means it affects auto-complete
      performance if acore is not started.  Also it'll affect app-startup
      when we merge processes.
    
    - But they were actually only used when inserting a call log, so we don't
      have to initialize them at startup.
    
    - Inserting a call-log should be done in a worker thread, so lazy-
      initialization shouldn't cause laggy UI.
    
    (Alternatively, we could initialize them in a worker thread at startup,
    but I don't think it's worth it.)
    
    - Also, now CallLogProvider and VoicemailContentProvider share the
      same instance of DefaultCallLogInsertionHelper.
      (They used to have their own)
      same instance of DefaultCallLogInsertionHelper doesn't have any
      instance specific state, so this should be safe.
    
    Bug 5220669
    
    Change-Id: Ibcd664ed683507c5dcac88bec736e4903a4a7032
  2. Merge "Lazily-initialize PhoneNumberOfflineGeocoder/PhoneNumberUtil"

    Makoto Onuki committed with Android (Google) Code Review Aug 30, 2011
  3. Separate the profile out into a separate database.

    Dave Santoro committed Aug 8, 2011
    Fundamentally, this works as follows:
    1. A separate, structurally identical database is created for
       storing profile data.  The view columns for identifying whether
       a contact or raw contact belongs to the user's profile are
       initialized with constant values for each database.
    2. Sequence numbers in the new profile database are set to a very
       high value (MAX_LONG - MAX_INT) to designate an ID-space in which
       profile data is stored.  This is important for distinguishing
       between contact and profile requests.
    3. Contacts Provider URIs are divided into several sets, bucketed
       automatically by a new profile-aware URI matcher.
       - URIs that explicitly reference the profile.
       - URIs that contain IDs (which may be in the profile ID-space).
       - URIs that contain lookup keys (which may be a special profile
         lookup key).
       - URIs for insertion that may contain a profile ID as the parent
         for the inserted record (in content values).  These can't be
         detected by the URI matcher by itself, so this mapping is
         maintained in the provider.
       By identifying whether a URI falls into one of these sets, the
       contacts provider can efficiently determine whether the request
       is intended for the profile database or contacts database.
    4. The Contacts Provider holds onto two separate copies of the
       following, one each for contacts and profiles:
       - Database helper
       - Transaction context
       - Aggregator
       - Photo store (the profile one uses a separate directory)
    5. During any query/update/insert/delete/openAssetFile operation,
       the URI (and content values, if applicable) are examined to
       determine whether the operation is intended for the Contacts DB
       or the profile DB.  If intended for the profile DB, the provider
       is switched (in a thread-local manner) to a profile mode, and the
       operation is handed off to the profile provider.  The profile
       provider does a permission check, substitutes the profile database
       as the active DB in the contacts provider, and continues the
       operation in the Contacts Provider by calling the in-transaction
       or local version of the operation, which does its normal
       processing, but with everything pointing at profile-specific
       databases, aggregators, etc.
    6. If the operation isn't determined to be targeted to the profile
       database, the provider is similarly switched (thread-locally) into
       contacts mode, and the active DB is set to the contacts DB.
    7. For batch operations, we only create a transaction for the
       contacts DB initially.  If any of the operations in the batch end
       up targeting the profile DB, we start a transaction for the
       profile DB.  When the batch is finished, we check for that and
       also commit the profile transaction if there were no errors.
    
    Bug 5204577
    Bug 5161066
    Bug 5155743
    Bug 5087853
    Bug 5031883
    Bug 5198777
    Bug 5230140
    
    Change-Id: Ic43a6625cbb6edf52ea076b084647fb0656e28e5
  4. Enable contact matching for incoming calls which only contain local

    jias0001 committed Aug 26, 2011
    number.
    
    Bug: 5197612
    Change-Id: Ia38f097e1e1e8ecad9c41a15d5c7593807d13571
Commits on Aug 31, 2011
  1. Use new api AbstractCursor.setExtras() to return index info

    Makoto Onuki committed Aug 30, 2011
    Avoid CursorWrapper, which has performance penalty on cross-process queries.
    
    Bug 5220669
    
    Change-Id: I630fffaaaa2b28846c715ae0d2d536da01b701a8
  2. Merge "Enable contact matching for incoming calls which only contain …

    Attila Bodis committed with Android (Google) Code Review Aug 31, 2011
    …local number."
  3. Switch to using JPGs for tests.

    Dave Santoro committed Aug 31, 2011
        This should help avoid running out of memory when running the test
        suite.
    
        Bug 5199245
    
    Change-Id: Ibb2591c3f58777c680eba8f5a89a6cc01f09c198
  4. Handle profile/contact split for bulk insert.

    Dave Santoro committed Aug 31, 2011
    Unlike applyBatch, in the bulk insert case we have all the info we
    need to make a conclusive contacts vs. profile determination, so I
    pulled in the logic from the superclass and augmented it to handle
    opening and closing contacts/profile DBs and transactions in a
    cleaner manner.
    
    I was unable to reproduce Daisuke's bug, but this change would at
    least ensure that a database helper is set before attempting to do
    an insert in bulk.
    
    Bug 5239086
    
    Change-Id: I8cdbb41c9a8a0f24af99c554942649af1333b627
  5. Cleanup variable referring to removed column.

    Dave Santoro committed Aug 31, 2011
    Bug 5242084
    
    Change-Id: I7c8d00701a5a20c97556bf523faf4c4b9fb8a49a
  6. Merge "Cleanup variable referring to removed column."

    Dave Santoro committed with Android (Google) Code Review Aug 31, 2011
  7. Merge "Handle profile/contact split for bulk insert."

    Dave Santoro committed with Android (Google) Code Review Aug 31, 2011
  8. Don't share SQLiteStatement between threads. Create on the fly

    Daniel Lehmann committed Aug 31, 2011
    Bug:5229241
    
    Change-Id: I57cda04dbe65afc4b05ddd46dda94b812d0df6bc
Commits on Sep 1, 2011
  1. Merge "Don't share SQLiteStatement between threads. Create on the fly"

    Daniel Lehmann committed with Android (Google) Code Review Sep 1, 2011
  2. Merge "Use new api AbstractCursor.setExtras() to return index info"

    Makoto Onuki committed with Android (Google) Code Review Sep 1, 2011
  3. Fix photo updates when no photo is specified.

    Dave Santoro committed Sep 1, 2011
    If no photo key is present, we will not attempt to do any photo
    processing on the row.  The existing photo and photo file, if any,
    will be unaffected.
    
    If a photo key is present but the value is null or an empty byte
    array, we will clear out the photo BLOB and photo file fields when
    updating.
    
    Bug 5247668
    
    Change-Id: Ice8508060ab272bedfb42d105df55e972357e843
  4. Merge "Fix photo updates when no photo is specified."

    Dave Santoro committed with Android (Google) Code Review Sep 1, 2011
Commits on Sep 2, 2011
  1. Make all modification operations serialized.

    Dave Santoro committed Sep 2, 2011
    Prior to this change, it was possible for a profile operation and a
    contacts operation to both be run simultaneously, since each DB
    maintained a separate transaction lock.
    
    With this change, ALL operations start a transaction on the contacts
    DB, so modifications to either DB will be serialized.  This should
    address the root cause of the jumbled mValues bugs, since only one
    operation should be executing at any given time.
    
    Bug 5248637
    
    Change-Id: I4cdefddcb7b84f120d009300f45b772f439be88d
  2. Fix alphabetical headers for phone-all contacts

    Makoto Onuki committed Sep 2, 2011
    - On phone, we dedupe phone numbers using "group by", but we don't
    do that in bundleLetterCountExtras, so there'll be mismatch if a contact
    has dup numbers.
    
    - The proper fix would be to make bundleLetterCountExtras() respect group by,
    but we'd have to use a subquery to do this, and this method is quite tricky
    to tweak without risking regression or negative impact on performance.
    (I know because I tried to optimize it...)
    
    - So instead, just use count(distinct CONTACT_ID, PHONE NUMBER) instead of
    count(*) to count records in this case.  But count() takes one argument,
    so concatinate these two columns instead, i.e.
    count(distinct CONTACT_ID || ',' || PHONE NUMBER)
    
    This change is pretty low-risk, and not as slow as it may look. It only slows
    down the query by 14% with 10,000 contacts (1.4sec v.s. 1.6sec).
    
    - We also use group-by for the followin queries, but I don't think they'll
    ever be used with addressbook indexer?
    CONTACTS_FREQUENT, PHONES_FILTER, EMAILS_FILTER and GROUPS_SUMMARY
    
    Bug 5249927
    
    Change-Id: Ib6f307efafb0a402cbfed74f09e7d28fdd246823
  3. Merge "Fix alphabetical headers for phone-all contacts"

    Makoto Onuki committed with Android (Google) Code Review Sep 2, 2011
  4. Import revised translations.

    Eric Fischer committed Sep 2, 2011
    Change-Id: Ic65f3bb82cf149ed4e400778011420c1e83bcd50
  5. Add support for I/U/D on profile/data URI.

    Dave Santoro committed Sep 2, 2011
    Also make sure that deletes of data use the appropriate URI when
    querying for the rows to delete if in profile mode.
    
    Bug 5249062
    Bug 5201592
    
    Change-Id: I206fb8653bdc111c4cab1e703346fc56502fce65
  6. Another fix for the bulk insert problem.

    Dave Santoro committed Sep 2, 2011
    The insert depends on mDb being set, which our totally-overridden
    bulkInsert method didn't do.
    
    Bug 5239086
    
    Change-Id: Id86eee9e5f6a9076dfa29f985d83387ba1ec4f8d
  7. Merge "Add support for I/U/D on profile/data URI."

    Dave Santoro committed with Android (Google) Code Review Sep 2, 2011
  8. Fix lookup key generation for inserted profiles.

    Dave Santoro committed Sep 2, 2011
    We were properly updating the lookup key to "profile" on updates,
    but the initial insert would still have a regular lookup key, which
    would prevent us from identifying it as a profile URI, and in turn
    meant that stream items wouldn't show up for the profile.
    
    Bug 5245109
    
    Change-Id: I7c01d051a167214be77bd962901af6cdb6100787
  9. Merge "Another fix for the bulk insert problem."

    Dave Santoro committed with Android (Google) Code Review Sep 2, 2011
Commits on Sep 3, 2011
  1. Prevent stream item photos from being nuked.

    Dave Santoro committed Sep 3, 2011
    Bug 5250382
    
    Change-Id: Ie121858a4a2c7584f04432e7830bdbeb6cd52bf7
Commits on Sep 5, 2011
  1. Fix voicemail tests.

    flerda committed Sep 5, 2011
    The problem is that we run this query locally (within the same process)
    in the tests and this means that the content values passed in were
    modified and later re-used (assuming it would not contain the extra,
    generated columns). The solution is to always make a copy of the content
    values before modifying them in the provider (which is the safest way
    anyway).
    
    Bug: 5226211
    Change-Id: I972111821a4af1e1d3df2dc47189d664a7303683
Commits on Sep 6, 2011
  1. Merge "Fix lookup key generation for inserted profiles."

    Dave Santoro committed with Android (Google) Code Review Sep 6, 2011
  2. Merge "Prevent stream item photos from being nuked."

    Dave Santoro committed with Android (Google) Code Review Sep 6, 2011
  3. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Sep 6, 2011
Commits on Sep 7, 2011
  1. Clean up stream items when raw contact is deleted.

    Dave Santoro committed Sep 7, 2011
    Also added support for raw_contact/#/stream_items/# URIs, which we
    were returning on stream item inserts for a raw contact.
    
    Bug 5239627
    
    Change-Id: I32116b32f1ebd28f7c86d6dc7567fca8f7c7ff07
  2. Merge "Clean up stream items when raw contact is deleted."

    Dave Santoro committed with Android (Google) Code Review Sep 7, 2011
  3. Fix issue with cleaning up stream item photos.

    Dave Santoro committed Sep 7, 2011
    Bug 5250048
    
    Change-Id: Ibb0daef7a089ec851a9201cfd4163173f713f839
  4. Merge "Fix voicemail tests."

    flerda committed with Android (Google) Code Review Sep 7, 2011
  5. Merge "Fix status message in contact updates."

    flerda committed with Android (Google) Code Review Sep 7, 2011
  6. Fix aggregation.

    Dave Santoro committed Sep 6, 2011
    Last week's change to handle the profile lookup key broke the way
    that aggregation assembles the lookup key for regular contacts.
    
    Change-Id: I56bc9cdfee129789dd260ed27b62e476db970ff8
  7. Merge "Fix issue with cleaning up stream item photos."

    Dave Santoro committed with Android (Google) Code Review Sep 7, 2011
  8. Clean up stream items on account removal.

    Dave Santoro committed Sep 7, 2011
    Bug 5239627
    
    Change-Id: I0c45baeaf6e3a1730760f49696e1f489ef22490f
  9. Merge "Fix aggregation."

    Dave Santoro committed with Android (Google) Code Review Sep 7, 2011
  10. Fix snippetizing cursor

    Isaac Katzenelson committed Sep 2, 2011
    Bug: 5217242 Email address with the found "snippet" highlighted should
         be displayed on the second line below the contact name
    Provider size fix:
    Added support for deferred_snippeting parameter to URI.
    Replaced the cursor wrapper with a code that inserts a bundle into the cursor
    for client side snippeting
    
    Change-Id: I1f411071d3d8552eab3c41303d1a99ab6fe0a801
Commits on Sep 8, 2011
  1. Add support for profile raw entities URI.

    Dave Santoro committed Sep 8, 2011
    Bug 5274218
    
    Change-Id: Ic5b0b5ace48dfaea81190b8262c622179f20f617
  2. Fix profile aggregation.

    Dave Santoro committed Sep 7, 2011
    Bug 5248459
    
    Change-Id: I6f09814d5f8b372173e8e82f7cf6dd5b98ba98a6
  3. Merge "Add support for profile raw entities URI."

    Dave Santoro committed with Android (Google) Code Review Sep 8, 2011
  4. Merge "Fix snippetizing cursor"

    Isaac Katzenelson committed with Android (Google) Code Review Sep 8, 2011
Commits on Sep 9, 2011
  1. Add data_set for Settings.

    Dave Santoro committed Sep 9, 2011
    Since data_set may be null, it can't be part of the primary key
    for the table, so we need to re-create the table and add
    provider-side protection from inserting duplicate settings
    records.
    
    Bug 5156004
    
    Change-Id: I25ae53c5670087a116058f0daef5b06cb6ce372b
  2. Merge "Add data_set for Settings."

    Dave Santoro committed with Android (Google) Code Review Sep 9, 2011
  3. Fix URI support for profiles.

    Dave Santoro committed Sep 9, 2011
    Many URIs that have essentially the same functionality for both
    contacts and profiles have been collapsed into one case to save code,
    and some profile-specific URIs that should have supported operations
    have been added.
    
    Also fixed an issue with detecting whether the provider is currently
    operating in batch mode, and set up raw contacts to be fully deleted
    if they have no associated account (i.e. they are local).
    
    Bug 5284316
    
    Change-Id: Ia6e129a4cdbd0e105be0c1a66c25e4955bdfbfae
Commits on Sep 13, 2011
  1. Fix a case that would trigger an account error.

    Dave Santoro committed Sep 13, 2011
    Change-Id: I9e09d60a0a60a151c6c43842a499410b65e33693
  2. Fix snippetization tests.

    Dave Santoro committed Sep 13, 2011
    The tests need to be aware of (and use) deferred snippeting.
    
    Change-Id: Ib566a2884f445c0ff02d8968a9362717798aafb8
  3. Do mimetype filtering based on ID.

    Daniel Lehmann committed with Dave Santoro Sep 13, 2011
    Wherever the provider is doing a query based on the mimetype, we can
    optimize the SQL performance by switching in the (cached) mimetype ID
    and joining against that instead.
    
    Also fixed an issue that was likely leading to hi-res photos being
    blown away during photo cleanup.
    
    Bug:5289712
    Change-Id: Ic51e4c6b0e5daa8b7a2440692755fd87d387f3f3
Commits on Sep 14, 2011
  1. Merge "Fix a case that would trigger an account error."

    Dave Santoro committed with Android (Google) Code Review Sep 14, 2011
  2. Merge "Do mimetype filtering based on ID."

    Dave Santoro committed with Android (Google) Code Review Sep 14, 2011
  3. Add lookup key support for photo URIs.

    Dave Santoro committed Sep 14, 2011
    Bug 5235737
    
    Change-Id: Iec2ef8ada5b70e22e35b6912ab62e6e680309dc6
Commits on Sep 15, 2011
  1. Fix deadlock in applyBatch.

    Dave Santoro committed Sep 14, 2011
    This is a simple attempt at a fix (as with most deadlocks, hard to
    determine whether this really fixes the problem until the fix is
    out in the wild for a time).
    
    Bug 5320369
    
    Change-Id: Ibc7634bc41c72303f05d26dc4250ed8ab7e859ec
  2. Do same photo processing for insert/update.

    Dave Santoro committed Sep 15, 2011
    Specifically, we want to avoid inserting photos with empty byte
    arrays.
    
    Bug 5319468
    
    Change-Id: I5c7fb18d76a15eaf202d8e81add189ce053156f2
  3. Set the VCardComposer raw contacts URI correctly for the profile.

    Martijn Coenen committed Sep 13, 2011
    Bug: 5300714
    Change-Id: I87db1056498add7d4c29675fe75b07596242e8d7
  4. Re-aggregate all data on raw contact delete.

    Dave Santoro committed Sep 15, 2011
    Previously it would just re-aggregate the display name, which would
    miss things like display photo needing to change.
    
    Bug 5324939
    
    Change-Id: Ia06713c985d727efe117b3f1440af2f280874094
  5. Merge "Re-aggregate all data on raw contact delete."

    Dave Santoro committed with Android (Google) Code Review Sep 15, 2011
  6. Merge branch 'master' of ssh://android-git:29418/platform/packages/pr…

    Martijn Coenen committed with Android Git Automerger Sep 15, 2011
    …oviders/ContactsProvider
Commits on Sep 16, 2011
  1. Merge "Fix deadlock in applyBatch."

    Dave Santoro committed with Android (Google) Code Review Sep 16, 2011
  2. Merge "Do same photo processing for insert/update."

    Dave Santoro committed with Android (Google) Code Review Sep 16, 2011
  3. Import revised translations. DO NOT MERGE

    Eric Fischer committed Sep 16, 2011
    Change-Id: I6197d75133a7bbb6975ef13eb25bcb855012a9c6
  4. Revert new applyBatch method - it is harmful.

    Dave Santoro committed Sep 16, 2011
    The primary problem is that the overridden method keeps track of
    whether we're in a batch operation in the ContactsProvider2 scope,
    leaving SQLiteContentProvider out of the loop.  Meanwhile, the
    SQLiteContentProvider insert/update/delete operations are checking
    its own private flag for batch checking, and since that's always
    false, they're creating and closing their own transactions
    throughout the batch, which completely breaks transactionality
    (and the functionality tied to it, like aggregation).
    
    Bug 5320369
    
    Change-Id: Ia7d00a770be179e5bef1226dffff3c2915c38e66
  5. am 8834cb2: (-s ours) Import revised translations. DO NOT MERGE

    Eric Fischer committed with Android Git Automerger Sep 16, 2011
    * commit '8834cb2a5f330b050c760c30a1b3256189668e9d':
      Import revised translations.  DO NOT MERGE
Commits on Sep 17, 2011
  1. Merge "Revert new applyBatch method - it is harmful."

    Dave Santoro committed with Android (Google) Code Review Sep 17, 2011
Commits on Sep 20, 2011
  1. Import revised translations.

    Eric Fischer committed Sep 20, 2011
    Change-Id: I449a05629ae6625b7a72a229b0cc90ed81e56709
Commits on Sep 21, 2011
  1. Cast in_visible_group field as an integer.

    Dave Santoro committed Sep 21, 2011
    This is necessary to allow for queries using selection arguments
    for this field to work, since we always bind these as strings
    (and SQLite's type affinity won't kick in on function-based view
    fields unless we explicitly cast them).
    
    Bug 5118670
    
    Change-Id: Ia4abe247547fbf482f187bf2db7f2df56fc9d601
  2. Merge "Cast in_visible_group field as an integer."

    Dave Santoro committed with Android (Google) Code Review Sep 21, 2011
  3. Add support for profile/<photo> URIs.

    Dave Santoro committed Sep 20, 2011
    The URIs profile/photo and profile/display_photo can be used to load
    the thumbnail and display photo (respectively) for the user's profile
    entry.
    
    Also had to move ContactDirectoryManagerTest to MediumTests because
    the LargeTests are starting to crash due to the SQL memory issue
    again.
    
    Bug 5226635
    
    Change-Id: I7bf9787b06a49bf59c758421552dc969e6c6907d
  4. Refactor transactions for contacts.

    Dave Santoro committed Sep 21, 2011
    Rather than extending SQLiteContentProvider, the profile and contacts
    providers now extend AbstractContactsProvider, which handles keeping
    track of a thread-local transaction with awareness of what databases
    have been enlisted in the transaction and whether it is being run in
    the context of a batch operation.
    
    This is intended to solve the issue of how the content provider can
    manage transactions that operate across multiple databases without
    risking deadlocks.
    
    Bug 5320369
    
    Change-Id: I08a7d518a3eae1b0bf438402d02f1f1d8e8df7b9
  5. Change Settings insert conflict to do an update.

    Dave Santoro committed Sep 20, 2011
    This was the behavior the Settings table had before (when uniqueness
    was enforced by the primary key), and it was assumed by external
    apps, including Twitter.
    
    Bug 5336876
    
    Change-Id: Iab792df6a5d31c780a33ddebabdb26c7768f373b
  6. Merge "Change Settings insert conflict to do an update." into ics-fac…

    Dave Santoro committed with Android (Google) Code Review Sep 21, 2011
    …toryrom
  7. resolved conflicts for merge of 078f588 to master

    Dave Santoro committed Sep 21, 2011
    Change-Id: I17e4d57df3bb24388ca9ead92f9a40fc57bc0fd3
  8. Make search aware of names in "all other contacts"

    Daisuke Miyakawa committed Sep 21, 2011
    default_directory doesn't contain contacts which are in
    "all other contacts" group (or people who are not in any group),
    while in search mode we want those names.
    
    Bug: 5336673
    Change-Id: Ib77acdfa6968605a66561f0925d0aa81f4522bb9
Commits on Sep 22, 2011
  1. Fixes and cleanup for transactions.

    Dave Santoro committed Sep 22, 2011
    - Make the thread-local transaction shared between the contacts and
      profile providers (as the implementation intended).
    - Remove a bunch of extraneous variables from the contacts provider.
    - Ensure that the profile provider switches the delegate into profile
      mode before running onBegin() or onCommit().
    - Port the fix for applying contact changes to the profile DB.
    - Fix an issue with profile aggregation after the profile has been
      deleted.
    - Addressed a case in which we would create (and possibly hold onto)
      a profile DB transaction erroneously.
    - Ported fix for aggregation when raw contacts are deleted.
    
    Bug 5320369
    
    Change-Id: I1f36d4c87c6b655dfcb5e339f151d3bf1d37a437
  2. am ae94a71: Merge "Change Settings insert conflict to do an update." …

    Dave Santoro committed with Android Git Automerger Sep 22, 2011
    …into ics-factoryrom
    
    * commit 'ae94a710dbc0ea239277c25986e39ba53904c5fc':
      Change Settings insert conflict to do an update.
  3. Merge "Make search aware of names in "all other contacts""

    Daisuke Miyakawa committed with Android (Google) Code Review Sep 22, 2011
Commits on Sep 23, 2011
  1. am a9995c9: (-s ours) Fixes and cleanup for transactions.

    Dave Santoro committed with Android Git Automerger Sep 23, 2011
    * commit 'a9995c98ba99bcdd101bc4734fdb3ff08e9efe8f':
      Fixes and cleanup for transactions.
  2. Don't return 'dial' suggesitons if we're not voice capable.

    mathewinwood committed Sep 23, 2011
    Bug: 5317968
    Change-Id: I52f9694de9781d0221e37078715398df69ae0354
  3. Fixes and cleanup for transactions.

    Dave Santoro committed Sep 22, 2011
    - Make the thread-local transaction shared between the contacts and
      profile providers (as the implementation intended).
    - Remove a bunch of extraneous variables from the contacts provider.
    - Ensure that the profile provider switches the delegate into profile
      mode before running onBegin() or onCommit().
    - Port the fix for applying contact changes to the profile DB.
    - Fix an issue with profile aggregation after the profile has been
      deleted.
    - Addressed a case in which we would create (and possibly hold onto)
      a profile DB transaction erroneously.
    - Ported fix for aggregation when raw contacts are deleted.
    
    Bug 5320369
    
    Change-Id: I1f36d4c87c6b655dfcb5e339f151d3bf1d37a437
Commits on Sep 25, 2011
  1. DO NOT MERGE Port DB upgrades from master.

    Dave Santoro committed Sep 25, 2011
    This brings the DB helper up-to-date with Master and fixes the
    two bugs mentioned below on the factory ROM branch.
    
    Bug 5118670
    Bug 5336673
    
    Change-Id: Ic3c68eeb96d08e74cfbd635baa61a8ce53bd9bf2
  2. am e57045a: (-s ours) DO NOT MERGE Port DB upgrades from master.

    Dave Santoro committed with Android Git Automerger Sep 25, 2011
    * commit 'e57045a9b0034063e14ea34b6574b0b0f9fc8998':
      DO NOT MERGE Port DB upgrades from master.
Commits on Sep 26, 2011
  1. Merge "Don't return 'dial' suggesitons if we're not voice capable."

    mathewinwood committed with Android (Google) Code Review Sep 26, 2011
Commits on Sep 27, 2011
  1. Fix deadlock opportunity.

    Dave Santoro committed Sep 27, 2011
    The Profile provider was not synchronizing all transactions on the
    contacts DB as it needed to.  During commit, most transactions were
    doing queries on the contacts DB.  As a result, a profile op thread
    could have a profile lock and then try to get a contact lock, and
    contact op threads could have a contact lock and try to get a profile
    lock while updating provider status.
    
    Ensuring that all transactions first require a lock on the contacts
    DB avoids the deadlock scenario.
    
    Bug 5381085
    
    Change-Id: I832e075ea37f0d650187b8ec067677ccee75a838
Commits on Sep 28, 2011
  1. am c990980: Fix deadlock opportunity.

    Dave Santoro committed with Android Git Automerger Sep 28, 2011
    * commit 'c990980ab4beb7b81c3337526f1bdcd5d1a14730':
      Fix deadlock opportunity.
Commits on Sep 30, 2011
  1. Handle complex phone numbers in ContactsProvider.

    Mark Brophy committed Aug 22, 2011
    Use i18n.phonenumber.PhoneNumberUtil to check whether the query is a
    phone number.
    
    Bug: 5396858
    Change-Id: If389f6d996c6789630d91834d45778f420c6dde3
Commits on Oct 1, 2011
  1. Add new column for cached formatted number.

    flerda committed Oct 1, 2011
    Bug: 5316982
    Change-Id: I2870778c8056468730d82794ddae90c74cab85fc
Commits on Oct 4, 2011
  1. Merge "Add new column for cached formatted number."

    flerda committed with Android (Google) Code Review Oct 4, 2011
  2. Implement new social stream permissions.

    Dave Santoro committed Oct 4, 2011
    Reading/writing social streams now requires READ_SOCIAL_STREAM or
    WRITE_SOCIAL_STREAM permission.  The special stream item insertion
    that occurs on status update insertion is exempt from this
    requirement.
    
    Bug 5406886
    
    Change-Id: I6a711d7f33b501e2c331c71684b2eb3a6bfd5ec5
  3. am 3661211: Implement new social stream permissions.

    Dave Santoro committed with Android Git Automerger Oct 4, 2011
    * commit '36612112760df799ef89f7e324e5dfabd5ca0d2b':
      Implement new social stream permissions.
Commits on Oct 5, 2011
  1. Fix search tests.

    Dave Santoro committed Oct 5, 2011
    Change-Id: I70c53f954c1b0ef74edf505e8427cb78d66a4a8e
Commits on Oct 6, 2011
  1. Use internal APIs for cleaning up photos.

    Dave Santoro committed Oct 6, 2011
    This avoids running into security exceptions when the cleanup
    involves permission-protected data.
    
    Bug 5422732
    
    Change-Id: I5554d53ca76c5d513467c66782f7bf3ea61aa78b
Commits on Oct 10, 2011
  1. Allow multiple inserts in bulk between yields.

    Dave Santoro committed Oct 5, 2011
    This should help to optimize these operations to avoid the overhead
    of doing lots of individual inserts when the database is very active.
    
    Bug 5353552
    
    Change-Id: I5b3a06f41637452ec98297c66579fb7d4f81e2ec
Commits on Oct 13, 2011
  1. Omit "other contacts" in contacts search again

    Daisuke Miyakawa committed Oct 13, 2011
    Per bug 5336673 search_index now has index for "other contacts", which
    isn't appropriate for People UI's contacts search. This change let
    the contacts filter omit them using WHERE clause.
    
    See also Ib77acdfa6968605a66561f0925d0aa81f4522bb9, which introduced
    the search_index modification.
    
    Bug: 5457264
    Change-Id: Ia5dfc7ff33d503b9fe814ee0ec058e85cee0b9c8
  2. Detect profile VCard URIs and support tokens.

    Dave Santoro committed Oct 10, 2011
    This fixes the URI matcher to interpret VCard URIs for the profile
    properly, and adds support in the provider side for pre-authorizing
    URIs using temporary permission tokens.
    
    Bug 5437453
    
    Change-Id: I37bb6f759df833a3f007faef1eb35fb1434f7df2
  3. Merge "Detect profile VCard URIs and support tokens." into ics-mr0

    Dave Santoro committed with Android (Google) Code Review Oct 13, 2011
Commits on Oct 14, 2011
  1. Switch to using SecureRandom for tokens.

    Dave Santoro committed Oct 14, 2011
    Bug 5462343
    
    Change-Id: Ie54fc63eea215491f7e9d842a054996454765fb6
  2. Use hexadecimal collation key for name searches.

    Daniel Lehmann committed Oct 14, 2011
    Also allow prefix search on name
    
    Bug:5337763
    
    Change-Id: I039264be0c8309224d8925ded06ab02a64a5ce1b
  3. Merge "Use hexadecimal collation key for name searches." into ics-mr0

    Daniel Lehmann committed with Android (Google) Code Review Oct 14, 2011
Commits on Oct 17, 2011
  1. Remove Live-Folders

    Daniel Lehmann committed Oct 17, 2011
    Bug:5254892
    Change-Id: I41cf5df369b887361e545d9e0acccef308824875
  2. Merge "Remove Live-Folders"

    Daniel Lehmann committed with Android (Google) Code Review Oct 17, 2011
  3. Update Contacts Provider app icon

    Justin Ho committed Oct 17, 2011
    Change-Id: I85ce57336d552cbda902c753b660232d40c0bf76
  4. am a16ece4: Update Contacts Provider app icon

    Justin Ho committed with Android Git Automerger Oct 17, 2011
    * commit 'a16ece42302a616832aa783725414d0fba37ddd8':
      Update Contacts Provider app icon
Commits on Oct 18, 2011
  1. Code cleanup. Fixes most of the IDE warnings

    Daniel Lehmann committed Oct 18, 2011
    Change-Id: Ibeff9a520563f6e1fea3f409ada6f934e98e4814
  2. Merge "Code cleanup. Fixes most of the IDE warnings"

    Daniel Lehmann committed with Android (Google) Code Review Oct 18, 2011
  3. Import revised translations. DO NOT MERGE

    Eric Fischer committed Oct 18, 2011
    Change-Id: I29d5c555df45af8d846a165ffb475f0d17577879
  4. Merge "Import revised translations. DO NOT MERGE" into ics-mr0

    Eric Fischer committed with Android (Google) Code Review Oct 18, 2011
  5. am a232d3f: (-s ours) Merge "Import revised translations. DO NOT MERG…

    Eric Fischer committed with Android Git Automerger Oct 18, 2011
    …E" into ics-mr0
    
    * commit 'a232d3fe5c79de1fae946d778249bd3ffb9d5d54':
      Import revised translations.  DO NOT MERGE
  6. Import revised translations.

    Eric Fischer committed Oct 18, 2011
    Change-Id: Iaf087944df02c2ef2525b6ccdc77dd2ac6e28025
  7. Merge "Import revised translations."

    Eric Fischer committed with Android (Google) Code Review Oct 18, 2011
Commits on Oct 20, 2011
  1. Import revised translations. DO NOT MERGE

    Eric Fischer committed Oct 20, 2011
    Change-Id: I9027270527106250574d1154ffe0f88a928f7f12
  2. am 001465e: (-s ours) Import revised translations. DO NOT MERGE

    Eric Fischer committed with Android Git Automerger Oct 20, 2011
    * commit '001465e65436a4de1c781be59e52ff163167f1d0':
      Import revised translations.  DO NOT MERGE
Commits on Oct 22, 2011
  1. Fix deadlock case when removing accounts.

    Dave Santoro committed Oct 22, 2011
    The account cleanup flow generally operates on one database (either
    contacts DB or profile DB), bringing the account set up-to-date with
    the accounts that remain in the system.  However, the code was also
    doing an update of the search index, which is bad in the profile case
    because the search index is only associated with the contacts DB, and
    threads must never ever open a profile transaction and then open a
    contacts transaction (or deadlocks may occur).
    
    This fixes the issue by skipping the pointless search index update if
    in profile mode, but longer-term it would be good to get rid of code
    that starts DB transactions outside of using ContactsTransaction.
    
    Bug 5496295
    
    Change-Id: Ieb4d42a21f85a85f18a4415463ea7c8dd3cc2477
Commits on Oct 24, 2011
  1. am 5dccfb0: Fix deadlock case when removing accounts.

    Dave Santoro committed with Android Git Automerger Oct 24, 2011
    * commit '5dccfb059f5df0e9fdba026bcfbed677f44922cd':
      Fix deadlock case when removing accounts.
Commits on Oct 25, 2011
  1. DO NOT MERGE: Fix test crash in ContactsProvider2.initialize().

    Makoto Onuki committed Oct 22, 2011
    Seems like Secure.getLong() (and other methods) internally tries to get
    the Settings provider from the passed context when it's called first time,
    and it crases in tests because our mock context doesn't have it.
    
    Let's just call it with an actual contxext when tests start so it'll initialize
    the settings provider correctly.
    
    Bug 5499268
    
    Change-Id: I863862ead2078715621cb71b1cf15f0dd94c0feb
Commits on Oct 26, 2011
  1. Import revised translations. DO NOT MERGE

    Eric Fischer committed Oct 26, 2011
    Change-Id: I03a17c8b8a2ee4b36624d0b0c3120bae78a4534a
Commits on Oct 27, 2011
  1. Don't use getInstalledPackages().

    Makoto Onuki committed Oct 20, 2011
    It's almost same as my previous CL 143783, except this time it uses
    pm.queryContentProviders() to enumerate only packages that have a content
    provider.
    
    It still uses getPackageInfo(), but only on packages with a directory
    provider and there aren't many directory providers around (there are only
    two known ones: Exchange and the googlesync), so it should be okay.
    
    (We could get rid of the getPackageInfo() call but that'd be too big a change
    for MR1.)
    
    Bug 5422702
    
    Change-Id: I67f51f6a770bf1de6779b366017431c36b63815c
  2. Speed up query for group tab

    Makoto Onuki committed Oct 27, 2011
    - The old query had overhead propotional to the number of groups.
    - The Groups.SUMMARY_WITH_PHONES column is still slow, but we don't use it.
    - We can use the same technique for Groups.SUMMARY_GROUP_COUNT_PER_ACCOUNT.
    
    The only downside is that, we're changing the FROM clause dynamically according
    to the requested column, which is something that we don't usually do.
    Overusing this technique could make code less maintainable...
    
    Bug 5092615
    
    Change-Id: I79b01ae2a232bcd8e3b7186288050fed14a36a72
  3. Merge "Don't use getInstalledPackages()." into ics-mr1

    Makoto Onuki committed with Android (Google) Code Review Oct 27, 2011
  4. Merge "Speed up query for group tab" into ics-mr1

    Makoto Onuki committed with Android (Google) Code Review Oct 27, 2011
Commits on Oct 31, 2011
  1. Fix extreme slowness in FTS search

    Daniel Lehmann committed Oct 31, 2011
    Bug:5534735
    Change-Id: I561bcf32d3c66b1a86b36a043d407a725325419d
Commits on Nov 1, 2011
  1. am 1322df8: Fix extreme slowness in FTS search

    Daniel Lehmann committed with Android Git Automerger Nov 1, 2011
    * commit '1322df8f90d80587748ad10539516635326c01e8':
      Fix extreme slowness in FTS search
  2. Import revised translations.

    Eric Fischer committed Nov 1, 2011
    Change-Id: Ib7832392ca17129129a2df647f22d4c71ea85d3e
  3. Merge "Import revised translations." into ics-mr1

    Eric Fischer committed with Android (Google) Code Review Nov 1, 2011
Commits on Nov 2, 2011
  1. Fix double-close of transactions if yields fail.

    Dave Santoro committed Oct 31, 2011
    This was causing the exception that caused the failed yield to be
    swallowed instead of propagated, as the second close was failing
    due to lack of a DB lock on the thread.
    
    Bug 5515111
    
    Change-Id: Ic847801655b28301913b07b3929794b3ba16c5ae
Commits on Nov 4, 2011
  1. Add support for looking up SIP addresses.

    flerda committed Nov 2, 2011
    Current ContactsContract.PhoneLookup only support looking up phone
    number. As a consequence SIP address look-ups are done with a generic,
    expensive ContactsContract.Data query.
    
    This change adds support for doing a SIP address look-up using
    ContactsContract.PhoneLookup by specifying a query parameter.
    
    By doing so, we can do a trivial but crucial optimization: instead of
    matching against the MIME type as a string, we can use the _id of the
    vnd.android.cursor.item/sip_address MIME type in our database. This
    speeds up queries that used to take over 250ms to 1-2ms.
    
    Bug: 5529690
    Change-Id: I15e7ed225927882fc0fd0958b7d2cbfede12c590
Commits on Nov 5, 2011
  1. Match contacts if identities match.

    Daniel Lehmann committed Oct 21, 2011
    Bug:5237405
    Change-Id: I5def748ecd5ce7d9c847b06b5111217d5d577492
Commits on Nov 8, 2011
  1. In Email-lookup query, prefer visible over invisible contacts

    Daniel Lehmann committed Nov 8, 2011
    Bug:5578303
    Change-Id: I29beb8ce7ab0745b9f57b399fe017d60fbb96285
  2. Merge "In Email-lookup query, prefer visible over invisible contacts"…

    Daniel Lehmann committed with Android (Google) Code Review Nov 8, 2011
    … into ics-mr1
Commits on Nov 14, 2011
  1. Allow the provider to conditionally remove duplicate entries

    Daisuke Miyakawa committed Nov 11, 2011
    Must be after Ie88af0c3d21919ca201f4fcdd46ca09e9f8d94c0, which
    introduced the new flag for duplication removal.
    
    With this change the default behavior for Phone uri will be back
    to the behavior before Ie21abb12736715358dd33bc690269f51ae1e0944
    being introduced.
    
    Bug: 5484956
    Change-Id: I3b6ba3956449520f9e08653fc8beead763a5f8a1
Commits on Nov 15, 2011