incubator-callback-dev mailing list archives

Site index · List index
Message view « Date » · « Thread »
Top « Date » · « Thread »
From "Filip Maj (Created) (JIRA)" <j...@apache.org>
Subject [jira] [Created] (CB-344) Adding a new Contact associated to a Google Android account will fire error callback
Date Thu, 15 Mar 2012 23:32:37 GMT
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 Callback
          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


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

        

Mime
View raw message