@Override public Task<T> getAsync() { // We need to set `ignoreACLs` since we can't use ACLs without the current user. ParseQuery<T> query = ParseQuery.<T>getQuery(className) .fromPin(pinName) .ignoreACLs(); return query.findInBackground().onSuccessTask(new Continuation<List<T>, Task<T>>() { @Override public Task<T> then(Task<List<T>> task) { List<T> results = task.getResult(); if (results != null) { if (results.size() == 1) { return Task.forResult(results.get(0)); } else { return ParseObject.unpinAllInBackground(pinName).cast(); } } return Task.forResult(null); } }).onSuccessTask(new Continuation<T, Task<T>>() { @Override public Task<T> then(Task<T> task) { T ldsObject = task.getResult(); if (ldsObject != null) { return task; } return migrate(legacy, OfflineObjectStore.this).cast(); } }); }
@Override public <T extends ParseObject> Task<Integer> countAsync(ParseQuery.State<T> state, ParseUser user, Task<Void> cancellationToken) { final AtomicBoolean cancelled = new AtomicBoolean(false); cancellationToken.continueWith(new Continuation<Void, Void>() { @Override public Void then(Task<Void> task) { cancelled.set(true); return null; } }); return await(Task.<Void>forResult(null).continueWithTask(new Continuation<Void, Task<Void>>() { @Override public Task<Void> then(Task<Void> task) { if (cancelled.get()) { return Task.cancelled(); } return task; } })).cast(); }
@Override public <T extends ParseObject> Task<List<T>> findAsync(ParseQuery.State<T> state, ParseUser user, Task<Void> cancellationToken) { final AtomicBoolean cancelled = new AtomicBoolean(false); cancellationToken.continueWith(new Continuation<Void, Void>() { @Override public Void then(Task<Void> task) { cancelled.set(true); return null; } }); return await(Task.<Void>forResult(null).continueWithTask(new Continuation<Void, Task<Void>>() { @Override public Task<Void> then(Task<Void> task) { if (cancelled.get()) { return Task.cancelled(); } return task; } })).cast(); }
@Override public <T extends ParseObject> Task<T> getFirstAsync(ParseQuery.State<T> state, ParseUser user, Task<Void> cancellationToken) { final AtomicBoolean cancelled = new AtomicBoolean(false); cancellationToken.continueWith(new Continuation<Void, Void>() { @Override public Void then(Task<Void> task) { cancelled.set(true); return null; } }); return await(Task.<Void>forResult(null).continueWithTask(new Continuation<Void, Task<Void>>() { @Override public Task<Void> then(Task<Void> task) { if (cancelled.get()) { return Task.cancelled(); } return task; } })).cast(); } }
executeTask = object.saveAsync(httpClient, operationSet, sessionToken); } else if (type == EventuallyPin.TYPE_DELETE) { executeTask = object.deleteAsync(sessionToken).cast(); } else { // else if (type == EventuallyPin.TYPE_COMMAND) { ParseRESTCommand command = eventuallyPin.getCommand();