io.reactivex.Single.flatMapCompletable()方法的使用及代码示例

x33g5p2x  于2022-01-29 转载在 其他  
字(10.3k)|赞(0)|评价(0)|浏览(129)

本文整理了Java中io.reactivex.Single.flatMapCompletable()方法的一些代码示例,展示了Single.flatMapCompletable()的具体用法。这些代码示例主要来源于Github/Stackoverflow/Maven等平台,是从一些精选项目中提取出来的代码,具有较强的参考意义,能在一定程度帮忙到你。Single.flatMapCompletable()方法的具体详情如下:
包路径:io.reactivex.Single
类名称:Single
方法名:flatMapCompletable

Single.flatMapCompletable介绍

[英]Returns a Completable that completes based on applying a specified function to the item emitted by the source Single, where that function returns a Completable.

Scheduler: flatMapCompletable does not operate by default on a particular Scheduler.
[中]返回一个Completable,该Completable基于对源Single发出的项应用指定函数而完成,其中该函数返回一个Completable。
调度器:flatMapCompletable默认情况下不会在特定调度器上运行。

代码示例

代码示例来源:origin: Polidea/RxAndroidBle

@Override
public Completable writeDescriptor(
    @NonNull final UUID serviceUuid, @NonNull final UUID characteristicUuid, @NonNull final UUID descriptorUuid,
    @NonNull final byte[] data
) {
  return discoverServices()
      .flatMap(new Function<RxBleDeviceServices, SingleSource<BluetoothGattDescriptor>>() {
        @Override
        public SingleSource<BluetoothGattDescriptor> apply(RxBleDeviceServices rxBleDeviceServices) {
          return rxBleDeviceServices.getDescriptor(serviceUuid, characteristicUuid, descriptorUuid);
        }
      })
      .flatMapCompletable(new Function<BluetoothGattDescriptor, CompletableSource>() {
        @Override
        public CompletableSource apply(BluetoothGattDescriptor bluetoothGattDescriptor) {
          return writeDescriptor(bluetoothGattDescriptor, data);
        }
      });
}

代码示例来源:origin: Polidea/RxAndroidBle

@NonNull
private Completable setupCharacteristicNotification(
    final UUID bluetoothGattCharacteristicUUID,
    final NotificationSetupMode setupMode,
    final boolean enabled,
    final boolean isIndication
) {
  if (setupMode == NotificationSetupMode.DEFAULT) {
    final byte[] enableValue = isIndication ? ENABLE_INDICATION_VALUE : ENABLE_NOTIFICATION_VALUE;
    return getClientConfigurationDescriptor(bluetoothGattCharacteristicUUID)
        .flatMapCompletable(new Function<BluetoothGattDescriptor, Completable>() {
          @Override
          public Completable apply(BluetoothGattDescriptor bluetoothGattDescriptor) {
            return writeDescriptor(bluetoothGattDescriptor, enabled ? enableValue : DISABLE_NOTIFICATION_VALUE);
          }
        });
  } else {
    return Completable.complete();
  }
}

代码示例来源:origin: ReactiveX/RxJava

@Test
  public void dispose() {
    TestHelper.checkDisposed(Single.just(1).flatMapCompletable(new Function<Integer, Completable>() {
      @Override
      public Completable apply(Integer v) throws Exception {
        return Completable.complete();
      }
    }));
  }
}

代码示例来源:origin: ReactiveX/RxJava

@Test
public void singleCompletable() throws Exception {
  List<Throwable> errors = TestHelper.trackPluginErrors();
  try {
    TestObserver<Void> to = Single.just(1)
    .subscribeOn(Schedulers.io())
    .flatMapCompletable(new Function<Integer, Completable>() {
      @Override
      public Completable apply(Integer v) throws Exception {
        sleep();
        return Completable.error(new TestException());
      }
    })
    .test();
    cb.await();
    beforeCancelSleep(to);
    to.cancel();
    Thread.sleep(SLEEP_AFTER_CANCEL);
    to.assertEmpty();
    assertTrue(errors.toString(), errors.isEmpty());
  } finally {
    RxJavaPlugins.reset();
  }
}

代码示例来源:origin: ReactiveX/RxJava

