[ 
https://issues.apache.org/jira/browse/CB-344?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=13434408#comment-13434408
 ] 

Braden Shepherdson commented on CB-344:
---------------------------------------

I can't reproduce this on my Galaxy Nexus, which is synced to three accounts. 
Nor on the 4.0 simulator, synced to none.

Does this bug still exist in recent Cordova versions?
                
> 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 is automatically generated by JIRA.
If you think it was sent incorrectly, please contact your JIRA administrators: 
https://issues.apache.org/jira/secure/ContactAdministrators!default.jspa
For more information on JIRA, see: http://www.atlassian.com/software/jira

        

Reply via email to