java类io.reactivex.CompletableObserver的实例源码

CompletableObserverExampleActivity.java 文件源码 项目:GitHub 阅读 30 收藏 0 点赞 0 评论 0
private CompletableObserver getCompletableObserver() {
    return new CompletableObserver() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, " onSubscribe : " + d.isDisposed());
        }

        @Override
        public void onComplete() {
            textView.append(" onComplete");
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onComplete");
        }

        @Override
        public void onError(Throwable e) {
            textView.append(" onError : " + e.getMessage());
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onError : " + e.getMessage());
        }
    };
}
AnimateCompletable.java 文件源码 项目:Rx2Animations 阅读 38 收藏 0 点赞 0 评论 0
@Override
protected void subscribeActual(final CompletableObserver completableObserver) {
    verifyMainThread();
    final View view = viewWeakRef.get();
    if (view == null) {
        completableObserver.onComplete();
        return;
    }

    final ViewPropertyAnimatorCompat animator = ViewCompat.animate(view);

    completableObserver.onSubscribe(createAnimationDisposable(animator, onAnimationCancelAction));

    if (preTransformActions != null) {
        applyActions(preTransformActions, animator);
        animator.setDuration(NONE).setStartDelay(NONE)
                .withEndAction(() -> runAnimation(completableObserver, animator))
                .start();
    } else {
        runAnimation(completableObserver, animator);
    }
}
LocationAlarmPresenter.java 文件源码 项目:LocationAware 阅读 30 收藏 0 点赞 0 评论 0
@Override public void onDeleteCheckPoint(int adapterPosition) {
  getCheckPointDataSource().deleteCheckPoint(allCheckPoints.get(adapterPosition))
      .subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread())
      .subscribeWith(new CompletableObserver() {
        @Override public void onSubscribe(Disposable d) {

        }

        @Override public void onComplete() {
          allCheckPoints.remove(adapterPosition);
          getView().removeMarker(adapterPosition);
          getView().notifyListAdapter();
        }

        @Override public void onError(Throwable e) {
          getView().showError("Delete Failed");
        }
      });
}
AttachDisposableCompletable.java 文件源码 项目:DisposableAttach 阅读 37 收藏 0 点赞 0 评论 0
@Override
protected void subscribeActual(CompletableObserver s) {
    CompletableObserver observer;
    try {
        observer = ObjectHelper.requireNonNull(s, "Null Observer");
    } catch (Throwable e) {
        Exceptions.throwIfFatal(e);
        // can't call onError because no way to know if a Disposable has been set or not
        // can't call onSubscribe because the call might have set a Disposable already
        RxJavaPlugins.onError(e);

        NullPointerException npe = new NullPointerException("Actually not, but can't throw other exceptions due to RS");
        npe.initCause(e);
        throw npe;
    }

    source.subscribe(new AttachCompletableObserver(observer, this.compositeDisposable));
}
CompletableIfThen.java 文件源码 项目:RxConditions 阅读 36 收藏 0 点赞 0 评论 0
@Override
protected void subscribeActual(CompletableObserver observer) {
    boolean b;

    try {
        b = condition.getAsBoolean();
    } catch (Throwable ex) {
        EmptyDisposable.error(ex, observer);
        return;
    }

    if (b) {
        then.subscribe(observer);
    } else {
        orElse.subscribe(observer);
    }
}
CompletableObserverExampleActivity.java 文件源码 项目:RxJava2-Android-Sample 阅读 30 收藏 0 点赞 0 评论 0
private CompletableObserver getCompletableObserver() {
    return new CompletableObserver() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, " onSubscribe : " + d.isDisposed());
        }

        @Override
        public void onComplete() {
            textView.append(" onComplete");
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onComplete");
        }

        @Override
        public void onError(Throwable e) {
            textView.append(" onError : " + e.getMessage());
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onError : " + e.getMessage());
        }
    };
}
IgnoreElementsExampleActivity.java 文件源码 项目:RxJava2-Android-Sample 阅读 32 收藏 0 点赞 0 评论 0
private CompletableObserver getObserver() {
    return new CompletableObserver() {

        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, " onSubscribe : " + d.isDisposed());
        }

        @Override
        public void onError(Throwable e) {
            textView.append(" onError : " + e.getMessage());
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onError : " + e.getMessage());
        }

        @Override
        public void onComplete() {
            textView.append(" onComplete");
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onComplete");
        }
    };
}
CompletableErrorProxyOperator.java 文件源码 项目:trust-wallet-android 阅读 37 收藏 0 点赞 0 评论 0
@Override
public CompletableObserver apply(CompletableObserver observer) throws Exception {
    return new DisposableCompletableObserver() {
        @Override
        public void onComplete() {
            if (!isDisposed()) {
                observer.onError(throwable);
            }
        }

        @Override
        public void onError(Throwable ex) {
            if (!isDisposed()) {
                observer.onError(ex);
            }
        }
    };
}
RXVertxDaoTestBase.java 文件源码 项目:vertx-jooq-async 阅读 40 收藏 0 点赞 0 评论 0
protected CompletableObserver failOrCountDownCompletableObserver(CountDownLatch latch) {
    return new CompletableObserver() {

        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onComplete() {
            latch.countDown();
        }

        @Override
        public void onError(Throwable e) {
            fail(e);
        }

    };
}
MaybeConsumers.java 文件源码 项目:science-journal 阅读 32 收藏 0 点赞 0 评论 0
/**
 * Performs the opposite translation from
 * {@link MaybeConsumers#fromCompletableObserver(CompletableObserver)}
 */
