下面列出了怎么用io.reactivex.CompletableTransformer的API类实例代码及写法,或者点击链接到github查看源代码。
@NonNull
static CompletableTransformer teardownModeTransformer(final DescriptorWriter descriptorWriter,
final BluetoothGattCharacteristic characteristic,
final byte[] value,
final NotificationSetupMode mode) {
return new CompletableTransformer() {
@Override
public Completable apply(Completable completable) {
if (mode == NotificationSetupMode.COMPAT) {
return completable;
} else {
return completable.andThen(writeClientCharacteristicConfig(characteristic, descriptorWriter, value));
}
}
};
}
/**
* Completable线程切换简化
*/
public static CompletableTransformer completableSchedulerHelper() {
return new CompletableTransformer() {
@Override
public Completable apply(Completable observable) {
return observable.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}
};
}
public CompletableUseCase(final UseCaseExecutor useCaseExecutor,
final PostExecutionThread postExecutionThread) {
super(useCaseExecutor, postExecutionThread);
schedulersTransformer = new CompletableTransformer() {
@Override
public Completable apply(Completable completable) {
return completable.subscribeOn(useCaseExecutor.getScheduler())
.observeOn(postExecutionThread.getScheduler());
}
};
}
private CompletableTransformer getSchedulersTransformer() {
return schedulersTransformer;
}
protected CompletableTransformer applySchedulers() {
return upstream -> upstream
.unsubscribeOn(Schedulers.newThread())
.subscribeOn(Schedulers.io())
.observeOn(AndroidSchedulers.mainThread());
}