I'm currently experimenting with the offline / sync capabilities of LCDS. My concern is to get notified when a write operation has been done, whether we are working online or offline from the server. This way, my code has a consistent behavior whatever the connection status is. According to the docs and examples found online, the usual way to do it is using an AsyncToken / ItemReference returned by the write operations.
This works perfectly well when online, my callbacks are triggered correctly. But when working offline, I'm facing two problems :
if I enable autoCommit, the calls to "createItem()", "updateItem()", and "deleteItem()" all throw an exception because we try to call the service on server while offline ;
if I disable autoCommit and manually call "commit()" when appropriate (i.e. only when connected), I don't get any error (and all the operations will be replayed once reconnected), but I no longer get the callbacks from the AsyncTokens...
I found a solution in the sample app from Christophe Coenraerts, where he disabled the autoCache feature and thus uses the callback from the "merge()" operation to trigger actions. But I find this weird from a code point of view. We want to listen to individual events, not a generic event that may include multiple operations at once.
Is there any mean to use the same callbacks for both offline and online mode ?