类io.reactivex.SingleTransformer源码实例Demo

下面列出了怎么用io.reactivex.SingleTransformer的API类实例代码及写法,或者点击链接到github查看源代码。

public static <R extends Result> SingleTransformer<R, R> forSingle() {
    return upstream -> upstream.onErrorResumeNext(throwable -> {
        if(throwable instanceof StatusException) {
            StatusException statusException = (StatusException) throwable;

            if(statusException.getStatus().hasResolution()) {
                return Single.just((R) statusException.getResult());
            } else {
                return Single.error(throwable);
            }

        } else {
            return Single.error(throwable);
        }
    });
}
 
源代码2 项目: tysq-android   文件: RxParser.java
/**
 * 拆壳
 *
 * @param <T>
 * @return
 */
public static <T> SingleTransformer<RespData<T>, T> handleSingleDataResult() {
    return new SingleTransformer<RespData<T>, T>() {
        @Override
        public SingleSource<T> apply(Single<RespData<T>> upstream) {
            return upstream
                    .map(new TransToData<T>())
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread());
        }

    };
}
 
源代码3 项目: tysq-android   文件: RxParser.java
/**
 * 不拆壳
 *
 * @param <T>
 * @return
 */
public static <T> SingleTransformer<RespData<T>, RespData<T>> handleSingleToResult() {
    return new SingleTransformer<RespData<T>, RespData<T>>() {
        @Override
        public SingleSource<RespData<T>> apply(Single<RespData<T>> upstream) {
            return upstream
                    .map(new TransToResult<T>())
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread());
        }

    };
}
 
源代码4 项目: alpha-wallet-android   文件: TokenRepository.java
private SingleTransformer<Token[], Token[]> attachDefaultTokens(Wallet wallet)
{
    return upstream -> Single.zip(
            upstream, ethereumNetworkRepository.getBlankOverrideTokens(wallet),
            (tokens, defaultTokens) ->
            {
                List<Token> result = mergeTokens(tokens, defaultTokens);
                return result.toArray(new Token[0]);
            });
}
 
源代码5 项目: alpha-wallet-android   文件: TokenRepository.java
private SingleTransformer<Token[], Token[]> attachEthereumStored(Wallet wallet)
{
    return upstream -> Single.zip(
            upstream, attachCachedEth(wallet),
            (tokens, ethTokens) ->
            {
                List<Token> result = new ArrayList<>();
                result.addAll(ethTokens);
                for (Token t : tokens) if (!t.isEthereum()) result.add(t);
                return result.toArray(new Token[0]);
            });
}
 
源代码6 项目: Android-Allocine-Api   文件: AllocineApi.java
private <T> SingleTransformer<T, T> retry() {
    return new SingleTransformer<T, T>() {
        @Override
        public SingleSource<T> apply(Single<T> upstream) {
            return upstream.retryWhen(new Function<Flowable<Throwable>, Publisher<Object>>() {

                private final int MAX_COUNT = 3;
                private int count = 0;

                private final int DELAY_SECOND = 10;

                @Override
                public Publisher<Object> apply(Flowable<Throwable> throwableFlowable) throws Exception {
                    return throwableFlowable.flatMap(new Function<Throwable, Publisher<?>>() {
                        @Override
                        public Publisher<?> apply(Throwable throwable) throws Exception {
                            if (count++ < MAX_COUNT && throwable instanceof HttpException) {
                                final HttpException httpException = (HttpException) throwable;
                                if (httpException.code() == 403) {
                                    return Flowable.timer(DELAY_SECOND, TimeUnit.SECONDS);
                                }
                            }
                            return Flowable.error(throwable);
                        }
                    });
                }
            });
        }
    };
}
 
源代码7 项目: Open-Mam   文件: AbstractPresenter.java
public <R> SingleTransformer<? super R, ? extends R> compose() {
    return new SingleTransformer<R, R>() {
        @Override
        public SingleSource<R> apply(@NonNull Single<R> upstream) {
            return upstream
                    .subscribeOn(Schedulers.io())
                    .observeOn(AndroidSchedulers.mainThread())
                    .doOnSubscribe(AbstractPresenter.this::call);
        }
    };
}
 
源代码8 项目: RxAndroidBle   文件: ConnectOperation.java
private SingleTransformer<BluetoothGatt, BluetoothGatt> wrapWithTimeoutWhenNotAutoconnecting() {
    return new SingleTransformer<BluetoothGatt, BluetoothGatt>() {
        @Override
        public Single<BluetoothGatt> apply(Single<BluetoothGatt> bluetoothGattSingle) {
            return autoConnect
                    ? bluetoothGattSingle
                    : bluetoothGattSingle
                    .timeout(connectTimeout.timeout, connectTimeout.timeoutTimeUnit, connectTimeout.timeoutScheduler,
                            prepareConnectionTimeoutError());
        }
    };
}
 
