소스 검색

- 增加runMain函数, 直接运行在主线程

drake 5 년 전
부모
커밋
e99f79906f
4개의 변경된 파일52개의 추가작업 그리고 34개의 파일을 삭제
  1. 1 1
      README.md
  2. 0 2
      net/build.gradle
  3. 50 0
      net/src/main/java/com/drake/net/observer/ObservaleUtils.kt
  4. 1 31
      net/src/main/java/com/drake/net/observer/ObserverUtils.kt

+ 1 - 1
README.md

@@ -54,7 +54,7 @@ allprojects {
 module 的 build.gradle
 module 的 build.gradle
 
 
 ```groovy
 ```groovy
-implementation 'com.github.liangjingkanji:Net:1.2.6'
+implementation 'com.github.liangjingkanji:Net:1.2.7'
 ```
 ```
 
 
 
 

+ 0 - 2
net/build.gradle

@@ -46,6 +46,4 @@ dependencies {
 
 
     compileOnly 'io.reactivex.rxjava2:rxkotlin:2.3.0'
     compileOnly 'io.reactivex.rxjava2:rxkotlin:2.3.0'
     compileOnly 'io.reactivex.rxjava2:rxandroid:2.1.1'
     compileOnly 'io.reactivex.rxjava2:rxandroid:2.1.1'
-
-
 }
 }

+ 50 - 0
net/src/main/java/com/drake/net/observer/ObservaleUtils.kt

@@ -0,0 +1,50 @@
+/*
+ * Copyright (C) 2018, Umbrella CompanyLimited All rights reserved.
+ * Project:Net
+ * Author:Drake
+ * Date:11/25/19 1:03 PM
+ */
+
+package com.drake.net.observer
+
+import android.os.Handler
+import android.os.Looper
+import io.reactivex.Observable
+import io.reactivex.android.schedulers.AndroidSchedulers
+import io.reactivex.schedulers.Schedulers
+
+// <editor-fold desc="线程">
+
+fun <M> Observable<M>.async(): Observable<M> {
+    return subscribeOn(Schedulers.io()).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>
+
+fun runMain(block: () -> Unit) {
+    if (Looper.myLooper() == Looper.getMainLooper()) {
+        block()
+    } else {
+        Handler(Looper.getMainLooper()).post { block() }
+    }
+}

+ 1 - 31
net/src/main/java/com/drake/net/observer/ObserverUtils.kt

@@ -15,8 +15,6 @@ import androidx.lifecycle.LifecycleOwner
 import com.drake.brv.PageRefreshLayout
 import com.drake.brv.PageRefreshLayout
 import com.drake.statelayout.StateLayout
 import com.drake.statelayout.StateLayout
 import io.reactivex.Observable
 import io.reactivex.Observable
-import io.reactivex.android.schedulers.AndroidSchedulers
-import io.reactivex.schedulers.Schedulers
 
 
 
 
 /**
 /**
@@ -178,32 +176,4 @@ fun <M> Observable<M>.page(
     }
     }
     subscribe(observer)
     subscribe(observer)
     return 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>
+}