[
https://issues.apache.org/jira/browse/CB-344?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel
]
Joe Bowser resolved CB-344.
---------------------------
Resolution: Cannot Reproduce
This issue doesn't exist on 3.0.0, closing this old issue.
> Adding a new Contact associated to a Google Android account will fire error
> callback
> ------------------------------------------------------------------------------------
>
> Key: CB-344
> URL: https://issues.apache.org/jira/browse/CB-344
> Project: Apache Cordova
> Issue Type: Bug
> Components: Android
> Affects Versions: 1.5.0
> Environment: Android devices synchronized to a Google account. NOT
> AFFECTED: Android devices *not* synchronized to a Google account.
> Reporter: Filip Maj
> Assignee: Joe Bowser
> Fix For: Master
>
>
> For Android devices sync'ed to a Google account, the native framework will
> end up, by default, creating and adding a new contact to the Google account.
> However, there is an issue with the current implementation. The way the
> Contact Manager class executes the {{save}} method, it [runs through the
> motions of saving, then when that completes, tries to retrieve the
> newly-created contact
> immediately|https://github.com/apache/incubator-cordova-android/blob/master/framework/src/org/apache/cordova/ContactManager.java#L91].
> The issue arises when [checking for the newly-created
> contact|work/src/org/apache/cordova/ContactManager.java#L94]. What seems to
> be happening behind the scenes is there is a delay between when the contact
> is saved, and when the contact becomes available/searchable (possibly due to
> cloud synchronization with Google services?). Therefore, trying to retrieve
> the contact immediately after creating it generally causes the error callback
> to fail. This behaviour is exhibited in [the mobile-spec contact save()
> test|https://github.com/apache/incubator-cordova-mobile-spec/blob/master/autotest/tests/contacts.tests.js#L258-L284].
> Interestingly enough, on a device that is *not* associated to a Google
> account, this test passes every time.
> Possibly worth investigating is whether contacts created and associated/saved
> to other types of accounts (Exchange?) exhibit the same problem.
> One naive workaround that I can think of is to {{sleep}} in a {{while}} loop
> inside the {{save}} method in ContactManager until the contact is found, and
> then fire off the appropriate callback. However we want to make sure the
> PluginManager fires off {{save}} executions on a separate thread for this,
> probably.
--
This message was sent by Atlassian JIRA
(v6.1#6144)