package com.doumee.lib_coremodel.http.utils;
|
|
import android.content.Context;
|
|
import androidx.fragment.app.Fragment;
|
|
import com.trello.rxlifecycle2.LifecycleProvider;
|
import com.trello.rxlifecycle2.LifecycleTransformer;
|
|
import io.reactivex.Observable;
|
import io.reactivex.ObservableSource;
|
import io.reactivex.ObservableTransformer;
|
import io.reactivex.android.schedulers.AndroidSchedulers;
|
import io.reactivex.annotations.NonNull;
|
import io.reactivex.schedulers.Schedulers;
|
|
/**
|
* Created by goldze on 2017/6/19.
|
* 有关Rx的工具类
|
*/
|
public class RxUtils {
|
/**
|
* 生命周期绑定
|
*
|
* @param lifecycle Activity
|
*/
|
public static <T> LifecycleTransformer<T> bindToLifecycle(@NonNull Context lifecycle) {
|
if (lifecycle instanceof LifecycleProvider) {
|
return ((LifecycleProvider) lifecycle).bindToLifecycle();
|
} else {
|
throw new IllegalArgumentException("context not the LifecycleProvider type");
|
}
|
}
|
|
/**
|
* 生命周期绑定
|
*
|
* @param lifecycle Fragment
|
*/
|
public static LifecycleTransformer bindToLifecycle(@NonNull Fragment lifecycle) {
|
if (lifecycle instanceof LifecycleProvider) {
|
return ((LifecycleProvider) lifecycle).bindToLifecycle();
|
} else {
|
throw new IllegalArgumentException("fragment not the LifecycleProvider type");
|
}
|
}
|
|
/**
|
* 生命周期绑定
|
*
|
* @param lifecycle Fragment
|
*/
|
public static LifecycleTransformer bindToLifecycle(@NonNull LifecycleProvider lifecycle) {
|
return lifecycle.bindToLifecycle();
|
}
|
|
/**
|
* 线程调度器
|
*/
|
public static ObservableTransformer schedulersTransformer() {
|
return new ObservableTransformer() {
|
@Override
|
public ObservableSource apply(Observable upstream) {
|
return upstream.subscribeOn(Schedulers.io())
|
.observeOn(AndroidSchedulers.mainThread());
|
}
|
};
|
}
|
|
}
|