@Test
public void singleCompletable2() throws Exception {
  List<Throwable> errors = TestHelper.trackPluginErrors();
  try {
    TestObserver<Integer> to = Single.just(1)
    .subscribeOn(Schedulers.io())
    .flatMapCompletable(new Function<Integer, Completable>() {
      @Override
      public Completable apply(Integer v) throws Exception {
        sleep();
        return Completable.error(new TestException());
      }
    })
    .toSingleDefault(0)
    .test();
    cb.await();
    beforeCancelSleep(to);
    to.cancel();
    Thread.sleep(SLEEP_AFTER_CANCEL);
    to.assertEmpty();
    assertTrue(errors.toString(), errors.isEmpty());
  } finally {
    RxJavaPlugins.reset();
  }
}

代码示例来源:origin: TeamNewPipe/NewPipe

public Completable updateChannelInfo(final ChannelInfo info) {
  final Function<List<SubscriptionEntity>, CompletableSource> update = new Function<List<SubscriptionEntity>, CompletableSource>() {
    @Override
    public CompletableSource apply(@NonNull List<SubscriptionEntity> subscriptionEntities) {
      if (DEBUG) Log.d(TAG, "updateChannelInfo() called with: subscriptionEntities = [" + subscriptionEntities + "]");
      if (subscriptionEntities.size() == 1) {
        SubscriptionEntity subscription = subscriptionEntities.get(0);
        // Subscriber count changes very often, making this check almost unnecessary.
        // Consider removing it later.
        if (!isSubscriptionUpToDate(info, subscription)) {
          subscription.setData(info.getName(), info.getAvatarUrl(), info.getDescription(), info.getSubscriberCount());
          return Completable.fromRunnable(() -> subscriptionTable().update(subscription));
        }
      }
      return Completable.complete();
    }
  };
  return subscriptionTable().getSubscription(info.getServiceId(), info.getUrl())
      .firstOrError()
      .flatMapCompletable(update);
}

代码示例来源:origin: ReactiveX/RxJava

@Test
public void mapperReturnsNull() {
  final boolean[] b = { false };
  Single.just(1)
  .flatMapCompletable(new Function<Integer, Completable>() {
    @Override
    public Completable apply(Integer t) throws Exception {
      return null;
    }
  })
  .test()
  .assertFailure(NullPointerException.class);
  assertFalse(b[0]);
}

代码示例来源:origin: ReactiveX/RxJava

@Test
public void mapperThrows() {
  final boolean[] b = { false };
  Single.just(1)
  .flatMapCompletable(new Function<Integer, Completable>() {
    @Override
    public Completable apply(Integer t) throws Exception {
      throw new TestException();
    }
  })
  .test()
  .assertFailure(TestException.class);
  assertFalse(b[0]);
}

代码示例来源:origin: ReactiveX/RxJava

@Test
public void normal() {
  final boolean[] b = { false };
  Single.just(1)
  .flatMapCompletable(new Function<Integer, Completable>() {
    @Override
    public Completable apply(Integer t) throws Exception {
      return Completable.complete().doOnComplete(new Action() {
        @Override
        public void run() throws Exception {
          b[0] = true;
        }
      });
    }
  })
  .test()
  .assertResult();
  assertTrue(b[0]);
}

代码示例来源:origin: ReactiveX/RxJava

@Test
public void error() {
  final boolean[] b = { false };
  Single.<Integer>error(new TestException())
  .flatMapCompletable(new Function<Integer, Completable>() {
    @Override
    public Completable apply(Integer t) throws Exception {
      return Completable.complete().doOnComplete(new Action() {
        @Override
        public void run() throws Exception {
          b[0] = true;
        }
      });
    }
  })
  .test()
  .assertFailure(TestException.class);
  assertFalse(b[0]);
}

代码示例来源:origin: chat-sdk/chat-sdk-android

@Override
public Completable loginWithTwitter(final Activity activity) {
  return Single.create((SingleOnSubscribe<AuthCredential>) e -> {
    twitterButton = new TwitterLoginButton(activity);
    twitterButton.setCallback(new Callback<TwitterSession>() {
      @Override
      public void success(Result<TwitterSession> result) {
        e.onSuccess(TwitterAuthProvider.getCredential(result.data.getAuthToken().token, result.data.getAuthToken().secret));
      }
      @Override
      public void failure(TwitterException exception) {
        e.onError(exception);
      }
    });
    twitterButton.callOnClick();
  }).flatMapCompletable(authCredential -> signInWithCredential(activity, authCredential));
}

代码示例来源:origin: chat-sdk/chat-sdk-android

}).flatMapCompletable(user -> new UserWrapper(user).push()).subscribeOn(Schedulers.single());

代码示例来源:origin: chat-sdk/chat-sdk-android