源代码9 项目: EasyMVP   文件: SingleUseCase.java
public SingleUseCase(final UseCaseExecutor useCaseExecutor,
                     final PostExecutionThread postExecutionThread) {
    super(useCaseExecutor, postExecutionThread);
    schedulersTransformer = new SingleTransformer<R, R>() {
        @Override
        public Single<R> apply(Single<R> single) {
            return single.subscribeOn(useCaseExecutor.getScheduler())
                    .observeOn(postExecutionThread.getScheduler());
        }
    };
}
 
源代码10 项目: ETHWallet   文件: Operators.java
public static SingleTransformer<Wallet, Wallet> savePassword(WalletRepository walletRepository) {
    return new SavePasswordOperator(walletRepository);
}
 
源代码11 项目: JReadHub   文件: RxSchedulers.java
public static <T> SingleTransformer<T, T> singleIo2Main() {
    return upstream -> upstream.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread());
}
 
源代码12 项目: trust-wallet-android-source   文件: Operators.java
public static SingleTransformer<Wallet, Wallet> savePassword(
        PasswordStore passwordStore, WalletRepositoryType walletRepository, String password) {
    return new SavePasswordOperator(passwordStore, walletRepository, password);
}
 
源代码13 项目: RxCentralBle   文件: Write.java
@Override
protected SingleTransformer<Peripheral, Irrelevant> postWrite() {
  return single -> single.flatMap(peripheral -> Single.just(Irrelevant.INSTANCE));
}
 
源代码14 项目: mimi-reader   文件: DatabaseUtils.java
public static <T> SingleTransformer<T, T> applySingleSchedulers() {
    return f -> f.subscribeOn(Schedulers.io())
            .observeOn(AndroidSchedulers.mainThread());
}
 
源代码15 项目: EasyMVP   文件: SingleUseCase.java
private SingleTransformer<? super R, ? extends R> getSchedulersTransformer() {
    return schedulersTransformer;
}
 
源代码16 项目: APlayer   文件: RxUtil.java
public static <T> SingleTransformer<T, T> applySingleScheduler() {
  return upstream -> upstream.subscribeOn(Schedulers.io())
      .observeOn(AndroidSchedulers.mainThread());
}
 
源代码17 项目: APlayer   文件: RxUtil.java
public static <T> SingleTransformer<T, T> applySingleSchedulerToIO() {
  return upstream -> upstream.subscribeOn(Schedulers.io())
      .observeOn(Schedulers.io());
}
 
源代码18 项目: klingar   文件: Rx.java
public <T> SingleTransformer<T, T> singleSchedulers() {
  //noinspection unchecked
  return (SingleTransformer<T, T>) singleSchedulers;
}
 
源代码19 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(Class<T> mappedType) {
  return new SingleUnmarshaller<>(Buffer::getDelegate, mappedType);
}
 
源代码20 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(TypeReference<T> mappedTypeRef) {
  return new SingleUnmarshaller<>(Buffer::getDelegate, mappedTypeRef);
}
 
源代码21 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(Class<T> mappedType, ObjectCodec mapper) {
  return new SingleUnmarshaller<>(Buffer::getDelegate, mappedType, mapper);
}
 
源代码22 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(TypeReference<T> mappedTypeRef, ObjectCodec mapper) {
  return new SingleUnmarshaller<>(Buffer::getDelegate, mappedTypeRef, mapper);
}
 
源代码23 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(Class<T> mappedType) {
  return new SingleUnmarshaller<>(java.util.function.Function.identity(), mappedType);
}
 
源代码24 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(TypeReference<T> mappedTypeRef) {
  return new SingleUnmarshaller<>(java.util.function.Function.identity(), mappedTypeRef);
}
 
源代码25 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(Class<T> mappedType, ObjectCodec mapper) {
  return new SingleUnmarshaller<>(java.util.function.Function.identity(), mappedType, mapper);
}
 
源代码26 项目: vertx-rx   文件: SingleHelper.java
public static <T> SingleTransformer<Buffer, T> unmarshaller(TypeReference<T> mappedTypeRef, ObjectCodec mapper) {
  return new SingleUnmarshaller<>(java.util.function.Function.identity(), mappedTypeRef, mapper);
}
 
源代码27 项目: RxCentralBle   文件: AbstractWrite.java
protected abstract SingleTransformer<Peripheral, T> postWrite(); 
 类所在包
 同包方法