Pārlūkot izejas kodu

+ Log输出发生异常

drake 5 gadi atpakaļ
vecāks
revīzija
dfa80a9dfb

+ 2 - 4
README.md

@@ -58,7 +58,7 @@ allprojects {
 module 的 build.gradle
 
 ```groovy
-implementation 'com.github.liangjingkanji:Net:1.3.2'
+implementation 'com.github.liangjingkanji:Net:1.3.3'
 ```
 
 
@@ -448,7 +448,7 @@ fun <M> Observable<M>.page(
     block: PageObserver<M>.(M) -> Unit
 ) {
     subscribe(object : PageObserver<M>(pageRefreshLayout) {
-        override fun tryNext(t: M) {
+        override fun onSucceed(t: M) {
             block(t)
         }
     })
@@ -457,9 +457,7 @@ fun <M> Observable<M>.page(
 
 所有扩展订阅函数的都在`ObserverUtils`类中
 
-`try`系列函数都会捕捉异常
 
-`on`系列函数都是原始的Observer函数
 
 扩展函数都会返回对应的Observer对象可以进行手动取消订阅等操作
 

+ 1 - 0
net/src/main/java/com/drake/net/observable/FromObservable.java

@@ -35,6 +35,7 @@ public final class FromObservable<T> extends Observable<T> implements Callable<T
         try {
             value = ObjectHelper.requireNonNull(callable.call(), "Callable returned null");
         } catch (Throwable e) {
+            e.printStackTrace();
             Exceptions.throwIfFatal(e);
             return;
         }

+ 2 - 3
net/src/main/java/com/drake/net/observable/ShootObservable.java

@@ -37,6 +37,7 @@ public final class ShootObservable<T> extends Observable<T> {
         try {
             source.subscribe(parent);
         } catch (Throwable ex) {
+            ex.printStackTrace();
             Exceptions.throwIfFatal(ex);
         }
     }
@@ -66,9 +67,7 @@ public final class ShootObservable<T> extends Observable<T> {
 
         @Override
         public void onError(Throwable t) {
-            if (!tryOnError(t)) {
-                RxJavaPlugins.onError(t);
-            }
+            tryOnError(t);
         }
 
         @Override

+ 4 - 4
net/src/main/java/com/drake/net/observer/DialogObserver.kt

@@ -48,7 +48,7 @@ abstract class DialogObserver<M>(
     ) : this(fragment?.activity, dialog, cancelable)
 
 
-    override fun trySubscribe(d: Disposable) {
+    override fun onStart(d: Disposable) {
         activity ?: return
         activity.lifecycle.addObserver(this)
 
@@ -80,8 +80,8 @@ abstract class DialogObserver<M>(
      *
      * @param e 包括错误信息
      */
-    override fun tryError(e: Throwable) {
-        super.tryError(e)
+    override fun onFailed(e: Throwable) {
+        super.onFailed(e)
         dismiss()
     }
 
@@ -89,7 +89,7 @@ abstract class DialogObserver<M>(
         NetConfig.onError(e)
     }
 
-    override fun tryComplete() {
+    override fun onFinish() {
         dismiss()
     }
 

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

@@ -28,7 +28,7 @@ fun <M> Observable<M>.net(
     block: (NetObserver<M>.(M) -> Unit) = {}
 ): NetObserver<M> {
     val observer = object : NetObserver<M>(lifecycleOwner) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }
@@ -49,7 +49,7 @@ fun <M> Observable<M>.state(
     block: StateObserver<M>.(M) -> Unit = {}
 ): StateObserver<M> {
     val observer = object : StateObserver<M>(stateLayout) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }
@@ -62,7 +62,7 @@ fun <M> Observable<M>.state(
     block: StateObserver<M>.(M) -> Unit = {}
 ): StateObserver<M> {
     val observer = object : StateObserver<M>(view) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }
@@ -75,7 +75,7 @@ fun <M> Observable<M>.state(
     block: StateObserver<M>.(M) -> Unit
 ): StateObserver<M> {
     val observer = object : StateObserver<M>(activity) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }
@@ -86,7 +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 tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     })
@@ -111,7 +111,7 @@ fun <M> Observable<M>.dialog(
     block: (DialogObserver<M>.(M) -> Unit) = {}
 ): DialogObserver<M> {
     val observer = object : DialogObserver<M>(activity, dialog, cancelable) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }
@@ -127,7 +127,7 @@ fun <M> Observable<M>.dialog(
     block: (DialogObserver<M>.(M) -> Unit) = {}
 ): DialogObserver<M> {
     val observer = object : DialogObserver<M>(fragment, dialog, cancelable) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }
@@ -150,7 +150,7 @@ fun <M> Observable<M>.refresh(
     block: RefreshObserver<M>.(M) -> Unit = {}
 ): RefreshObserver<M> {
     val observer = object : RefreshObserver<M>(refreshLayout, loadMore) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }
@@ -173,7 +173,7 @@ fun <M> Observable<M>.page(
     block: PageObserver<M>.(M) -> Unit = {}
 ): PageObserver<M> {
     val observer = object : PageObserver<M>(pageRefreshLayout) {
-        override fun tryNext(it: M) {
+        override fun onSucceed(it: M) {
             block(it)
         }
     }

+ 3 - 3
net/src/main/java/com/drake/net/observer/PageObserver.kt

@@ -41,8 +41,8 @@ abstract class PageObserver<M>(val page: PageRefreshLayout) :
     /**
      * 关闭进度对话框并提醒错误信息
      */
-    override fun tryError(e: Throwable) {
-        super.tryError(e)
+    override fun onFailed(e: Throwable) {
+        super.onFailed(e)
         if (page.state == RefreshState.Refreshing) {
             page.showError()
         } else page.finish(false)
@@ -71,7 +71,7 @@ abstract class PageObserver<M>(val page: PageRefreshLayout) :
         dispose()
     }
 
-    override fun tryComplete() {
+    override fun onFinish() {
         if (page.stateEnabled) page.showContent() else page.finish()
     }
 

+ 3 - 3
net/src/main/java/com/drake/net/observer/RefreshObserver.kt

@@ -34,8 +34,8 @@ abstract class RefreshObserver<M>(
         })
     }
 
-    override fun tryError(e: Throwable) {
-        super.tryError(e)
+    override fun onFailed(e: Throwable) {
+        super.onFailed(e)
         refresh.finishRefresh(false)
     }
 
@@ -43,7 +43,7 @@ abstract class RefreshObserver<M>(
         NetConfig.onError(e)
     }
 
-    override fun tryComplete() {
+    override fun onFinish() {
         refresh.finishRefresh(true)
     }
 }

+ 4 - 4
net/src/main/java/com/drake/net/observer/StateObserver.kt

@@ -41,7 +41,7 @@ abstract class StateObserver<M> : TryObserver<StateObserver<M>, M> {
         this.state = stateLayout
     }
 
-    override fun trySubscribe(d: Disposable) {
+    override fun onStart(d: Disposable) {
         state.addOnAttachStateChangeListener(object : OnAttachStateChangeListener {
             override fun onViewAttachedToWindow(v: View?) {
             }
@@ -53,8 +53,8 @@ abstract class StateObserver<M> : TryObserver<StateObserver<M>, M> {
     }
 
 
-    override fun tryError(e: Throwable) {
-        super.tryError(e)
+    override fun onFailed(e: Throwable) {
+        super.onFailed(e)
         state.showError()
         error?.invoke(this, e) ?: handleError(e)
     }
@@ -64,7 +64,7 @@ abstract class StateObserver<M> : TryObserver<StateObserver<M>, M> {
     }
 
 
-    override fun tryComplete() {
+    override fun onFinish() {
         state.showContent()
     }
 

+ 15 - 19
net/src/main/java/com/drake/net/observer/TryObserver.kt

@@ -16,6 +16,7 @@ import java.util.concurrent.atomic.AtomicReference
  * 捕捉所有异常
  */
 
+@Suppress("UNCHECKED_CAST")
 abstract class TryObserver<T : Observer<M>, M> : AtomicReference<Disposable>(), Observer<M>,
     Disposable {
 
@@ -28,32 +29,27 @@ abstract class TryObserver<T : Observer<M>, M> : AtomicReference<Disposable>(),
      */
     fun error(block: (T.(e: Throwable) -> Unit)?): T {
         error = block
-        @Suppress("UNCHECKED_CAST")
         return this as T
     }
 
     // <editor-fold desc="异常捕捉">
 
+    protected open fun onStart(d: Disposable) {}
 
-    protected open fun trySubscribe(d: Disposable) {}
+    protected open fun onFailed(e: Throwable) = error?.invoke(this as T, e) ?: handleError(e)
 
-    @Suppress("UNCHECKED_CAST")
-    protected open fun tryError(e: Throwable) {
-        error?.invoke(this as T, e) ?: handleError(e)
-    }
-
-    protected abstract fun tryNext(it: M)
+    protected abstract fun onSucceed(it: M)
 
-    protected open fun tryComplete() {}
-
-    abstract fun handleError(e: Throwable)
+    protected open fun onFinish() {}
 
     // </editor-fold>
 
-    override fun onSubscribe(d: Disposable) {
+    open fun handleError(e: Throwable) {}
+
+    final override fun onSubscribe(d: Disposable) {
         if (DisposableHelper.setOnce(this, d)) {
             try {
-                trySubscribe(d)
+                onStart(d)
             } catch (ex: Throwable) {
                 Exceptions.throwIfFatal(ex)
                 d.dispose()
@@ -62,10 +58,10 @@ abstract class TryObserver<T : Observer<M>, M> : AtomicReference<Disposable>(),
         }
     }
 
-    override fun onNext(t: M) {
+    final override fun onNext(t: M) {
         if (!isDisposed) {
             try {
-                tryNext(t)
+                onSucceed(t)
             } catch (e: Throwable) {
                 Exceptions.throwIfFatal(e)
                 get().dispose()
@@ -75,11 +71,11 @@ abstract class TryObserver<T : Observer<M>, M> : AtomicReference<Disposable>(),
     }
 
 
-    override fun onError(t: Throwable) {
+    final override fun onError(t: Throwable) {
         if (!isDisposed) {
             lazySet(DisposableHelper.DISPOSED)
             try {
-                tryError(t)
+                onFailed(t)
             } catch (e: Throwable) {
                 e.printStackTrace()
                 Exceptions.throwIfFatal(e)
@@ -87,11 +83,11 @@ abstract class TryObserver<T : Observer<M>, M> : AtomicReference<Disposable>(),
         }
     }
 
-    override fun onComplete() {
+    final override fun onComplete() {
         if (!isDisposed) {
             lazySet(DisposableHelper.DISPOSED)
             try {
-                tryComplete()
+                onFinish()
             } catch (e: Throwable) {
                 e.printStackTrace()
                 Exceptions.throwIfFatal(e)

+ 0 - 2
sample/src/main/java/com/drake/net/sample/MainActivity.kt

@@ -8,8 +8,6 @@ class MainActivity : AppCompatActivity() {
     override fun onCreate(savedInstanceState: Bundle?) {
         super.onCreate(savedInstanceState)
         setContentView(R.layout.activity_main)
-
-
     }
 
 }