@Test public void verifyCancellation() { final AtomicInteger i = new AtomicInteger(); //noinspection unchecked because Java Single<Integer> source = Single.create(e -> e.setCancellable(i::incrementAndGet)); CompletableSubject scope = CompletableSubject.create(); source.as(autoDisposable(scope)) .subscribe(); assertThat(i.get()).isEqualTo(0); assertThat(scope.hasObservers()).isTrue(); scope.onComplete(); // Verify cancellation was called assertThat(i.get()).isEqualTo(1); assertThat(scope.hasObservers()).isFalse(); }
@Override public void subscribe(SingleEmitter<Integer> e) throws Exception { e.setDisposable(d1); e.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { d2.dispose(); } }); e.onSuccess(1); e.onError(new TestException()); e.onSuccess(2); e.onError(new TestException()); } })
@Override public void subscribe(SingleEmitter<Response> e) { try { requestBuilder.setCallback(new RequestCallback() { @Override public void onResponseReceived(Request req, Response res) { e.onSuccess(res); } @Override public void onError(Request req, Throwable ex) { e.onError(ex); } }); Request request = requestBuilder.send(); e.setCancellable(request::cancel); } catch (RequestException ex) { e.onError(ex); } } });
@Override public void subscribe( @NonNull final SingleEmitter<DataSnapshot> emit) throws Exception { final ValueEventListener listener = listener(emit); emit.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { query.removeEventListener(listener); } }); query.addListenerForSingleValueEvent(listener); } });
public void subscribe(final SingleEmitter<UploadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.putFile(uri).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<UploadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.putFile(uri, metadata) .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<FileDownloadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<FileDownloadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.getFile(destinationUri).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { @Override public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<UploadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.putBytes(bytes).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<FileDownloadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<FileDownloadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.getFile(destinationFile).addOnSuccessListener(new OnSuccessListener<FileDownloadTask.TaskSnapshot>() { @Override public void onSuccess(FileDownloadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<StreamDownloadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<StreamDownloadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.getStream().addOnSuccessListener(new OnSuccessListener<StreamDownloadTask.TaskSnapshot>() { @Override public void onSuccess(StreamDownloadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<UploadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.putStream(stream).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<UploadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.putFile(uri, metadata, existingUploadUri) .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<StreamDownloadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<StreamDownloadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.getStream(processor).addOnSuccessListener(new OnSuccessListener<StreamDownloadTask.TaskSnapshot>() { @Override public void onSuccess(StreamDownloadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<UploadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.putBytes(bytes, metadata).addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
public void subscribe(final SingleEmitter<UploadTask.TaskSnapshot> emitter) throws Exception { final StorageTask<UploadTask.TaskSnapshot> taskSnapshotStorageTask = storageRef.putStream(stream, metadata) .addOnSuccessListener(new OnSuccessListener<UploadTask.TaskSnapshot>() { @Override public void onSuccess(UploadTask.TaskSnapshot taskSnapshot) { emitter.onSuccess(taskSnapshot); } }).addOnFailureListener(new OnFailureListener() { @Override public void onFailure(@NonNull Exception e) { if (!emitter.isDisposed()) emitter.onError(e); } }); emitter.setCancellable(new Cancellable() { @Override public void cancel() throws Exception { taskSnapshotStorageTask.cancel(); } }); } });
@Override public void subscribe(SingleEmitter<Object> e) throws Exception { e.setCancellable(SoloTest.this); e.onError(new IOException()); e.onSuccess(2); e.onError(new IOException()); } })
@Override public final void subscribe(SingleEmitter<T> subscriber) throws Exception { final GoogleApiClient apiClient = createApiClient(new ApiClientConnectionCallbacks(subscriber)); subscriptionInfoMap.put(apiClient, subscriber); try { apiClient.connect(); } catch (Throwable ex) { subscriber.onError(ex); } subscriber.setCancellable(() -> { if (apiClient.isConnected() || apiClient.isConnecting()) { onUnsubscribed(apiClient); apiClient.disconnect(); } subscriptionInfoMap.remove(apiClient); }); }
@Override public void subscribe(SingleEmitter<Object> e) throws Exception { e.setCancellable(SoloTest.this); e.onSuccess(1); e.onSuccess(2); e.onError(new IOException()); } })
em.setCancellable(() -> { if (xhr.readyState != XMLHttpRequest.DONE) xhr.abort(); });
@Override public final void subscribe(SingleEmitter<T> emitter) throws Exception { final GoogleApiClient apiClient = createApiClient(new ApiClientConnectionCallbacks(emitter)); try { apiClient.connect(); } catch (Throwable ex) { emitter.onError(ex); } emitter.setCancellable(() -> { if (apiClient.isConnected()) { onUnsubscribed(apiClient); } apiClient.disconnect(); }); }