drake 3 rokov pred
rodič
commit
e96464ef17

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

@@ -29,6 +29,7 @@ import okhttp3.OkHttpClient
  *
  * @see com.drake.net.convert.JSONConvert
  */
+@Deprecated("函数迁移", replaceWith = ReplaceWith("NetConfig.init(host, config)"))
 fun initNet(host: String = "", config: OkHttpClient.Builder.() -> Unit = {}) {
     NetConfig.host = host
     val builder = OkHttpClient.Builder()
@@ -36,6 +37,7 @@ fun initNet(host: String = "", config: OkHttpClient.Builder.() -> Unit = {}) {
     NetConfig.okHttpClient = builder.toNetOkhttp().build()
 }
 
+@Deprecated("函数迁移", replaceWith = ReplaceWith("NetConfig.init(host, config)"))
 fun initNet(host: String = "", config: OkHttpClient.Builder) {
     NetConfig.host = host
     NetConfig.okHttpClient = config.toNetOkhttp().build()

+ 46 - 12
net/src/main/java/com/drake/net/NetConfig.kt

@@ -23,15 +23,20 @@ import android.app.ProgressDialog
 import android.view.View
 import androidx.fragment.app.FragmentActivity
 import com.drake.net.NetConfig.app
+import com.drake.net.NetConfig.converter
+import com.drake.net.NetConfig.dialogFactory
+import com.drake.net.NetConfig.errorHandler
 import com.drake.net.NetConfig.host
-import com.drake.net.NetConfig.onDialog
+import com.drake.net.NetConfig.logEnabled
 import com.drake.net.NetConfig.onError
-import com.drake.net.NetConfig.onStateError
+import com.drake.net.NetConfig.requestInterceptor
+import com.drake.net.NetConfig.runningCalls
 import com.drake.net.convert.NetConverter
 import com.drake.net.exception.*
 import com.drake.net.interceptor.RequestInterceptor
+import com.drake.net.interfaces.NetDialogFactory
 import com.drake.net.interfaces.NetErrorHandler
-import com.drake.net.scope.DialogCoroutineScope
+import com.drake.net.okhttp.toNetOkhttp
 import com.drake.tooltip.toast
 import okhttp3.Call
 import okhttp3.OkHttpClient
@@ -48,37 +53,45 @@ import java.util.concurrent.*
  * @property runningCalls Net中正在运行的请求Call
  * @property requestInterceptor 请求拦截器
  * @property logEnabled 是否启用日志
- * @property onDialog 全局加载框
- * @property onError 全局错误处理
- * @property onStateError 全局缺省页错误处理
+ * @property dialogFactory 全局加载框
  * @property errorHandler 全局错误处理器, 会覆盖onError/onStateError
+ * @property converter 全局数据转换器
  */
 @SuppressLint("StaticFieldLeak")
 object NetConfig {
 
     lateinit var app: Application
-    lateinit var okHttpClient: OkHttpClient
-
+    var okHttpClient: OkHttpClient = OkHttpClient.Builder().toNetOkhttp().build()
+        set(value) {
+            field = value.toNetOkhttp()
+        }
     var host: String = ""
     var logEnabled = true
     var runningCalls: ConcurrentLinkedQueue<WeakReference<Call>> = ConcurrentLinkedQueue()
-    var converter: NetConverter = NetConverter.DEFAULT
+        private set
     var requestInterceptor: RequestInterceptor? = null
-    var errorHandler = NetErrorHandler()
+    var converter: NetConverter = NetConverter
+    var errorHandler: NetErrorHandler = NetErrorHandler
+    var dialogFactory: NetDialogFactory = NetDialogFactory
 
-    var onDialog: DialogCoroutineScope.(FragmentActivity) -> Dialog = {
+    @Deprecated("废弃", replaceWith = ReplaceWith("NetConfig.dialogFactory"))
+    var onDialog: (FragmentActivity) -> Dialog = { activity ->
         val progress = ProgressDialog(activity)
         progress.setMessage(activity.getString(R.string.net_dialog_msg))
         progress
     }
 
+    @Deprecated("废弃", replaceWith = ReplaceWith("NetConfig.errorHandler"))
     var onError: Throwable.() -> Unit = onError@{
 
         val message = when (this) {
             is UnknownHostException -> app.getString(R.string.net_host_error)
             is URLParseException -> app.getString(R.string.net_url_error)
             is NetConnectException -> app.getString(R.string.net_network_error)
-            is NetSocketTimeoutException -> app.getString(R.string.net_connect_timeout_error, message)
+            is NetSocketTimeoutException -> app.getString(
+                R.string.net_connect_timeout_error,
+                message
+            )
             is DownloadFileException -> app.getString(R.string.net_download_error)
             is ConvertException -> app.getString(R.string.net_parse_error)
             is RequestParamsException -> app.getString(R.string.net_request_error)
@@ -94,6 +107,7 @@ object NetConfig {
         toast(message)
     }
 
+    @Deprecated("废弃", replaceWith = ReplaceWith("NetConfig.errorHandler"))
     var onStateError: Throwable.(view: View) -> Unit = {
         when (this) {
             is ConvertException,
@@ -103,5 +117,25 @@ object NetConfig {
             else -> if (logEnabled) printStackTrace()
         }
     }
+
+    //<editor-fold desc="初始化">
+    /**
+     * 初始化框架, 该函数仅在Kotlin下有效
+     *
+     * @param host 请求url的主机名
+     * @param config 进行配置网络请求
+     */
+    fun init(host: String = "", config: OkHttpClient.Builder.() -> Unit = {}) {
+        NetConfig.host = host
+        val builder = OkHttpClient.Builder()
+        builder.config()
+        okHttpClient = builder.toNetOkhttp().build()
+    }
+
+    fun init(host: String = "", config: OkHttpClient.Builder) {
+        NetConfig.host = host
+        okHttpClient = config.toNetOkhttp().build()
+    }
+    //</editor-fold>
 }
 

+ 49 - 0
net/src/main/java/com/drake/net/callback/DialogCallback.kt

@@ -0,0 +1,49 @@
+@file:Suppress("MemberVisibilityCanBePrivate")
+
+package com.drake.net.callback
+
+import android.app.Dialog
+import androidx.fragment.app.FragmentActivity
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleObserver
+import androidx.lifecycle.OnLifecycleEvent
+import com.drake.net.Net
+import com.drake.net.NetConfig
+import com.drake.net.interfaces.NetCallback
+import com.drake.net.request.group
+import okhttp3.Call
+import okhttp3.Request
+import java.io.IOException
+
+abstract class DialogCallback<T> constructor(
+    val activity: FragmentActivity,
+    var dialog: Dialog? = null,
+    val cancelable: Boolean = true,
+) : NetCallback<T>(), LifecycleObserver {
+
+    override fun onStart(request: Request) {
+        super.onStart(request)
+        activity.lifecycle.addObserver(this)
+        activity.runOnUiThread {
+            dialog = when {
+                dialog != null -> dialog
+                else -> NetConfig.dialogFactory.onCreate(activity)
+            }
+            dialog?.setOnDismissListener { Net.cancelGroup(request.group()) }
+            dialog?.setCancelable(cancelable)
+            dialog?.show()
+        }
+    }
+
+    @OnLifecycleEvent(Lifecycle.Event.ON_DESTROY)
+    fun dismiss() {
+        if (dialog != null && dialog!!.isShowing) {
+            dialog?.dismiss()
+        }
+    }
+
+    override fun onComplete(call: Call, e: IOException?) {
+        dismiss()
+        super.onComplete(call, e)
+    }
+}

+ 48 - 0
net/src/main/java/com/drake/net/callback/PageCallback.kt

@@ -0,0 +1,48 @@
+package com.drake.net.callback
+
+import android.view.View
+import com.drake.brv.PageRefreshLayout
+import com.drake.net.Net
+import com.drake.net.NetConfig
+import com.drake.net.interfaces.NetCallback
+import com.drake.net.request.group
+import okhttp3.Call
+import okhttp3.Request
+import java.io.IOException
+import java.util.concurrent.CancellationException
+
+abstract class PageCallback<T>(val page: PageRefreshLayout) : NetCallback<T>() {
+    override fun onStart(request: Request) {
+        super.onStart(request)
+        page.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
+            override fun onViewAttachedToWindow(v: View) {
+
+            }
+
+            override fun onViewDetachedFromWindow(v: View) {
+                Net.cancelGroup(request.group())
+            }
+        })
+    }
+
+    override fun onFailure(call: Call, e: IOException) {
+        page.showError(e)
+        super.onFailure(call, e)
+    }
+
+    override fun onError(call: Call, e: IOException) {
+        if (page.loaded || !page.stateEnabled) {
+            NetConfig.errorHandler.onError(e)
+        } else {
+            NetConfig.errorHandler.onStateError(e, page)
+        }
+        super.onError(call, e)
+    }
+
+    override fun onComplete(call: Call, e: IOException?) {
+        if (e == null || e is CancellationException) {
+            page.showContent()
+        }
+        super.onComplete(call, e)
+    }
+}

+ 42 - 0
net/src/main/java/com/drake/net/callback/StateCallback.kt

@@ -0,0 +1,42 @@
+package com.drake.net.callback
+
+import android.view.View
+import com.drake.net.Net
+import com.drake.net.NetConfig
+import com.drake.net.interfaces.NetCallback
+import com.drake.net.request.group
+import com.drake.statelayout.StateLayout
+import okhttp3.Call
+import okhttp3.Request
+import java.io.IOException
+import java.util.concurrent.CancellationException
+
+abstract class StateCallback<T>(val state: StateLayout) : NetCallback<T>() {
+
+    override fun onStart(request: Request) {
+        super.onStart(request)
+        state.addOnAttachStateChangeListener(object : View.OnAttachStateChangeListener {
+            override fun onViewAttachedToWindow(v: View?) {
+            }
+
+            override fun onViewDetachedFromWindow(v: View) {
+                Net.cancelGroup(request.group())
+            }
+        })
+    }
+
+    override fun onFailure(call: Call, e: IOException) {
+        state.showError(e)
+        super.onFailure(call, e)
+    }
+
+    override fun onError(call: Call, e: IOException) {
+        NetConfig.errorHandler.onStateError(e, state)
+        super.onError(call, e)
+    }
+
+    override fun onComplete(call: Call, e: IOException?) {
+        super.onComplete(call, e)
+        if (e == null || e is CancellationException) state.showContent()
+    }
+}

+ 19 - 22
net/src/main/java/com/drake/net/convert/NetConverter.kt

@@ -26,31 +26,28 @@ import java.lang.reflect.Type
 @Suppress("UNCHECKED_CAST")
 interface NetConverter {
 
-    @Throws(Exception::class)
+    @Throws(Throwable::class)
     fun <R> onConvert(succeed: Type, response: Response): R?
 
-    companion object {
-
-        @JvmField
-        val DEFAULT = object : NetConverter {
-
-            /**
-             * 返回结果应当等于泛型对象, 可空
-             */
-            override fun <R> onConvert(
-                succeed: Type,
-                response: Response
-            ): R? {
-                return when (succeed) {
-                    String::class.java -> response.body?.string() as R
-                    ByteString::class.java -> response.body?.byteString() as R
-                    ByteArray::class.java -> response.body?.bytes() as R
-                    Response::class.java -> response as R
-                    File::class.java -> response.file() as R
-                    else -> throw ConvertException(response, "An exception occurred while converting the NetConverter.DEFAULT")
-                }
+    companion object DEFAULT : NetConverter {
+        /**
+         * 返回结果应当等于泛型对象, 可空
+         */
+        override fun <R> onConvert(
+            succeed: Type,
+            response: Response
+        ): R? {
+            return when (succeed) {
+                String::class.java -> response.body?.string() as R
+                ByteString::class.java -> response.body?.byteString() as R
+                ByteArray::class.java -> response.body?.bytes() as R
+                Response::class.java -> response as R
+                File::class.java -> response.file() as R
+                else -> throw ConvertException(
+                    response,
+                    "An exception occurred while converting the NetConverter.DEFAULT"
+                )
             }
         }
-
     }
 }

+ 19 - 9
net/src/main/java/com/drake/net/interfaces/NetCallback.kt

@@ -1,10 +1,16 @@
 package com.drake.net.interfaces
 
+import androidx.lifecycle.Lifecycle
+import androidx.lifecycle.LifecycleEventObserver
+import androidx.lifecycle.LifecycleOwner
+import com.drake.net.Net
 import com.drake.net.NetConfig
+import com.drake.net.request.group
 import com.drake.net.response.convert
 import com.drake.net.utils.runMain
 import okhttp3.Call
 import okhttp3.Callback
+import okhttp3.Request
 import okhttp3.Response
 import java.io.IOException
 import java.lang.reflect.ParameterizedType
@@ -14,7 +20,10 @@ import java.lang.reflect.ParameterizedType
  * 相对于OkHttp的Callback新增三个回调函数: [onSuccess] [onError] [onComplete]
  * 这三个函数都运行在主线程上
  */
-abstract class NetCallback<T> : Callback {
+abstract class NetCallback<T> constructor(
+    val lifecycle: LifecycleOwner? = null,
+    val lifeEvent: Lifecycle.Event = Lifecycle.Event.ON_DESTROY
+) : Callback {
 
     override fun onResponse(call: Call, response: Response) {
         val succeed = (javaClass.genericSuperclass as ParameterizedType).actualTypeArguments[0]
@@ -37,19 +46,20 @@ abstract class NetCallback<T> : Callback {
         }
     }
 
-    /**
-     * 请求成功
-     */
+    open fun onStart(request: Request) {
+        request.group()
+        lifecycle?.lifecycle?.addObserver(object : LifecycleEventObserver {
+            override fun onStateChanged(source: LifecycleOwner, event: Lifecycle.Event) {
+                if (lifeEvent == event) Net.cancelGroup(request.group())
+            }
+        })
+    }
+
     abstract fun onSuccess(call: Call, result: T)
 
-    /**
-     * 请求错误
-     */
     open fun onError(call: Call, e: IOException) = NetConfig.errorHandler.onError(e)
 
     /**
-     * 请求完成
-     *
      * @param e 正常结束则为NULL, 发生异常结束则为异常对象
      */
     open fun onComplete(call: Call, e: IOException?) {}

+ 15 - 0
net/src/main/java/com/drake/net/interfaces/NetDialogFactory.kt

@@ -0,0 +1,15 @@
+package com.drake.net.interfaces
+
+import android.app.Dialog
+import androidx.fragment.app.FragmentActivity
+import com.drake.net.NetConfig
+
+fun interface NetDialogFactory {
+    fun onCreate(activity: FragmentActivity): Dialog
+
+    companion object DEFAULT : NetDialogFactory {
+        override fun onCreate(activity: FragmentActivity): Dialog {
+            return NetConfig.onDialog.invoke(activity)
+        }
+    }
+}

+ 5 - 3
net/src/main/java/com/drake/net/interfaces/NetErrorHandler.kt

@@ -3,15 +3,17 @@ package com.drake.net.interfaces
 import android.view.View
 import com.drake.net.NetConfig
 
-open class NetErrorHandler {
+interface NetErrorHandler {
 
     /**
      * 全局错误
      */
-    open fun onError(e: Throwable) = NetConfig.onError(e)
+    fun onError(e: Throwable) = NetConfig.onError(e)
 
     /**
      * 自动缺省页错误
      */
-    open fun onStateError(e: Throwable, view: View) = NetConfig.onStateError(e, view)
+    fun onStateError(e: Throwable, view: View) = NetConfig.onStateError(e, view)
+
+    companion object DEFAULT : NetErrorHandler
 }

+ 1 - 3
net/src/main/java/com/drake/net/interfaces/ProgressListener.kt

@@ -22,9 +22,7 @@ import com.drake.net.component.Progress
  *
  * @param interval 进度监听器刷新的间隔时间, 单位为毫秒, 默认值为500ms
  */
-abstract class ProgressListener(
-    var interval: Long = 500,
-) {
+abstract class ProgressListener(var interval: Long = 500) {
     // 上次触发监听器时的开机时间
     var elapsedTime = 0L
 

+ 28 - 9
net/src/main/java/com/drake/net/okhttp/OkHttpExtension.kt

@@ -23,9 +23,9 @@ import com.drake.net.NetConfig
 import com.drake.net.convert.NetConverter
 import com.drake.net.interceptor.NetOkHttpInterceptor
 import com.drake.net.interceptor.RequestInterceptor
+import com.drake.net.interfaces.NetDialogFactory
 import com.drake.net.interfaces.NetErrorHandler
 import com.drake.net.request.label
-import com.drake.net.scope.DialogCoroutineScope
 import com.drake.net.tag.NetLabel
 import com.drake.net.utils.Https
 import com.drake.net.utils.chooseTrustManager
@@ -138,7 +138,10 @@ fun OkHttpClient.Builder.setRequestInterceptor(interceptor: RequestInterceptor)
 /**
  * 全局网络请求错误捕获
  */
-@Deprecated(message = "使用NetErrorHandler统一处理错误", replaceWith = ReplaceWith("setErrorHandler(NetErrorHandler())"), DeprecationLevel.WARNING)
+@Deprecated(
+    message = "使用NetErrorHandler统一处理错误",
+    replaceWith = ReplaceWith("setErrorHandler(NetErrorHandler())")
+)
 fun OkHttpClient.Builder.onError(block: Throwable.() -> Unit) = apply {
     NetConfig.onError = block
 }
@@ -146,11 +149,27 @@ fun OkHttpClient.Builder.onError(block: Throwable.() -> Unit) = apply {
 /**
  * 全局缺省页错误捕获
  */
-@Deprecated(message = "使用NetErrorHandler统一处理错误", replaceWith = ReplaceWith("setErrorHandler(NetErrorHandler())"), DeprecationLevel.WARNING)
+@Deprecated(
+    message = "使用NetErrorHandler统一处理错误",
+    replaceWith = ReplaceWith("setErrorHandler(NetErrorHandler())")
+)
 fun OkHttpClient.Builder.onStateError(block: Throwable.(view: View) -> Unit) = apply {
     NetConfig.onStateError = block
 }
 
+/**
+ * 全局加载对话框设置
+ * 设置在使用scopeDialog自动弹出的加载对话框
+ */
+@Deprecated(
+    message = "使用NetDialogFactory创建",
+    replaceWith = ReplaceWith("setDialogFactory(NetDialogFactory())")
+)
+fun OkHttpClient.Builder.onDialog(block: (FragmentActivity) -> Dialog) =
+    apply {
+        NetConfig.onDialog = block
+    }
+
 /**
  * 全局错误处理器
  *
@@ -161,13 +180,13 @@ fun OkHttpClient.Builder.setErrorHandler(handler: NetErrorHandler) = apply {
 }
 
 /**
- * 全局加载对话框设置
- * 设置在使用scopeDialog自动弹出的加载对话框
+ * 全局请求自动弹出的对话框
+ *
+ * 会覆盖[onDialog]
  */
-fun OkHttpClient.Builder.onDialog(block: DialogCoroutineScope.(FragmentActivity) -> Dialog) =
-    apply {
-        NetConfig.onDialog = block
-    }
+fun OkHttpClient.Builder.setDialogFactory(dialogFactory: NetDialogFactory) = apply {
+    NetConfig.dialogFactory = dialogFactory
+}
 
 /**
  * 取消OkHttp客户端中指定Id的请求

+ 7 - 2
net/src/main/java/com/drake/net/request/BaseRequest.kt

@@ -21,6 +21,7 @@ import com.drake.net.NetConfig
 import com.drake.net.convert.NetConverter
 import com.drake.net.exception.ConvertException
 import com.drake.net.exception.URLParseException
+import com.drake.net.interfaces.NetCallback
 import com.drake.net.interfaces.ProgressListener
 import com.drake.net.okhttp.toNetOkhttp
 import com.drake.net.response.convert
@@ -105,7 +106,9 @@ abstract class BaseRequest {
 
     //<editor-fold desc="Param">
 
-    abstract fun param(name: String, value: String?, encoded: Boolean = false)
+    abstract fun param(name: String, value: String?)
+
+    abstract fun param(name: String, value: String?, encoded: Boolean)
 
     abstract fun param(name: String, value: Number?)
 
@@ -317,7 +320,9 @@ abstract class BaseRequest {
      */
     fun enqueue(block: Callback): Call {
         NetConfig.requestInterceptor?.interceptor(this)
-        val newCall = okHttpClient.newCall(buildRequest())
+        val request = buildRequest()
+        val newCall = okHttpClient.newCall(request)
+        if (block is NetCallback<*>) block.onStart(request)
         newCall.enqueue(block)
         return newCall
     }

+ 5 - 3
net/src/main/java/com/drake/net/request/BodyRequest.kt

@@ -38,10 +38,12 @@ open class BodyRequest : BaseRequest() {
     override var method = Method.POST
 
     //<editor-fold desc="Param">
+    override fun param(name: String, value: String?) {
+        formBody.add(name, value ?: return)
+    }
+
     override fun param(name: String, value: String?, encoded: Boolean) {
-        if (encoded) {
-            formBody.addEncoded(name, value ?: return)
-        } else formBody.add(name, value ?: return)
+        formBody.addEncoded(name, value ?: return)
     }
 
     override fun param(name: String, value: Number?) {

+ 5 - 3
net/src/main/java/com/drake/net/request/UrlRequest.kt

@@ -18,10 +18,12 @@ package com.drake.net.request
 
 open class UrlRequest : BaseRequest() {
 
+    override fun param(name: String, value: String?) {
+        httpUrl.setEncodedQueryParameter(name, value)
+    }
+
     override fun param(name: String, value: String?, encoded: Boolean) {
-        if (encoded) {
-            httpUrl.setQueryParameter(name, value)
-        } else httpUrl.setEncodedQueryParameter(name, value)
+        httpUrl.setQueryParameter(name, value)
     }
 
     override fun param(name: String, value: Number?) {

+ 1 - 6
net/src/main/java/com/drake/net/scope/DialogCoroutineScope.kt

@@ -22,7 +22,6 @@ import androidx.lifecycle.Lifecycle
 import androidx.lifecycle.LifecycleObserver
 import androidx.lifecycle.OnLifecycleEvent
 import com.drake.net.NetConfig
-import com.drake.net.NetConfig.onDialog
 import kotlinx.coroutines.CoroutineDispatcher
 import kotlinx.coroutines.Dispatchers
 
@@ -54,7 +53,7 @@ class DialogCoroutineScope(
         activity.runOnUiThread {
             dialog = when {
                 dialog != null -> dialog
-                else -> onDialog.invoke(this, activity)
+                else -> NetConfig.dialogFactory.onCreate(activity)
             }
             dialog?.setOnDismissListener { cancel() }
             dialog?.setCancelable(cancelable)
@@ -68,10 +67,6 @@ class DialogCoroutineScope(
         }
     }
 
-    override fun handleError(e: Throwable) {
-        NetConfig.errorHandler.onError(e)
-    }
-
     override fun finally(e: Throwable?) {
         super.finally(e)
         dismiss()

+ 0 - 1
net/src/main/java/com/drake/net/scope/NetCoroutineScope.kt

@@ -77,7 +77,6 @@ open class NetCoroutineScope(
      */
     protected open fun readCache(succeed: Boolean) {}
 
-
     override fun handleError(e: Throwable) {
         NetConfig.errorHandler.onError(e)
     }

+ 7 - 7
net/src/main/java/com/drake/net/time/Interval.kt

@@ -70,8 +70,8 @@ open class Interval(
         initialDelay: Long = 0
     ) : this(-1, period, unit, 0, initialDelay)
 
-    private val listReceive: MutableList<(Long) -> Unit> = mutableListOf()
-    private val listFinish: MutableList<(Long) -> Unit> = mutableListOf()
+    private val receiveList: MutableList<(Long) -> Unit> = mutableListOf()
+    private val finishList: MutableList<(Long) -> Unit> = mutableListOf()
     private var countTime = 0L
     private var delay = 0L
     private var scope: AndroidScope? = null
@@ -89,7 +89,7 @@ open class Interval(
      * 轮循器完成时会同时触发回调[block]和[finish]
      */
     fun subscribe(block: (Long) -> Unit): Interval {
-        listReceive.add(block)
+        receiveList.add(block)
         return this
     }
 
@@ -97,7 +97,7 @@ open class Interval(
      * 轮循器完成时回调该函数
      */
     fun finish(block: (Long) -> Unit): Interval {
-        listFinish.add(block)
+        finishList.add(block)
         return this
     }
 
@@ -124,7 +124,7 @@ open class Interval(
         if (state == IntervalStatus.STATE_IDLE) return
         state = IntervalStatus.STATE_IDLE
         scope?.cancel()
-        listFinish.forEach {
+        finishList.forEach {
             it.invoke(count)
         }
         count = start
@@ -202,13 +202,13 @@ open class Interval(
 
             for (unit in ticker) {
 
-                listReceive.forEach {
+                receiveList.forEach {
                     it.invoke(count)
                 }
 
                 if (end != -1L && count == end) {
                     scope?.cancel()
-                    listFinish.forEach {
+                    finishList.forEach {
                         it.invoke(count)
                     }
                 }

+ 1 - 1
net/src/main/java/com/drake/net/utils/Scope.kt

@@ -39,7 +39,7 @@ import kotlinx.coroutines.Dispatchers
 
 /**
  * 作用域开始时自动显示加载对话框, 结束时自动关闭加载对话框
- * 可以设置全局对话框 [com.drake.net.NetConfig.onDialog]
+ * 可以设置全局对话框 [com.drake.net.NetConfig.dialogFactory]
  * @param dialog 仅该作用域使用的对话框
  *
  * 对话框被取消或者界面关闭作用域被取消

+ 5 - 6
sample/src/main/java/com/drake/net/sample/base/App.kt

@@ -19,10 +19,10 @@ package com.drake.net.sample.base
 import android.app.Application
 import android.app.ProgressDialog
 import com.drake.brv.BindingAdapter
-import com.drake.net.initNet
+import com.drake.net.NetConfig
 import com.drake.net.interceptor.LogRecordInterceptor
 import com.drake.net.interceptor.RequestInterceptor
-import com.drake.net.okhttp.onDialog
+import com.drake.net.okhttp.setDialogFactory
 import com.drake.net.okhttp.setLog
 import com.drake.net.okhttp.setRequestInterceptor
 import com.drake.net.request.BaseRequest
@@ -39,11 +39,9 @@ class App : Application() {
     override fun onCreate() {
         super.onCreate()
 
-        initNet("http://43.128.31.195/") {
-
+        NetConfig.init("http://43.128.31.195/") {
             setLog(BuildConfig.DEBUG) // LogCat异常日志
             addInterceptor(LogRecordInterceptor(BuildConfig.DEBUG)) // 添加日志记录器
-
             setRequestInterceptor(object : RequestInterceptor { // 添加请求拦截器
                 override fun interceptor(request: BaseRequest) {
                     request.addHeader("client", "Net")
@@ -51,12 +49,13 @@ class App : Application() {
                 }
             })
 
-            onDialog { // 全局加载对话框
+            setDialogFactory { // 全局加载对话框
                 ProgressDialog(it).apply {
                     setMessage("我是全局自定义的加载对话框...")
                 }
             }
         }
+
         initDependent()
     }