public Completable deleteThreadWithEntityID(final String entityID) {
  return Single.create((SingleOnSubscribe<Thread>) e -> {
    final Thread thread = DaoCore.fetchEntityWithEntityID(Thread.class, entityID);
    e.onSuccess(thread);
  }).flatMapCompletable(thread -> new ThreadWrapper(thread).deleteThread()).subscribeOn(Schedulers.single());
}

代码示例来源:origin: chat-sdk/chat-sdk-android

@Override
public Completable loginWithFacebook(final Activity activity) {
  return Single.create((SingleOnSubscribe<AuthCredential>) e -> {
    LoginButton button = new LoginButton(activity);
    facebookCallbackManager = CallbackManager.Factory.create();
    button.registerCallback(facebookCallbackManager, new FacebookCallback<LoginResult>() {
      @Override
      public void onSuccess(LoginResult loginResult) {
        e.onSuccess(FacebookAuthProvider.getCredential(loginResult.getAccessToken().getToken()));
      }
      @Override
      public void onCancel() {
        e.onError(null);
      }
      @Override
      public void onError(FacebookException error) {
        e.onError(error);
      }
    });
    button.callOnClick();
  }).flatMapCompletable(authCredential -> signInWithCredential(activity, authCredential));
}

代码示例来源:origin: chat-sdk/chat-sdk-android

@Override
public Completable loginWithGoogle(final Activity activity) {
  return Single.create((SingleOnSubscribe<AuthCredential>) e -> {
    googleClient = new GoogleApiClient.Builder(activity)
        .addApi(Auth.GOOGLE_SIGN_IN_API, gso)
        .build();
    Intent signInIntent = Auth.GoogleSignInApi.getSignInIntent(googleClient);
    activity.startActivityForResult(signInIntent, RC_GOOGLE_SIGN_IN);
    googleSignInCompleteListener = result -> {
      if(result.isSuccess()) {
        AuthCredential credential = GoogleAuthProvider.getCredential(result.getSignInAccount().getIdToken(), null);
        e.onSuccess(credential);
      }
      else {
        e.onError(new Exception(result.getStatus().toString()));
      }
    };
  }).flatMapCompletable(authCredential -> signInWithCredential(activity, authCredential));
}

代码示例来源:origin: chat-sdk/chat-sdk-android

public Completable authenticateWithCachedToken() {
  return Single.create((SingleOnSubscribe<FirebaseUser>) emitter-> {
        if (isAuthenticating()) {
          emitter.onError(ChatError.getError(ChatError.Code.AUTH_IN_PROCESS, "Cant execute two auth in parallel"));
        } else {
          setAuthStatus(AuthStatus.CHECKING_IF_AUTH);
          FirebaseUser user = FirebaseAuth.getInstance().getCurrentUser();
          if (user != null) {
            emitter.onSuccess(user);
          } else {
            emitter.onError(ChatError.getError(ChatError.Code.NO_AUTH_DATA, "No auth bundle found"));
          }
        }
      })
      .flatMapCompletable(this::authenticateWithUser)
      .doOnTerminate(this::setAuthStateToIdle) // Whether we complete successfully or not, we set the status to idle
      .subscribeOn(Schedulers.single());
}

代码示例来源:origin: jshvarts/OfflineSampleApp

public Completable addComment(String commentText) {
    return localCommentRepository.add(ModelConstants.DUMMY_PHOTO_ID, commentText)
        .flatMapCompletable(syncCommentUseCase::syncComment);
  }
}

代码示例来源:origin: com.blackducksoftware.bdio/bdio-tinkerpop

@Override
public Publisher<?> persistFramedEntries(Flowable<Map<String, Object>> framedEntries) {
  return framedEntries
      .flatMapIterable(BdioDocument::toGraphNodes)
      .reduce(this, TinkerGraphBlackDuckIoReader::accumulate)
      .flatMapCompletable(TinkerGraphBlackDuckIoReader::checkForMissingNodes)
      .toFlowable();
}

代码示例来源:origin: chat-sdk/chat-sdk-android

.flatMapCompletable(this::authenticateWithUser)
.doOnTerminate(this::setAuthStateToIdle)
.subscribeOn(Schedulers.single());

代码示例来源:origin: FroMage/redpipe

public static Completable doInConnectionCompletable(Func1<? super SQLConnection, ? extends Completable> func){
  return Completable.defer(() -> {
    Single<SQLConnection> connection = getConnection();
    return connection.flatMapCompletable(conn -> {
      return func.call(conn).doAfterTerminate(() -> {
        conn.close();
      });
    });
  });
}

相关文章

微信公众号

最新文章

更多