[ https://issues.apache.org/jira/browse/CB-828?page=com.atlassian.jira.plugin.system.issuetabpanels:all-tabpanel ]
Olivier Louvignes updated CB-828: --------------------------------- Description: I'm trying to restore 3000 contacts on a device, since i need to display a progress UI, I had to use something like this (SenchaTouch 2 code but you get the point). [CODE] //forEach contacts as contact... _.delay(function() { contact.save({callback : function(contact, operation) { d&&console.log(displayName + ' ~ saved ('+ action +') contact', arguments); j++; App.getViewport().mask({message: __('restore...'), details: j + '/' + count, progress: j/count, mode: 'determinate'}); // Last item ? if(j == count) { contactStore.clearFilter(); return self.afterRestore(callback); } }}); }, 25*i); [/CODE] Works quite well in the simulator but i'm getting regular "failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode" on a device. Major issue is that UI gets stuck for minutes, ends up crashing. Would there be a way to somehow use another thread for theses AddressBook operations? was: I'm trying to restore 3000 contacts on a device, since i need to display a progress UI, I had to use something like this : [CODE] //forEach contacts as contact... _.delay(function() { contact.save({callback : function(contact, operation) { d&&console.log(displayName + ' ~ saved ('+ action +') contact', arguments); j++; App.getViewport().mask({message: __('restore...'), details: j + '/' + count, progress: j/count, mode: 'determinate'}); // Last item ? if(j == count) { contactStore.clearFilter(); return self.afterRestore(callback); } }}); }, 25*i); [/CODE] Works quite well in the simulator but i'm getting regular "failed to return after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode" on a device. Major issue is that UI gets stuck for minutes, ends up crashing. Would there be a way to somehow use another thread for theses AddressBook operations? > iOS contact.save() stucks the UI from updating on heavy load > ------------------------------------------------------------ > > Key: CB-828 > URL: https://issues.apache.org/jira/browse/CB-828 > Project: Apache Cordova > Issue Type: Bug > Components: iOS > Reporter: Olivier Louvignes > Assignee: Shazron Abdullah > Labels: contacts > > I'm trying to restore 3000 contacts on a device, since i need to display a > progress UI, I had to use something like this (SenchaTouch 2 code but you get > the point). > [CODE] > //forEach contacts as contact... > _.delay(function() { > contact.save({callback : function(contact, > operation) { > d&&console.log(displayName + ' ~ saved > ('+ action +') contact', arguments); > j++; > App.getViewport().mask({message: > __('restore...'), details: j + '/' + count, progress: j/count, mode: > 'determinate'}); > // Last item ? > if(j == count) { > contactStore.clearFilter(); > return > self.afterRestore(callback); > } > }}); > }, 25*i); > [/CODE] > Works quite well in the simulator but i'm getting regular "failed to return > after waiting 10 seconds. main run loop mode: kCFRunLoopDefaultMode" on a > device. > Major issue is that UI gets stuck for minutes, ends up crashing. > Would there be a way to somehow use another thread for theses AddressBook > operations? -- 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