|
@@ -15,6 +15,8 @@ import androidx.lifecycle.LifecycleOwner
|
|
|
import com.drake.brv.PageRefreshLayout
|
|
|
import com.drake.statelayout.StateLayout
|
|
|
import io.reactivex.Observable
|
|
|
+import io.reactivex.android.schedulers.AndroidSchedulers
|
|
|
+import io.reactivex.schedulers.Schedulers
|
|
|
|
|
|
|
|
|
/**
|
|
@@ -36,6 +38,8 @@ fun <M> Observable<M>.net(
|
|
|
return observer
|
|
|
}
|
|
|
|
|
|
+// <editor-fold desc="缺省页">
|
|
|
+
|
|
|
/**
|
|
|
* 自动处理多状态页面
|
|
|
* @receiver Observable<M>
|
|
@@ -82,6 +86,7 @@ fun <M> Observable<M>.state(
|
|
|
}
|
|
|
|
|
|
fun <M> Observable<M>.state(fragment: Fragment, block: StateObserver<M>.(M) -> Unit = {}) {
|
|
|
+
|
|
|
subscribe(object : StateObserver<M>(fragment) {
|
|
|
override fun onNext(it: M) {
|
|
|
block(it)
|
|
@@ -89,6 +94,11 @@ fun <M> Observable<M>.state(fragment: Fragment, block: StateObserver<M>.(M) -> U
|
|
|
})
|
|
|
}
|
|
|
|
|
|
+// </editor-fold>
|
|
|
+
|
|
|
+
|
|
|
+// <editor-fold desc="加载框">
|
|
|
+
|
|
|
/**
|
|
|
* 请求网络自动开启和关闭对话框
|
|
|
* @receiver Observable<M>
|
|
@@ -127,6 +137,8 @@ fun <M> Observable<M>.dialog(
|
|
|
return observer
|
|
|
}
|
|
|
|
|
|
+// </editor-fold>
|
|
|
+
|
|
|
/**
|
|
|
* 自动结束下拉加载
|
|
|
* @receiver Observable<M>
|
|
@@ -166,4 +178,32 @@ fun <M> Observable<M>.page(
|
|
|
}
|
|
|
subscribe(observer)
|
|
|
return observer
|
|
|
-}
|
|
|
+}
|
|
|
+
|
|
|
+// <editor-fold desc="线程">
|
|
|
+
|
|
|
+fun <M> Observable<M>.async(): Observable<M> {
|
|
|
+ return subscribeOn(Schedulers.computation()).observeOn(AndroidSchedulers.mainThread())
|
|
|
+}
|
|
|
+
|
|
|
+fun <M> Observable<M>.computation(): Observable<M> {
|
|
|
+ return subscribeOn(Schedulers.computation())
|
|
|
+}
|
|
|
+
|
|
|
+fun <M> Observable<M>.io(): Observable<M> {
|
|
|
+ return subscribeOn(Schedulers.io())
|
|
|
+}
|
|
|
+
|
|
|
+fun <M> Observable<M>.single(): Observable<M> {
|
|
|
+ return subscribeOn(Schedulers.single())
|
|
|
+}
|
|
|
+
|
|
|
+fun <M> Observable<M>.newThread(): Observable<M> {
|
|
|
+ return subscribeOn(Schedulers.newThread())
|
|
|
+}
|
|
|
+
|
|
|
+fun <M> Observable<M>.main(): Observable<M> {
|
|
|
+ return observeOn(AndroidSchedulers.mainThread())
|
|
|
+}
|
|
|
+
|
|
|
+// </editor-fold>
|