public static CompletableObserver toCompletableObserver(final MaybeConsumer<Success> c) {
    return new CompletableObserver() {
        @Override
        public void onSubscribe(@NonNull Disposable d) {
            // do nothing
        }

        @Override
        public void onComplete() {
            c.success(Success.SUCCESS);
        }

        @Override
        public void onError(@NonNull Throwable e) {
            c.fail(throwableToException(e));
        }
    };
}
LoggingConsumer.java 文件源码 项目:science-journal 阅读 37 收藏 0 点赞 0 评论 0
public static CompletableObserver observe(String tag, String operation) {
    return new CompletableObserver() {
        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onComplete() {

        }

        @Override
        public void onError(Throwable e) {
            complain(e, tag, operation);
        }
    };
}
DeckTest.java 文件源码 项目:delern 阅读 37 收藏 0 点赞 0 评论 0
@Test
public void decks_renamed() {
    List<Deck> renamedData = mUser.save().andThen((final CompletableObserver cs) -> {
        Deck deck = new Deck(mUser);
        deck.setName("ToRename");
        deck.setAccepted(true);
        deck.create().subscribe(cs);
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().flatMapCompletable(data -> {
        assertTrue(data.size() == 1 && data.get(0).getName().equals("ToRename"));
        Deck fetchedDeck = data.get(0);
        fetchedDeck.setName("Renamed");
        return fetchedDeck.save();
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().blockingGet();
    assertTrue(renamedData.size() == 1 && renamedData.get(0).getName()
            .equals("Renamed"));
}
DeckTest.java 文件源码 项目:delern 阅读 34 收藏 0 点赞 0 评论 0
@Test
public void decks_changedDeckType() {
    List<Deck> deckTypeData = mUser.save().andThen((final CompletableObserver cs) -> {
        Deck deck = new Deck(mUser);
        deck.setName("DeckType");
        deck.setAccepted(true);
        deck.create().subscribe(cs);
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().flatMapCompletable(data -> {
        assertTrue(data.size() == 1 && data.get(0).getName().equals("DeckType"));
        Deck fetchedDeck = data.get(0);
        fetchedDeck.setDeckType(DeckType.SWISS.name());
        return fetchedDeck.save();
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().blockingGet();
    assertTrue(deckTypeData.size() == 1 && deckTypeData.get(0).getDeckType()
            .equals(DeckType.SWISS.name()));
}
DeckTest.java 文件源码 项目:delern 阅读 82 收藏 0 点赞 0 评论 0
@Test
public void decks_createdAndDeleted() throws Exception {
    List<Deck> deletedDeck = mUser.save().andThen((final CompletableObserver cs) -> {
        Deck deck = new Deck(mUser);
        deck.setName("Created");
        deck.setAccepted(true);
        deck.create().subscribe(cs);
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().flatMapCompletable(data -> {
        assertTrue(data.size() == 1 && data.get(0).getName().equals("Created"));
        return data.get(0).delete();
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().blockingGet();
    assertTrue(deletedDeck.size() == 0);
}
CardTest.java 文件源码 项目:delern 阅读 40 收藏 0 点赞 0 评论 0
@Test
public void cards_createdAndFetched() throws Exception {
    final Deck deck = new Deck(mUser);
    List<Card> cards = mUser.save().andThen((final CompletableObserver cs) -> {
        deck.setName("CreateCards");
        deck.setAccepted(true);
        deck.create().subscribe(cs);
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().flatMapCompletable(data -> {
        assertTrue(data.size() == 1 && data.get(0).getName().equals("CreateCards"));
        Card newCard = new Card(data.get(0));
        newCard.setFront("frontSide");
        newCard.setBack("backSide");
        return newCard.create();
    }).andThen((ObservableSource<List<Card>>) observer ->
            deck.fetchChildren(deck.getChildReference(Card.class), Card.class)
                    .subscribe(observer)
    ).firstOrError().blockingGet();
    assertTrue(cards.size() == 1 && cards.get(0).getFront().equals("frontSide") &&
            cards.get(0).getBack().equals("backSide"));
}
CompletableObserverExampleActivity.java 文件源码 项目:RxJava2-Android-Samples 阅读 32 收藏 0 点赞 0 评论 0
private CompletableObserver getCompletableObserver() {
    return new CompletableObserver() {
        @Override
        public void onSubscribe(Disposable d) {
            Log.d(TAG, " onSubscribe : " + d.isDisposed());
        }

        @Override
        public void onComplete() {
            textView.append(" onComplete");
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onComplete");
        }

        @Override
        public void onError(Throwable e) {
            textView.append(" onError : " + e.getMessage());
            textView.append(AppConstant.LINE_SEPARATOR);
            Log.d(TAG, " onError : " + e.getMessage());
        }
    };
}
RXVertxDaoTestBase.java 文件源码 项目:vertx-jooq 阅读 35 收藏 0 点赞 0 评论 0
protected  CompletableObserver failOrCountDownCompletableObserver(CountDownLatch latch) {
    return new CompletableObserver() {

        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onComplete() {
            latch.countDown();
        }

        @Override
        public void onError(Throwable e) {
            fail(e);
        }

    };
}
CircuitBreakerCompletableObserverTest.java 文件源码 项目:resilience4j 阅读 35 收藏 0 点赞 0 评论 0
@Test
public void shouldHonorDisposedWhenCallingOnComplete() throws Exception {
    // Given
    Disposable disposable = mock(Disposable.class);
    CompletableObserver childObserver = mock(CompletableObserver.class);
    CompletableObserver decoratedObserver = CircuitBreakerOperator.of(circuitBreaker).apply(childObserver);
    decoratedObserver.onSubscribe(disposable);

    // When
    ((Disposable) decoratedObserver).dispose();
    decoratedObserver.onComplete();

    // Then
    verify(childObserver, never()).onComplete();
    assertSingleSuccessfulCall();
}
CircuitBreakerCompletableObserverTest.java 文件源码 项目:resilience4j 阅读 31 收藏 0 点赞 0 评论 0
@Test
public void shouldHonorDisposedWhenCallingOnError() throws Exception {
    // Given
    Disposable disposable = mock(Disposable.class);
    CompletableObserver childObserver = mock(CompletableObserver.class);
    CompletableObserver decoratedObserver = CircuitBreakerOperator.of(circuitBreaker).apply(childObserver);
    decoratedObserver.onSubscribe(disposable);

    // When
    ((Disposable) decoratedObserver).dispose();
    decoratedObserver.onError(new IllegalStateException());

    // Then
    verify(childObserver, never()).onError(any());
    assertSingleFailedCall();
}
BulkheadCompletableObserverTest.java 文件源码 项目:resilience4j 阅读 40 收藏 0 点赞 0 评论 0
@Test
public void shouldHonorDisposedWhenCallingOnComplete() throws Exception {
    // Given
    Disposable disposable = mock(Disposable.class);
    CompletableObserver childObserver = mock(CompletableObserver.class);
    CompletableObserver decoratedObserver = BulkheadOperator.of(bulkhead).apply(childObserver);
    decoratedObserver.onSubscribe(disposable);

    // When
    ((Disposable) decoratedObserver).dispose();
    decoratedObserver.onComplete();

    // Then
    verify(childObserver, never()).onComplete();
    assertThat(bulkhead.getMetrics().getAvailableConcurrentCalls()).isEqualTo(1);
}
BulkheadCompletableObserverTest.java 文件源码 项目:resilience4j 阅读 30 收藏 0 点赞 0 评论 0
@Test
public void shouldHonorDisposedWhenCallingOnError() throws Exception {
    // Given
    Disposable disposable = mock(Disposable.class);
    CompletableObserver childObserver = mock(CompletableObserver.class);
    CompletableObserver decoratedObserver = BulkheadOperator.of(bulkhead).apply(childObserver);
    decoratedObserver.onSubscribe(disposable);

    // When
    ((Disposable) decoratedObserver).dispose();
    decoratedObserver.onError(new IllegalStateException());

    // Then
    verify(childObserver, never()).onError(any());
    assertThat(bulkhead.getMetrics().getAvailableConcurrentCalls()).isEqualTo(1);
}
BulkheadCompletableObserverTest.java 文件源码 项目:resilience4j 阅读 28 收藏 0 点赞 0 评论 0
@Test
public void shouldNotReleaseBulkheadWhenWasDisposedAfterNotPermittedSubscribe() throws Exception {
    // Given
    Disposable disposable = mock(Disposable.class);
    CompletableObserver childObserver = mock(CompletableObserver.class);
    CompletableObserver decoratedObserver = BulkheadOperator.of(bulkhead).apply(childObserver);
    bulkhead.isCallPermitted();
    assertThat(bulkhead.getMetrics().getAvailableConcurrentCalls()).isEqualTo(0);
    decoratedObserver.onSubscribe(disposable);

    // When
    ((Disposable) decoratedObserver).dispose();

    // Then
    assertThat(bulkhead.getMetrics().getAvailableConcurrentCalls()).isEqualTo(0);
}
CompletableHelper.java 文件源码 项目:vertx-rx 阅读 36 收藏 0 点赞 0 评论 0
/**
 * Adapts an Vert.x {@code Handler<AsyncResult<T>>} to an RxJava2 {@link SingleObserver}.
 * <p>
 * The returned observer can be subscribed to an {@link Single#subscribe(SingleObserver)}.
 *
 * @param handler the handler to adapt
 * @return the observer
 */
public static <T> CompletableObserver toObserver(Handler<AsyncResult<T>> handler) {
  AtomicBoolean completed = new AtomicBoolean();
  return new CompletableObserver() {
    @Override
    public void onSubscribe(@NonNull Disposable d) {
    }
    @Override
    public void onComplete() {
      if (completed.compareAndSet(false, true)) {
        handler.handle(io.vertx.core.Future.succeededFuture());
      }
    }
    public void onSuccess() {
      if (completed.compareAndSet(false, true)) {
        handler.handle(io.vertx.core.Future.succeededFuture());
      }
    }
    @Override
    public void onError(Throwable error) {
      if (completed.compareAndSet(false, true)) {
        handler.handle(io.vertx.core.Future.failedFuture(error));
      }
    }
  };
}
RxValueAnimator.java 文件源码 项目:Rx2Animations 阅读 34 收藏 0 点赞 0 评论 0
@Override
protected void subscribeActual(final CompletableObserver completableObserver) {
    verifyMainThread();
    final UpdateListener updateListener = new UpdateListener(completableObserver, valueUpdateAction);
    final AnimationEndListener endListener = new AnimationEndListener(completableObserver, valueAnimator, animationCancelAction);
    final ValueAnimatorDisposable animatorDisposable = new ValueAnimatorDisposable(valueAnimator, updateListener, endListener);
    completableObserver.onSubscribe(animatorDisposable);

    valueAnimator.addUpdateListener(updateListener);
    valueAnimator.addListener(endListener);
    valueAnimator.start();
}
Demo_ignoreElements.java 文件源码 项目:Reactive-Programming-With-Java-9 阅读 43 收藏 0 点赞 0 评论 0
public static void main(String[] args) {
    // TODO Auto-generated method stub
    String[] fruits = { "mango", "pineapple", "apple", "mango", "papaya" };
    Observable.fromArray(fruits).ignoreElements().subscribe(
        new CompletableObserver() {
        long time=0;
        @Override
        public void onSubscribe(Disposable disposable) {
            // TODO Auto-generated method stub
            time=System.currentTimeMillis();
            System.out.println(disposable.isDisposed()+"\t"+time);


        }
        @Override
        public void onError(Throwable throwable) {
            // TODO Auto-generated method stub
            throwable.printStackTrace();
        }

        @Override
        public void onComplete() {
            // TODO Auto-generated method stub
            System.out.println("completed");
            long time_to_complete=System.currentTimeMillis()-time;
            System.out.println("process completedin: "+time_to_complete+"ms");

        }
    });



}
CompletableTask.java 文件源码 项目:RxTask 阅读 30 收藏 0 点赞 0 评论 0
@Override
protected void subscribeActual(CompletableObserver observer) {
    Task<Void> task = run();
    CompletableTaskCallback callback = new CompletableTaskCallback(task, observer);
    observer.onSubscribe(callback);
    task.addOnCompleteListener(callback);
}
ResetPasswordPresenter.java 文件源码 项目:android-rss-feed-reader 阅读 32 收藏 0 点赞 0 评论 0
@Override
public void resetPassword(String email) {
    if (!mUserInfoValidator.isEmailValid(email)) {
        getView().showEmailError(R.string.email_error);
        return;
    }

    getView().showProgress(R.string.progress_message_authenticating);
    mUserManager.resetPassword(email).subscribe(new CompletableObserver() {
        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onComplete() {
            getView().hideProgress();
            getView().navigateToMain();
        }

        @Override
        public void onError(Throwable e) {
            getView().hideProgress();
            getView().showSnackBar(e.getMessage());
        }
    });
}
SignUpPresenter.java 文件源码 项目:android-rss-feed-reader 阅读 36 收藏 0 点赞 0 评论 0
@Override
public void signUp(String email, String password) {
    if (!mValidator.isEmailValid(email)) {
        getView().showEmailError(R.string.email_error);
        return;
    }

    if (!mValidator.isPasswordValid(password)) {
        getView().showPasswordError(R.string.password_error);
        return;
    }

    getView().showProgress(R.string.progress_message_loading);
    mUserManager.createUser(email, password).subscribe(new CompletableObserver() {
        @Override
        public void onComplete() {
            getView().hideProgress();
            getView().navigateToMain();
        }

        @Override
        public void onSubscribe(Disposable d) {

        }

        @Override
        public void onError(Throwable e) {
            getView().hideProgress();
            getView().showSnackBar(e.getMessage());
        }
    });
}
MaybeConsumers.java 文件源码 项目:science-journal 阅读 39 收藏 0 点赞 0 评论 0
/**
 * MaybeConsumer<Success> is very similar to {@link CompletableObserver} in JavaRX.  Both are
 * looking for either a signal that a process has succeeded, or that it has failed with some
 * exception.  For the time period where we are still using both interfaces, we will find it
 * useful to be able to switch between them.
 *
 * @return a {@link MaybeConsumer<Success>} that pipes {@link MaybeConsumer#success(Object)}
 *         to {@link CompletableObserver#onComplete()}, and
 *         {@link MaybeConsumer#fail(Exception)} to
 *         {@link CompletableObserver#onError(Throwable)}
 */
public static MaybeConsumer<Success> fromCompletableObserver(final CompletableObserver o) {
    return new MaybeConsumer<Success>() {
        @Override
        public void success(Success value) {
            o.onComplete();
        }

        @Override
        public void fail(Exception e) {
            o.onError(e);
        }
    };
}
DeckTest.java 文件源码 项目:delern 阅读 29 收藏 0 点赞 0 评论 0
@Test
public void decks_createdAndFetched() throws Exception {
    List<Deck> data = mUser.save().andThen((final CompletableObserver cs) -> {
        Deck deck = new Deck(mUser);
        deck.setName("My Deck");
        deck.setAccepted(true);
        deck.create().subscribe(cs);
    }).andThen((ObservableSource<List<Deck>>) observer ->
            mUser.fetchChildren(mUser.getChildReference(Deck.class), Deck.class)
                    .subscribe(observer)
    ).firstOrError().blockingGet();
    assertTrue(data.size() == 1 && data.get(0).getName().equals("My Deck"));
}


问题


面经


文章

微信
公众号

扫码关注公众号