Bladeren bron

更新文档

drake 4 jaren geleden
bovenliggende
commit
b23b89cc1e
100 gewijzigde bestanden met toevoegingen van 1252 en 592 verwijderingen
  1. 15 0
      .github/workflows/main.yml
  2. 46 590
      README.md
  3. 3 2
      build.gradle
  4. 191 0
      docs/api/net/alltypes/index.md
  5. 5 0
      docs/api/net/com.drake.net.connect/-ok-http-connect-factory/-builder/build.md
  6. 5 0
      docs/api/net/com.drake.net.connect/-ok-http-connect-factory/-builder/client.md
  7. 12 0
      docs/api/net/com.drake.net.connect/-ok-http-connect-factory/-builder/index.md
  8. 5 0
      docs/api/net/com.drake.net.connect/-ok-http-connect-factory/connect.md
  9. 20 0
      docs/api/net/com.drake.net.connect/-ok-http-connect-factory/index.md
  10. 5 0
      docs/api/net/com.drake.net.connect/-ok-http-connect-factory/new-builder.md
  11. 9 0
      docs/api/net/com.drake.net.connect/index.md
  12. 15 0
      docs/api/net/com.drake.net.convert/-default-convert/-init-.md
  13. 8 0
      docs/api/net/com.drake.net.convert/-default-convert/code.md
  14. 5 0
      docs/api/net/com.drake.net.convert/-default-convert/convert.md
  15. 36 0
      docs/api/net/com.drake.net.convert/-default-convert/index.md
  16. 8 0
      docs/api/net/com.drake.net.convert/-default-convert/message.md
  17. 16 0
      docs/api/net/com.drake.net.convert/-default-convert/parse-body.md
  18. 8 0
      docs/api/net/com.drake.net.convert/-default-convert/success.md
  19. 9 0
      docs/api/net/com.drake.net.convert/index.md
  20. 8 0
      docs/api/net/com.drake.net.error/-net-cancellation-exception/-init-.md
  21. 13 0
      docs/api/net/com.drake.net.error/-net-cancellation-exception/index.md
  22. 8 0
      docs/api/net/com.drake.net.error/-request-params-exception/-init-.md
  23. 5 0
      docs/api/net/com.drake.net.error/-request-params-exception/code.md
  24. 19 0
      docs/api/net/com.drake.net.error/-request-params-exception/index.md
  25. 15 0
      docs/api/net/com.drake.net.error/-response-exception/-init-.md
  26. 8 0
      docs/api/net/com.drake.net.error/-response-exception/code.md
  27. 28 0
      docs/api/net/com.drake.net.error/-response-exception/index.md
  28. 8 0
      docs/api/net/com.drake.net.error/-response-exception/msg.md
  29. 8 0
      docs/api/net/com.drake.net.error/-server-response-exception/-init-.md
  30. 5 0
      docs/api/net/com.drake.net.error/-server-response-exception/code.md
  31. 19 0
      docs/api/net/com.drake.net.error/-server-response-exception/index.md
  32. 18 0
      docs/api/net/com.drake.net.error/index.md
  33. 8 0
      docs/api/net/com.drake.net.error/kotlinx.coroutines.-coroutine-scope/-net-cancellation-exception.md
  34. 7 0
      docs/api/net/com.drake.net.error/kotlinx.coroutines.-coroutine-scope/index.md
  35. 8 0
      docs/api/net/com.drake.net.scope/-android-scope/-init-.md
  36. 6 0
      docs/api/net/com.drake.net.scope/-android-scope/cancel.md
  37. 9 0
      docs/api/net/com.drake.net.scope/-android-scope/catch.md
  38. 5 0
      docs/api/net/com.drake.net.scope/-android-scope/coroutine-context.md
  39. 9 0
      docs/api/net/com.drake.net.scope/-android-scope/finally.md
  40. 8 0
      docs/api/net/com.drake.net.scope/-android-scope/handle-error.md
  41. 39 0
      docs/api/net/com.drake.net.scope/-android-scope/index.md
  42. 5 0
      docs/api/net/com.drake.net.scope/-android-scope/launch.md
  43. 5 0
      docs/api/net/com.drake.net.scope/-android-scope/start.md
  44. 5 0
      docs/api/net/com.drake.net.scope/-android-scope/uid.md
  45. 19 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/-init-.md
  46. 8 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/activity.md
  47. 8 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/cancelable.md
  48. 8 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/dialog.md
  49. 5 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/dismiss.md
  50. 5 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/finally.md
  51. 8 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/handle-error.md
  52. 43 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/index.md
  53. 8 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/read-cache.md
  54. 5 0
      docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/start.md
  55. 8 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/-init-.md
  56. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/animate.md
  57. 18 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/cache.md
  58. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/cancel.md
  59. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/catch.md
  60. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/error.md
  61. 8 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/handle-error.md
  62. 42 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/index.md
  63. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/is-cache-succeed.md
  64. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/is-read-cache.md
  65. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/launch.md
  66. 5 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/on-cache.md
  67. 8 0
      docs/api/net/com.drake.net.scope/-net-coroutine-scope/read-cache.md
  68. 5 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/--index--.md
  69. 5 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/-init-.md
  70. 5 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/catch.md
  71. 5 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/finally.md
  72. 8 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/handle-error.md
  73. 28 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/index.md
  74. 5 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/page.md
  75. 8 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/read-cache.md
  76. 5 0
      docs/api/net/com.drake.net.scope/-page-coroutine-scope/start.md
  77. 8 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/-init-.md
  78. 5 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/catch.md
  79. 5 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/finally.md
  80. 8 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/handle-error.md
  81. 29 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/index.md
  82. 8 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/read-cache.md
  83. 5 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/start.md
  84. 5 0
      docs/api/net/com.drake.net.scope/-state-coroutine-scope/state.md
  85. 13 0
      docs/api/net/com.drake.net.scope/index.md
  86. 8 0
      docs/api/net/com.drake.net.tag/-r-e-q-u-e-s-t.md
  87. 8 0
      docs/api/net/com.drake.net.tag/-r-e-s-p-o-n-s-e.md
  88. 5 0
      docs/api/net/com.drake.net.tag/-t-a-g/-init-.md
  89. 5 0
      docs/api/net/com.drake.net.tag/-t-a-g/contains.md
  90. 5 0
      docs/api/net/com.drake.net.tag/-t-a-g/get.md
  91. 33 0
      docs/api/net/com.drake.net.tag/-t-a-g/index.md
  92. 5 0
      docs/api/net/com.drake.net.tag/-t-a-g/list.md
  93. 5 0
      docs/api/net/com.drake.net.tag/-t-a-g/minus.md
  94. 5 0
      docs/api/net/com.drake.net.tag/-t-a-g/plus.md
  95. 11 0
      docs/api/net/com.drake.net.tag/index.md
  96. 5 0
      docs/api/net/com.drake.net.time/-interval-status/-s-t-a-t-e_-a-c-t-i-v-e.md
  97. 5 0
      docs/api/net/com.drake.net.time/-interval-status/-s-t-a-t-e_-i-d-l-e.md
  98. 5 0
      docs/api/net/com.drake.net.time/-interval-status/-s-t-a-t-e_-p-a-u-s-e.md
  99. 15 0
      docs/api/net/com.drake.net.time/-interval-status/index.md
  100. 34 0
      docs/api/net/com.drake.net.time/-interval/-init-.md

+ 15 - 0
.github/workflows/main.yml

@@ -0,0 +1,15 @@
+name: ci
+on:
+  push:
+    branches:
+      - master
+jobs:
+  deploy:
+    runs-on: ubuntu-latest
+    steps:
+      - uses: actions/checkout@v2
+      - uses: actions/setup-python@v2
+        with:
+          python-version: 3.x
+      - run: pip install mkdocs-material
+      - run: mkdocs gh-deploy --force

+ 46 - 590
README.md

@@ -1,30 +1,37 @@
-# Net
+## Net
 
-Android上 最强网络任务库, 创新式的网络请求库(针对[Kalle](https://github.com/yanzhenjie/Kalle)网络请求框架进行扩展), 支持协程高并发网络请求
+<p align="center"><img src="https://i.imgur.com/YRdJdzG.jpg" width="50%"/></p>
+
+<p align="center"><strong>不仅仅是网络请求的异步任务库</strong></p><br>
 
+<p align="center">
+<a href="https://jitpack.io/#liangjingkanji/Net"><img src="https://jitpack.io/v/liangjingkanji/Net.svg"/></a>
+<img src="https://img.shields.io/badge/language-kotlin-orange.svg"/>
+<img src="https://img.shields.io/badge/license-Apache-blue"/>
+<a href="https://jq.qq.com/?_wv=1027&k=vWsXSNBJ"><img src="https://img.shields.io/badge/QQ群-752854893-blue"/></a>
+</p>
+<p align="center"><a href="http://liangjingkanji.github.io/Net/">使用文档</a></p>
 
 
-本项目为Android项目中的所有的异步任务和网络请求而生, Demo示例代码不过百行, 欢迎阅读
+<p align="center"><img src="https://i.imgur.com/aBe7Ib2.png" align="center" width="30%;" /></p>
 
-任何框架问题加群回复: [752854893](https://jq.qq.com/?_wv=1027&k=vWsXSNBJ)
 
-The project is supported by [JetBrains](https://www.jetbrains.com/), Best IDE to developer <img src="https://tva1.sinaimg.cn/large/006tNbRwgy1gaskr305czj30u00wjtcz.jpg" alt="jetbrains" width="150" />
 
+Android上 最强网络任务库, 创新式的网络请求库(针对[Kalle](https://github.com/yanzhenjie/Kalle)网络请求框架进行扩展), 支持协程高并发网络请求
 
+<br>
 
-1.0+ 版本为RxKotlin实现
-2.0+ 版本开始引入Kotlin协程特性, 开发者无需掌握协程也可以使用
 
 
-目前计划
+Net 1.0+ 版本为RxJava实现
+Net 2.0+ 版本开始引入Kotlin协程特性, 开发者无需掌握协程也可以使用
 
-- [ ] 重写使用文档
-- [ ] 升级到OkHttp4.7
-- [ ] 插件输出网络日志, 支持超长输出
-- [ ] WebSocket路由
 
 
-![image-20200628013903616](https://i.imgur.com/9nGtlrd.png)
+目前正在进行的任务
+
+- [ ] Okhttp4.8重构
+- [ ] 插件拦截网络日志
 
 
 
@@ -51,7 +58,7 @@ The project is supported by [JetBrains](https://www.jetbrains.com/), Best IDE to
 
 
 
-同时完全不影响[Kalle](https://github.com/yanzhenjie/Kalle)的特性
+同时完全不影响Kalle的特性
 
 - 九种缓存模式
 - 数据库缓存
@@ -71,9 +78,11 @@ The project is supported by [JetBrains](https://www.jetbrains.com/), Best IDE to
 
 
 
-## 安装
 
-project 的 build.gradle
+
+<br>
+
+在项目根目录的 build.gradle 添加仓库
 
 ```groovy
 allprojects {
@@ -84,596 +93,43 @@ allprojects {
 }
 ```
 
-
-
-module 的 build.gradle
+在 module 的 build.gradle 添加依赖
 
 ```groovy
-// 协程库
+// 协程库(版本自定)
 implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-core:1.3.0'
 implementation 'org.jetbrains.kotlinx:kotlinx-coroutines-android:1.3.0'
 
-// 支持自动下拉刷新和缺省页的, 可选, 刷新头和上拉加载参考SmartRefreshLayout (可选)
+// 支持自动下拉刷新和缺省页的(可选)
 implementation 'com.github.liangjingkanji:BRV:1.3.6'
 
-implementation 'com.github.liangjingkanji:Net:2.2.6'
-```
-
-
-
-
-
-## 请求方式
-
-请求方式支持同步和异步, 异步只允许在作用域内执行. 详情请看`Net.kt`文件
-
-![image-20200626032128956](https://i.imgur.com/gjWnbLx.png)
-
-
-
-请求方式全部属于协程中的`async`异步函数, 运行在IO线程中. 函数返回`Deferred<T>`对象, 该对象通过`await()`函数获取结果. 
-
-执行await时会阻塞代码执行注意, 所以建议await在作用域最后一起执行, 保证请求全部发送出去然后统一获取结果.
-
-### Post
-
-```kotlin
-scopeNetLife {
-    tv_fragment.text = Post<String>("api").await()
-}
-```
-
-`Model` 即JSONBean或者说POJO 数据模型, 会将服务器返回的JSON解析成该数据模型在`net`回调中可以使用`it`调用
-
-
-
-### Get
-
-```kotlin
-scopeNetLife {
-    tv_fragment.text = Get<String>("api").await()
-}
-```
-
-`Model` 泛型如果换成String, 将会在成功回调中得到字符串对象.
-
-### 文件上传
-
-```kotlin
-scopeNetLife {
-    Post<String>("upload", requireContext().cacheDir.path) {
-        val saveFile = getFile()
-        file("file", saveFile)
-    }.await()
-}
-```
-
-
-
-### 文件下载
-
-```kotlin
-scopeNetLife {
-    Download("download", requireContext().filesDir.path).await()
-}
-```
-
-
-
-### 下载图片
-
-下载图片要求首先导入Glide依赖库, 下载图片和下载文件不同在于可以手动指定图片宽高
-
-```kotlin
-Context.DownloadImage(url: String, with: Int = -1, height: Int = -1)
-```
-
-
-
-示例
-
-```kotlin
-scopeDialog {
-    val file = DownloadImage(NetConfig.host + "download/img", 100, 100).await()
-    val uri = Uri.fromFile(file)
-    iv_img.setImageURI(uri)
-}
-```
-
-## 初始化
-
-```kotlin
-class App : Application() {
-
-    override fun onCreate() {
-        super.onCreate()
-
-        initNet("http://182.92.97.186/"){
-
-            // 转换器, 也可以自己实现Convert或者复写DefaultConverter.
-            converter(object : DefaultConverter() {
-                override fun <S> convert(succeed: Type, body: String): S? {
-					// 解析Json, 我这里是用的Moshi, 你也可以使用Gson之类的解析框架
-                    return Moshi.Builder().build().adapter<S>(succeed).fromJson(body)
-                }
-            })
-        }
-    }
-}
-```
-
-
-
-### 初始化配置
-
-在初始化的时候可以选择配置网络请求
-
-```kotlin
-initNet("http://182.92.97.186/") {
-
-  // 默认错误处理
-  onError {
-
-  }
-
-  // PageObserver 默认错误处理
-  onPageError {
-
-  }
-
-  // 默认加载对话框
-  onDialog {
-
-    ProgressDialog(it)
-  }
-
-  converter(object : DefaultConverter() {
-    override fun <S> convert(succeed: Type, body: String): S? {
-      return Moshi.Builder().build().adapter<S>(succeed).fromJson(body)
-    }
-  })
-}
-```
-
-
-
-### 错误信息
-
-第一种覆盖`onError`函数
-
-
-
-这里是默认的错误处理逻辑, 在初始化的时候也介绍过如何复写onError.
-
-这里使用的系统默认的Toast进行错误信息提示用户, 你可以复写然后实现自己的吐司提示.
-
-```kotlin
-internal var onError: Throwable.() -> Unit = {
-
-  val message = when (this) {
-    is NetworkError -> app.getString(R.string.network_error)
-    is URLError -> app.getString(R.string.url_error)
-    is HostError -> app.getString(R.string.host_error)
-    is ConnectTimeoutError -> app.getString(R.string.connect_timeout_error)
-    is ConnectException -> app.getString(R.string.connect_exception)
-    is WriteException -> app.getString(R.string.write_exception)
-    is ReadTimeoutError -> app.getString(R.string.read_timeout_error)
-    is DownloadError -> app.getString(R.string.download_error)
-    is NoCacheError -> app.getString(R.string.no_cache_error)
-    is ReadException -> app.getString(R.string.read_exception)
-    is ParseError -> app.getString(R.string.parse_error)
-    is ParseJsonException -> app.getString(R.string.parse_json_error)
-    is RequestParamsException -> app.getString(R.string.request_error)
-    is ServerResponseException -> app.getString(R.string.server_error)
-    is ResponseException -> msg
-    else -> {
-      printStackTrace()
-      app.getString(R.string.other_error)
-    }
-  }
-
-  Toast.makeText(app, message, Toast.LENGTH_SHORT).show()
-}
-```
-
-
-
-1. 所有网络异常都可以通过字段`request`获取请求对象, 包含请求信息.
-2. 本框架中自动打印的吐司内部是使用的[Tooltip](https://github.com/liangjingkanji/Tooltip)框架, 最好的吐司工具. 保证异步吐司和不会覆盖和长时间显示
-
-
-
-第二种复写`strings.xml`文件中的属性
-
-
-
-复写同name的属性可以达到修改文本信息内容或者进行国际化
-
-```xml
-<resources>
-    <string name="app_name">Net</string>
-
-    <!--网络请求异常-->
-    <string name="network_error">当前网络不可用</string>
-    <string name="url_error">请求资源地址错误</string>
-    <string name="host_error">无法找到指定服务器主机</string>
-    <string name="connect_timeout_error">连接服务器超时,请重试</string>
-    <string name="connect_exception">请检查网络连接</string>
-    <string name="write_exception">发送数据错误</string>
-    <string name="read_timeout_error">读取服务器数据超时,请检查网络</string>
-    <string name="download_error">下载过程发生错误</string>
-    <string name="no_cache_error">读取缓存错误</string>
-    <string name="parse_error">解析数据时发生异常</string>
-    <string name="read_exception">读取数据错误</string>
-    <string name="parse_json_error">解析JSON错误</string>
-    <string name="request_error">请求参数错误</string>
-    <string name="server_error">服务响应错误</string>
-    <string name="other_error">服务器未响应</string>
-
-</resources>
-```
-
-
-
-### 异常日志
-
-网络请求的每个异常都会被自动打印到LogCat, 并且附带位置信息: location, 默认为url. 可以在拦截器中通过Request.location()设置
-
-## 作用域
-
-上面的网络请求方式全部使用的`scopeLife`, 该作用域属于跟随生命周期自动销毁作用域
-
-
-
-所有作用域都会自动打印异常信息到LogCat, 作用域都是异步执行在主线程
-
-
-
-### 异步作用域
-
-该作用域的生命周期跟随整个应用, 不会自动取消, 需要你自己手动取消`cancel()`
-
-```
-scope {
-	
-}
-```
-
-
-
-### 生命周期作用域
-
-该作用域默认在销毁`OnDestroy`时被销毁, 内部所有网络请求都会取消
-
-```
-scopeLife {
-	
-}
-```
-
-函数
-
-```kotlin
-fun LifecycleOwner.scopeLife(
-    lifeEvent: Lifecycle.Event = Lifecycle.Event.ON_DESTROY, // 自定义销毁作用域的生命周期
-    block: suspend CoroutineScope.() -> Unit
-): AndroidScope
-```
-
-
-
-以上两种作用域不会自动吐司网络请求的异常信息
-
-### 网络请求作用域
-
-和异步作用域的区别就是会自动吐司网络请求的异常信息
-
-```kotlin
-scopeNet {
-  Post<Model>("api"){
-    param("key", "value")
-  }.await()
-}
-```
-
-
-
-跟随生命周期的网络请求
-
-```kotlin
-scopeNetLife {
-  Post<Model>("api"){
-    param("key", "value")
-  }
-}
-```
-
-
-
-### 自动加载对话框
-
-```kotlin
-scopeDialog {
-    tv_fragment.text = Post<String>("dialog") {
-        param("u_name", "drake")
-        param("pwd", "123456")
-    }.await()
-}
-```
-
-该作用域会在开始执行时显示对话框, 在作用域内全部任务执行完毕后取消对话框(异常或正常结束都会取消).
-
-并且该对话框支持自定义全局或者通过函数参数传入单例对话框(仅该作用域对象使用的加载框)
-
-
-
-**自定义全局对话框**
-
-全局对话框设置通过NetConfig.onDialog设置
-
-```kotlin
-initNet("http://182.92.97.186/") {
-  onDialog {
-    ProgressDialog(it).apply { setMessage("正在加载中") } // 返回一个Dialog
-  }
-}
-```
-
-
-
-### 自动缺省页
-
-
-
-```kotlin
-state.onRefresh {
-  scope {
-    // 异步作用域
-
-    val data = Post<Model>("api"){
-      param("key", "value")
-    }.await()
-
-    if(data == null){
-      showEmpty()
-    }else {
-      textView.text = data
-    }
-    
-  }
-}.showLoading()
-```
-
-
-
-缺省页支持局部(使用控件对象)和全局页面(Activity或者Fragment对象)开启作用域
-
-Fragment|Activity|View都支持直接通过`scopeState`函数开启作用域
-
-StateLayout使用`scope`函数开启作用域
-
-
-
-关于支持接收者类型有如下: 
-
-- stateLayout
-- activity
-- fragment
-- view
-
-### 自动下拉刷新
-
-兼具功能 下拉刷新|上拉加载|分页|缺省页
-
-需要引入第三方库: [BRV](https://github.com/liangjingkanji/BRV)
-
-```kotlin
-pageRefreshLayout.onRefresh { 
-
-    pageRefreshLayout.scope {
-
-        val data = Get<ListModel>("list") {
-            param("page", index) // index会自增
-        }.await().data
-
-        addData(data){
-            index < data.totalPage // 判断是否存在下一页
-        }
-    }
-}.showLoading()
-```
-
-此时下拉和上拉都会调用该回调`onRefresh`中的接口请求. 
-
-
-
-如果下拉刷新和上拉加载的接口不一致可以再实现`onLoadMore`回调
-
-```kotlin
-pageRefreshLayout.onLoadMore {
-	// 上拉加载网络请求
-}
-```
-
-
-
-showLoading属于现实缺省页中的加载页, 你也可以使用`autoRefresh()`显示下拉刷新的动画而不是缺省页
-
-
-
-Tip: PageRefreshLayout只要加载成功后即使后续请求失败也不会显示错误缺省页
-
-### 错误处理
-
-所有作用域都支持`catch|finally`函数回调
-
-```kotlin
-scopeDialog {
-    val data = Get<String>("error")
-    textView.text = data.await()
-}.catch { 
-    // 只有发生异常才会执行, it为异常对象
-}.finally { 
-    // 无论是否正常结束还是异常都会执行,  it为异常对象, 如果非异常结束为NULL
-}
-```
-
-
-
-## 请求和响应规范
-
-很多时候存在请求和响应的后台接口规范不是常规统一的, 这个时候我们可以自己拦截处理数据. 
-
-主要是实现拦截器(`Interceptor`)和转换器(`Convert`)
-
-
-
-Interceptor 这个和Okhttp同样, 可以拦截和修改请求参数, 并且可以获得Response的实例.
-
-### Interceptor
-
-这里可以得到Request和Response, 进行数据添加修改以及重新拼装请求, 不熟悉的请搜索Okhttp Interceptor使用.
-
-### Convert
-
-Convert 主要进行数据转换, 这里一般解析JSON对象.
-
-
-
-这就是实现`DefaultConvert`自己解析Json对象. DefaultConverter是框架中定义的一个默认处理JSON示例, 一般情况使用它解析下JSON即可. 
-
-```kotlin
-initNet("hhttp://182.92.97.186/") {
-    converter(object : DefaultConverter() {
-        override fun <S> String.parseBody(succeed: Type): S? {
-            return Moshi.Builder().build().adapter<S>(succeed).fromJson(this)
-        }
-    })
-}
-```
-
-DefaultConvert构造函数拥有三个参数默认值
-
-```kotlin
-abstract class DefaultConverter(val success: String = "0",
-                                val code: String = "code",
-                                val msg: String = "msg")
-```
-
-因为内部需要得到错误码`code`来判断请求是否真正成功以及错误消息`msg`来在错误的时候进行打印吐司错误信息. 
-
-所以需要知道解析JSON时的Key来获取.
-
-
-
-一般情况下重写两个函数即可
-
-```kotlin
-/**
-* 解析数据用于获取基本接口信息
-*/
-abstract fun <S> String.parseBody(succeed: Type): S?
-```
-
-
-
-如果涉及到响应的JSON数据需要解密或者错误码为某个数字时跳转登录界面可以直接重写`Convert`(建议复制参考DefaultConvert源码). 
-
-
-
-## 预缓存和网络请求
-
-很多App要求秒启动展示首页数据, 然后断网以后也可以展示缓存数据, 这种需求需要做到刷新UI数据两遍, 本框架同样方便实现
-
-
-
-首先在初始化的时候启用缓存功能
-
-```kotlin
-initNet("http://182.92.97.186/") {
-	cacheEnabled()
-}
-```
-
-
-
-可配置参数
-
-```kotlin
-fun KalleConfig.Builder.cacheEnabled(
-    path: String = NetConfig.app.cacheDir.absolutePath, // 缓存保存位置, 默认应用缓存目录
-    password: String = "cache" // 缓存密码, 默认cache
-) 
-```
-
-
-
-发起缓存请求
-
-```kotlin
-scopeNetLife {
-    Log.d("日志", "网络请求")
-    textView.text = Get<String>("api", cache = CacheMode.NETWORK_YES_THEN_WRITE_CACHE).await()
-}.cache {
-    Log.d("日志", "读取缓存")
-    textView.text = Get<String>("api", cache = CacheMode.READ_CACHE).await()
-}
+implementation 'com.github.liangjingkanji:Net:2.2.7'
 ```
 
-上面示例代码这种属于: 先加载缓存(没有缓存不会报异常), 后网络请求(缓存和网络请求都失败报异常信息), 网络请求成功缓存到本地并刷新界面UI
+<br>
 
+## Contribute
 
+<p align="center">
+<img src="https://tva1.sinaimg.cn/large/006tNbRwgy1gaskr305czj30u00wjtcz.jpg" alt="jetbrains" width="15%" />
+</p>
+<p align="center">
+<strong>The project is supported by <a href="https://www.jetbrains.com/">JetBrains</a></strong></p>
 
-注意事项
 
-1. CacheMode: 属于Kalle的缓存模式, 共有九种缓存模式适用于不同的业务场景: [文档](https://yanzhenjie.com/Kalle/cache/)
-2. cache: 该作用域内部允许抛出任何异常都不算错误, 这里的`cache`会比`scopeNetLife`先执行.
-3. 当缓存读取成功视为作用域执行成功, 默认情况即使后续的网络请求失败也不会提示错误信息(cache函数参数指定true则提示)
 
+## License
 
-
-```kotlin
-fun cache(error: Boolean = false, // 缓存读取成功但网络请求失败是否吐司错误信息
-          animate: Boolean = false, // 缓存读取成功是否立即停止加载动画, 只有PageRefreshLayout有效
-          onCache: suspend CoroutineScope.() -> Unit): AndroidScope 
 ```
+Licensed under the Apache License, Version 2.0 (the "License");
+you may not use this file except in compliance with the License.
+You may obtain a copy of the License at
 
+http://www.apache.org/licenses/LICENSE-2.0
 
-
-## 轮循器
-
-本框架附带一个超级强大的轮循器`Interval`, 基本上包含轮循器所需要到所有功能
-
-- 支持多个观察者订阅同一个计时器
-- 开始 | 暂停 | 继续 | 停止
-- 同时包含RxJava的操作符`interval|intervelRange`功能
-- 轮循器即Observable对象, 所以可以进行任意操作符转换. 例如轮循器控制网络请求
-
-
-
-示例
-
-```kotlin
-Interval(1, TimeUnit.SECONDS).subscribe { 
-	
-}.finish { 
-	
-}.start()
-```
-
-
-
-函数
-
-```
-subscribe() // 订阅定时器, 订阅多个也会监听同一个计数器
-start() // 开始
-stop() // 结束
-pause() // 暂停
-resume() // 继续
-reset // 重置轮循器 (包含计数器count和计时period) 不会停止轮循器
-switch //  切换轮循器开关
-
-state // 得到当前轮循器的状态
-life() // 绑定生命周期, 自动取消轮循器
+Unless required by applicable law or agreed to in writing, software
+distributed under the License is distributed on an "AS IS" BASIS,
+WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+See the License for the specific language governing permissions and
+limitations under the License.
 ```

+ 3 - 2
build.gradle

@@ -2,7 +2,7 @@
 
 buildscript {
     ext {
-        kotlin_version = '1.3.72'
+        kotlin_version = '1.4.0'
         brv_version = '1.3.6'
         coroutine_version = '1.3.0'
         glide_version = '4.9.0'
@@ -15,9 +15,10 @@ buildscript {
 
     }
     dependencies {
-        classpath 'com.android.tools.build:gradle:4.0.0'
+        classpath 'com.android.tools.build:gradle:4.0.1'
         classpath "org.jetbrains.kotlin:kotlin-gradle-plugin:$kotlin_version"
         classpath 'com.github.dcendents:android-maven-gradle-plugin:2.1'
+        classpath 'org.jetbrains.dokka:dokka-gradle-plugin:0.10.1'
     }
 }
 

+ 191 - 0
docs/api/net/alltypes/index.md

@@ -0,0 +1,191 @@
+
+
+### All Types
+
+| Name | Summary |
+|---|---|
+|
+
+##### [com.drake.net.scope.AndroidScope](../com.drake.net.scope/-android-scope/index.md)
+
+异步协程作用域
+
+
+| (extensions in package com.drake.net)
+
+##### [android.app.Application](../com.drake.net/android.app.-application/index.md)
+
+
+| (extensions in package com.drake.net)
+
+##### [com.yanzhenjie.kalle.KalleConfig.Builder](../com.drake.net/com.yanzhenjie.kalle.-kalle-config.-builder/index.md)
+
+
+| (extensions in package com.drake.net)
+
+##### [android.content.Context](../com.drake.net/android.content.-context/index.md)
+
+
+| (extensions in package com.drake.net)
+
+##### [kotlinx.coroutines.CoroutineScope](../com.drake.net/kotlinx.coroutines.-coroutine-scope/index.md)
+
+
+| (extensions in package com.drake.net.error)
+
+##### [kotlinx.coroutines.CoroutineScope](../com.drake.net.error/kotlinx.coroutines.-coroutine-scope/index.md)
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [android.database.Cursor](../com.drake.net.utils/android.database.-cursor/index.md)
+
+
+|
+
+##### [com.drake.net.convert.DefaultConvert](../com.drake.net.convert/-default-convert/index.md)
+
+默认的转换器实现, 如果不满足需求建议将该文件复制到项目中修改
+
+
+|
+
+##### [com.drake.net.scope.DialogCoroutineScope](../com.drake.net.scope/-dialog-coroutine-scope/index.md)
+
+自动加载对话框网络请求
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [kotlinx.coroutines.flow.Flow](../com.drake.net.utils/kotlinx.coroutines.flow.-flow/index.md)
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [androidx.fragment.app.Fragment](../com.drake.net.utils/androidx.fragment.app.-fragment/index.md)
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [androidx.fragment.app.FragmentActivity](../com.drake.net.utils/androidx.fragment.app.-fragment-activity/index.md)
+
+
+|
+
+##### [com.drake.net.time.Interval](../com.drake.net.time/-interval/index.md)
+
+轮循器
+
+
+|
+
+##### [com.drake.net.time.IntervalStatus](../com.drake.net.time/-interval-status/index.md)
+
+计时器的状态
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [androidx.lifecycle.LifecycleOwner](../com.drake.net.utils/androidx.lifecycle.-lifecycle-owner/index.md)
+
+
+|
+
+##### [com.drake.net.error.NetCancellationException](../com.drake.net.error/-net-cancellation-exception/index.md)
+
+取消网络任务的异常
+
+
+|
+
+##### [com.drake.net.NetConfig](../com.drake.net/-net-config/index.md)
+
+Net的全局配置
+
+
+|
+
+##### [com.drake.net.scope.NetCoroutineScope](../com.drake.net.scope/-net-coroutine-scope/index.md)
+
+自动显示网络错误信息协程作用域
+
+
+|
+
+##### [com.drake.net.connect.OkHttpConnectFactory](../com.drake.net.connect/-ok-http-connect-factory/index.md)
+
+Created by Zhenjie Yan on 2016/10/15.
+
+
+|
+
+##### [com.drake.net.scope.PageCoroutineScope](../com.drake.net.scope/-page-coroutine-scope/index.md)
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [com.drake.brv.PageRefreshLayout](../com.drake.net.utils/com.drake.brv.-page-refresh-layout/index.md)
+
+
+|
+
+##### [com.drake.net.tag.REQUEST](../com.drake.net.tag/-r-e-q-u-e-s-t.md)
+
+请求参数打印标签
+
+
+|
+
+##### [com.drake.net.error.RequestParamsException](../com.drake.net.error/-request-params-exception/index.md)
+
+404
+
+
+|
+
+##### [com.drake.net.tag.RESPONSE](../com.drake.net.tag/-r-e-s-p-o-n-s-e.md)
+
+响应体打印标签
+
+
+|
+
+##### [com.drake.net.error.ResponseException](../com.drake.net.error/-response-exception/index.md)
+
+对应网络请求后台定义的错误信息
+
+
+|
+
+##### [com.drake.net.utils.SavedViewModel](../com.drake.net.utils/-saved-view-model/index.md)
+
+
+|
+
+##### [com.drake.net.error.ServerResponseException](../com.drake.net.error/-server-response-exception/index.md)
+
+500
+
+
+|
+
+##### [com.drake.net.scope.StateCoroutineScope](../com.drake.net.scope/-state-coroutine-scope/index.md)
+
+缺省页作用域
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [com.drake.statelayout.StateLayout](../com.drake.net.utils/com.drake.statelayout.-state-layout/index.md)
+
+
+|
+
+##### [com.drake.net.tag.TAG](../com.drake.net.tag/-t-a-g/index.md)
+
+
+| (extensions in package com.drake.net.utils)
+
+##### [androidx.lifecycle.ViewModelStoreOwner](../com.drake.net.utils/androidx.lifecycle.-view-model-store-owner/index.md)
+
+

+ 5 - 0
docs/api/net/com.drake.net.connect/-ok-http-connect-factory/-builder/build.md

@@ -0,0 +1,5 @@
+[net](../../../index.md) / [com.drake.net.connect](../../index.md) / [OkHttpConnectFactory](../index.md) / [Builder](index.md) / [build](./build.md)
+
+# build
+
+`open fun build(): `[`OkHttpConnectFactory`](../index.md)`!`

+ 5 - 0
docs/api/net/com.drake.net.connect/-ok-http-connect-factory/-builder/client.md

@@ -0,0 +1,5 @@
+[net](../../../index.md) / [com.drake.net.connect](../../index.md) / [OkHttpConnectFactory](../index.md) / [Builder](index.md) / [client](./client.md)
+
+# client
+
+`open fun client(client: OkHttpClient!): Builder!`

+ 12 - 0
docs/api/net/com.drake.net.connect/-ok-http-connect-factory/-builder/index.md

@@ -0,0 +1,12 @@
+[net](../../../index.md) / [com.drake.net.connect](../../index.md) / [OkHttpConnectFactory](../index.md) / [Builder](./index.md)
+
+# Builder
+
+`open class Builder`
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [build](build.md) | `open fun build(): `[`OkHttpConnectFactory`](../index.md)`!` |
+| [client](client.md) | `open fun client(client: OkHttpClient!): Builder!` |

+ 5 - 0
docs/api/net/com.drake.net.connect/-ok-http-connect-factory/connect.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.connect](../index.md) / [OkHttpConnectFactory](index.md) / [connect](./connect.md)
+
+# connect
+
+`open fun connect(request: Request!): Connection!`

+ 20 - 0
docs/api/net/com.drake.net.connect/-ok-http-connect-factory/index.md

@@ -0,0 +1,20 @@
+[net](../../index.md) / [com.drake.net.connect](../index.md) / [OkHttpConnectFactory](./index.md)
+
+# OkHttpConnectFactory
+
+`open class OkHttpConnectFactory : ConnectFactory`
+
+Created by Zhenjie Yan on 2016/10/15.
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [Builder](-builder/index.md) | `open class Builder` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [connect](connect.md) | `open fun connect(request: Request!): Connection!` |
+| [newBuilder](new-builder.md) | `open static fun newBuilder(): Builder!` |

+ 5 - 0
docs/api/net/com.drake.net.connect/-ok-http-connect-factory/new-builder.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.connect](../index.md) / [OkHttpConnectFactory](index.md) / [newBuilder](./new-builder.md)
+
+# newBuilder
+
+`open static fun newBuilder(): Builder!`

+ 9 - 0
docs/api/net/com.drake.net.connect/index.md

@@ -0,0 +1,9 @@
+[net](../index.md) / [com.drake.net.connect](./index.md)
+
+## Package com.drake.net.connect
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [OkHttpConnectFactory](-ok-http-connect-factory/index.md) | Created by Zhenjie Yan on 2016/10/15.`open class OkHttpConnectFactory : ConnectFactory` |

+ 15 - 0
docs/api/net/com.drake.net.convert/-default-convert/-init-.md

@@ -0,0 +1,15 @@
+[net](../../index.md) / [com.drake.net.convert](../index.md) / [DefaultConvert](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`DefaultConvert(success: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` = "0", code: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` = "code", message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` = "msg")`
+
+默认的转换器实现, 如果不满足需求建议将该文件复制到项目中修改
+
+### Parameters
+
+`success` - 后端定义为成功状态的错误码值
+
+`code` - 错误码在JSON中的字段名
+
+`message` - 错误信息在JSON中的字段名

+ 8 - 0
docs/api/net/com.drake.net.convert/-default-convert/code.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.convert](../index.md) / [DefaultConvert](index.md) / [code](./code.md)
+
+# code
+
+`val code: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
+
+错误码在JSON中的字段名
+

+ 5 - 0
docs/api/net/com.drake.net.convert/-default-convert/convert.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.convert](../index.md) / [DefaultConvert](index.md) / [convert](./convert.md)
+
+# convert
+
+`open fun <S, F> convert(succeed: `[`Type`](https://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Type.html)`, failed: `[`Type`](https://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Type.html)`, request: Request, response: Response, result: Result<S, F>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 36 - 0
docs/api/net/com.drake.net.convert/-default-convert/index.md

@@ -0,0 +1,36 @@
+[net](../../index.md) / [com.drake.net.convert](../index.md) / [DefaultConvert](./index.md)
+
+# DefaultConvert
+
+`abstract class DefaultConvert : Converter`
+
+默认的转换器实现, 如果不满足需求建议将该文件复制到项目中修改
+
+### Parameters
+
+`success` - 后端定义为成功状态的错误码值
+
+`code` - 错误码在JSON中的字段名
+
+`message` - 错误信息在JSON中的字段名
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 默认的转换器实现, 如果不满足需求建议将该文件复制到项目中修改`DefaultConvert(success: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` = "0", code: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` = "code", message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)` = "msg")` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [code](code.md) | 错误码在JSON中的字段名`val code: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [message](message.md) | 错误信息在JSON中的字段名`val message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+| [success](success.md) | 后端定义为成功状态的错误码值`val success: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [convert](convert.md) | `open fun <S, F> convert(succeed: `[`Type`](https://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Type.html)`, failed: `[`Type`](https://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Type.html)`, request: Request, response: Response, result: Result<S, F>): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [parseBody](parse-body.md) | 解析字符串数据 一般用于解析JSON`abstract fun <S> `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`.parseBody(succeed: `[`Type`](https://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Type.html)`): S?` |

+ 8 - 0
docs/api/net/com.drake.net.convert/-default-convert/message.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.convert](../index.md) / [DefaultConvert](index.md) / [message](./message.md)
+
+# message
+
+`val message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
+
+错误信息在JSON中的字段名
+

+ 16 - 0
docs/api/net/com.drake.net.convert/-default-convert/parse-body.md

@@ -0,0 +1,16 @@
+[net](../../index.md) / [com.drake.net.convert](../index.md) / [DefaultConvert](index.md) / [parseBody](./parse-body.md)
+
+# parseBody
+
+`abstract fun <S> `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`.parseBody(succeed: `[`Type`](https://docs.oracle.com/javase/6/docs/api/java/lang/reflect/Type.html)`): S?`
+
+解析字符串数据
+一般用于解析JSON
+
+### Parameters
+
+`succeed` - 请求函数定义的泛型, 例如一般的Moshi/Gson解析数据需要使用
+
+**Receiver**
+原始字符串
+

+ 8 - 0
docs/api/net/com.drake.net.convert/-default-convert/success.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.convert](../index.md) / [DefaultConvert](index.md) / [success](./success.md)
+
+# success
+
+`val success: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
+
+后端定义为成功状态的错误码值
+

+ 9 - 0
docs/api/net/com.drake.net.convert/index.md

@@ -0,0 +1,9 @@
+[net](../index.md) / [com.drake.net.convert](./index.md)
+
+## Package com.drake.net.convert
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [DefaultConvert](-default-convert/index.md) | 默认的转换器实现, 如果不满足需求建议将该文件复制到项目中修改`abstract class DefaultConvert : Converter` |

+ 8 - 0
docs/api/net/com.drake.net.error/-net-cancellation-exception/-init-.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [NetCancellationException](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`NetCancellationException(coroutineScope: CoroutineScope, message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`? = null)`
+
+取消网络任务的异常
+

+ 13 - 0
docs/api/net/com.drake.net.error/-net-cancellation-exception/index.md

@@ -0,0 +1,13 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [NetCancellationException](./index.md)
+
+# NetCancellationException
+
+`class NetCancellationException : `[`CancellationException`](https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/CancellationException.html)
+
+取消网络任务的异常
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 取消网络任务的异常`NetCancellationException(coroutineScope: CoroutineScope, message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`? = null)` |

+ 8 - 0
docs/api/net/com.drake.net.error/-request-params-exception/-init-.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [RequestParamsException](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`RequestParamsException(code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, request: Request)`
+
+404
+

+ 5 - 0
docs/api/net/com.drake.net.error/-request-params-exception/code.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [RequestParamsException](index.md) / [code](./code.md)
+
+# code
+
+`val code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)

+ 19 - 0
docs/api/net/com.drake.net.error/-request-params-exception/index.md

@@ -0,0 +1,19 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [RequestParamsException](./index.md)
+
+# RequestParamsException
+
+`class RequestParamsException : NetException`
+
+404
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 404`RequestParamsException(code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, request: Request)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [code](code.md) | `val code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |

+ 15 - 0
docs/api/net/com.drake.net.error/-response-exception/-init-.md

@@ -0,0 +1,15 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [ResponseException](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`ResponseException(code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, msg: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, request: Request)`
+
+对应网络请求后台定义的错误信息
+
+### Parameters
+
+`msg` - 网络请求错误信息
+
+`code` - 网络请求错误码
+
+`tag` - 应对错误码判断为错时但是后端又返回了需要使用的数据(建议后端修改). 一般在Convert中设置数据

+ 8 - 0
docs/api/net/com.drake.net.error/-response-exception/code.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [ResponseException](index.md) / [code](./code.md)
+
+# code
+
+`val code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)
+
+网络请求错误码
+

+ 28 - 0
docs/api/net/com.drake.net.error/-response-exception/index.md

@@ -0,0 +1,28 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [ResponseException](./index.md)
+
+# ResponseException
+
+`class ResponseException : NetException`
+
+对应网络请求后台定义的错误信息
+
+### Parameters
+
+`msg` - 网络请求错误信息
+
+`code` - 网络请求错误码
+
+`tag` - 应对错误码判断为错时但是后端又返回了需要使用的数据(建议后端修改). 一般在Convert中设置数据
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 对应网络请求后台定义的错误信息`ResponseException(code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, msg: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, request: Request)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [code](code.md) | 网络请求错误码`val code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
+| [msg](msg.md) | 网络请求错误信息`val msg: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html) |

+ 8 - 0
docs/api/net/com.drake.net.error/-response-exception/msg.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [ResponseException](index.md) / [msg](./msg.md)
+
+# msg
+
+`val msg: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)
+
+网络请求错误信息
+

+ 8 - 0
docs/api/net/com.drake.net.error/-server-response-exception/-init-.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [ServerResponseException](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`ServerResponseException(code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, request: Request)`
+
+500
+

+ 5 - 0
docs/api/net/com.drake.net.error/-server-response-exception/code.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [ServerResponseException](index.md) / [code](./code.md)
+
+# code
+
+`val code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)

+ 19 - 0
docs/api/net/com.drake.net.error/-server-response-exception/index.md

@@ -0,0 +1,19 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [ServerResponseException](./index.md)
+
+# ServerResponseException
+
+`class ServerResponseException : NetException`
+
+500
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 500`ServerResponseException(code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)`, request: Request)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [code](code.md) | `val code: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |

+ 18 - 0
docs/api/net/com.drake.net.error/index.md

@@ -0,0 +1,18 @@
+[net](../index.md) / [com.drake.net.error](./index.md)
+
+## Package com.drake.net.error
+
+### Exceptions
+
+| Name | Summary |
+|---|---|
+| [NetCancellationException](-net-cancellation-exception/index.md) | 取消网络任务的异常`class NetCancellationException : `[`CancellationException`](https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/CancellationException.html) |
+| [RequestParamsException](-request-params-exception/index.md) | 404`class RequestParamsException : NetException` |
+| [ResponseException](-response-exception/index.md) | 对应网络请求后台定义的错误信息`class ResponseException : NetException` |
+| [ServerResponseException](-server-response-exception/index.md) | 500`class ServerResponseException : NetException` |
+
+### Extensions for External Classes
+
+| Name | Summary |
+|---|---|
+| [kotlinx.coroutines.CoroutineScope](kotlinx.coroutines.-coroutine-scope/index.md) |  |

+ 8 - 0
docs/api/net/com.drake.net.error/kotlinx.coroutines.-coroutine-scope/-net-cancellation-exception.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [kotlinx.coroutines.CoroutineScope](index.md) / [NetCancellationException](./-net-cancellation-exception.md)
+
+# NetCancellationException
+
+`fun CoroutineScope.NetCancellationException(message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`? = null): `[`NetCancellationException`](../-net-cancellation-exception/index.md)
+
+抛出该异常将取消作用域内所有的网络请求
+

+ 7 - 0
docs/api/net/com.drake.net.error/kotlinx.coroutines.-coroutine-scope/index.md

@@ -0,0 +1,7 @@
+[net](../../index.md) / [com.drake.net.error](../index.md) / [kotlinx.coroutines.CoroutineScope](./index.md)
+
+### Extensions for kotlinx.coroutines.CoroutineScope
+
+| Name | Summary |
+|---|---|
+| [NetCancellationException](-net-cancellation-exception.md) | 抛出该异常将取消作用域内所有的网络请求`fun CoroutineScope.NetCancellationException(message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`? = null): `[`NetCancellationException`](../-net-cancellation-exception/index.md) |

+ 8 - 0
docs/api/net/com.drake.net.scope/-android-scope/-init-.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`AndroidScope(lifecycleOwner: LifecycleOwner? = null, lifeEvent: Event = Lifecycle.Event.ON_DESTROY)`
+
+异步协程作用域
+

+ 6 - 0
docs/api/net/com.drake.net.scope/-android-scope/cancel.md

@@ -0,0 +1,6 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [cancel](./cancel.md)
+
+# cancel
+
+`open fun cancel(cause: CancellationException? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+`open fun cancel(message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, cause: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 9 - 0
docs/api/net/com.drake.net.scope/-android-scope/catch.md

@@ -0,0 +1,9 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [catch](./catch.md)
+
+# catch
+
+`protected var catch: (`[`AndroidScope`](index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)?`
+`protected open fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`open fun catch(block: `[`AndroidScope`](index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` = {}): `[`AndroidScope`](index.md)
+
+当作用域内发生异常时回调
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-android-scope/coroutine-context.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [coroutineContext](./coroutine-context.md)
+
+# coroutineContext
+
+`open val coroutineContext: `[`CoroutineContext`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines/-coroutine-context/index.html)

+ 9 - 0
docs/api/net/com.drake.net.scope/-android-scope/finally.md

@@ -0,0 +1,9 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [finally](./finally.md)
+
+# finally
+
+`protected var finally: (`[`AndroidScope`](index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)?`
+`protected open fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`open fun finally(block: `[`AndroidScope`](index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` = {}): `[`AndroidScope`](index.md)
+
+无论正常或者异常结束都将最终执行
+

+ 8 - 0
docs/api/net/com.drake.net.scope/-android-scope/handle-error.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [handleError](./handle-error.md)
+
+# handleError
+
+`open fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+错误处理
+

+ 39 - 0
docs/api/net/com.drake.net.scope/-android-scope/index.md

@@ -0,0 +1,39 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](./index.md)
+
+# AndroidScope
+
+`open class AndroidScope : CoroutineScope`
+
+异步协程作用域
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 异步协程作用域`AndroidScope(lifecycleOwner: LifecycleOwner? = null, lifeEvent: Event = Lifecycle.Event.ON_DESTROY)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [catch](catch.md) | `var catch: (`[`AndroidScope`](./index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)?` |
+| [coroutineContext](coroutine-context.md) | `open val coroutineContext: `[`CoroutineContext`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.coroutines/-coroutine-context/index.html) |
+| [finally](finally.md) | `var finally: (`[`AndroidScope`](./index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)?` |
+| [uid](uid.md) | `val uid: CoroutineExceptionHandler` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [cancel](cancel.md) | `open fun cancel(cause: CancellationException? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>`open fun cancel(message: `[`String`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-string/index.html)`, cause: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`? = null): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [catch](catch.md) | `open fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>当作用域内发生异常时回调`open fun catch(block: `[`AndroidScope`](./index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` = {}): `[`AndroidScope`](./index.md) |
+| [finally](finally.md) | `open fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)<br>无论正常或者异常结束都将最终执行`open fun finally(block: `[`AndroidScope`](./index.md)`.(`[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?) -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)` = {}): `[`AndroidScope`](./index.md) |
+| [handleError](handle-error.md) | 错误处理`open fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [launch](launch.md) | `open fun launch(block: suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`AndroidScope`](./index.md) |
+| [start](start.md) | `open fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [NetCoroutineScope](../-net-coroutine-scope/index.md) | 自动显示网络错误信息协程作用域`open class NetCoroutineScope : `[`AndroidScope`](./index.md) |

+ 5 - 0
docs/api/net/com.drake.net.scope/-android-scope/launch.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [launch](./launch.md)
+
+# launch
+
+`open fun launch(block: suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`AndroidScope`](index.md)

+ 5 - 0
docs/api/net/com.drake.net.scope/-android-scope/start.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [start](./start.md)
+
+# start
+
+`protected open fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-android-scope/uid.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [AndroidScope](index.md) / [uid](./uid.md)
+
+# uid
+
+`val uid: CoroutineExceptionHandler`

+ 19 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/-init-.md

@@ -0,0 +1,19 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`DialogCoroutineScope(activity: FragmentActivity, dialog: `[`Dialog`](https://developer.android.com/reference/android/app/Dialog.html)`? = null, cancelable: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` = true)`
+
+自动加载对话框网络请求
+
+开始: 显示对话框
+错误: 提示错误信息, 关闭对话框
+完全: 关闭对话框
+
+### Parameters
+
+`activity` - 对话框跟随生命周期的FragmentActivity
+
+`dialog` - 不使用默认的加载对话框而指定对话框
+
+`cancelable` - 是否允许用户取消对话框

+ 8 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/activity.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [activity](./activity.md)
+
+# activity
+
+`val activity: FragmentActivity`
+
+对话框跟随生命周期的FragmentActivity
+

+ 8 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/cancelable.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [cancelable](./cancelable.md)
+
+# cancelable
+
+`val cancelable: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)
+
+是否允许用户取消对话框
+

+ 8 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/dialog.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [dialog](./dialog.md)
+
+# dialog
+
+`var dialog: `[`Dialog`](https://developer.android.com/reference/android/app/Dialog.html)`?`
+
+不使用默认的加载对话框而指定对话框
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/dismiss.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [dismiss](./dismiss.md)
+
+# dismiss
+
+`fun dismiss(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/finally.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [finally](./finally.md)
+
+# finally
+
+`protected fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 8 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/handle-error.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [handleError](./handle-error.md)
+
+# handleError
+
+`fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+错误处理
+

+ 43 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/index.md

@@ -0,0 +1,43 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](./index.md)
+
+# DialogCoroutineScope
+
+`class DialogCoroutineScope : `[`NetCoroutineScope`](../-net-coroutine-scope/index.md)`, LifecycleObserver`
+
+自动加载对话框网络请求
+
+开始: 显示对话框
+错误: 提示错误信息, 关闭对话框
+完全: 关闭对话框
+
+### Parameters
+
+`activity` - 对话框跟随生命周期的FragmentActivity
+
+`dialog` - 不使用默认的加载对话框而指定对话框
+
+`cancelable` - 是否允许用户取消对话框
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 自动加载对话框网络请求`DialogCoroutineScope(activity: FragmentActivity, dialog: `[`Dialog`](https://developer.android.com/reference/android/app/Dialog.html)`? = null, cancelable: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` = true)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [activity](activity.md) | 对话框跟随生命周期的FragmentActivity`val activity: FragmentActivity` |
+| [cancelable](cancelable.md) | 是否允许用户取消对话框`val cancelable: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
+| [dialog](dialog.md) | 不使用默认的加载对话框而指定对话框`var dialog: `[`Dialog`](https://developer.android.com/reference/android/app/Dialog.html)`?` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [dismiss](dismiss.md) | `fun dismiss(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [finally](finally.md) | `fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [handleError](handle-error.md) | 错误处理`fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [readCache](read-cache.md) | 读取缓存回调`fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [start](start.md) | `fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |

+ 8 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/read-cache.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [readCache](./read-cache.md)
+
+# readCache
+
+`protected fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+读取缓存回调
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-dialog-coroutine-scope/start.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [DialogCoroutineScope](index.md) / [start](./start.md)
+
+# start
+
+`protected fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 8 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/-init-.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`NetCoroutineScope(lifecycleOwner: LifecycleOwner, lifeEvent: Event = Lifecycle.Event.ON_DESTROY)``NetCoroutineScope()`
+
+自动显示网络错误信息协程作用域
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/animate.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [animate](./animate.md)
+
+# animate
+
+`var animate: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)

+ 18 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/cache.md

@@ -0,0 +1,18 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [cache](./cache.md)
+
+# cache
+
+`fun cache(error: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` = false, animate: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` = false, onCache: suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`AndroidScope`](../-android-scope/index.md)
+
+该函数一般用于缓存读取
+只在第一次启动作用域时回调
+该函数在作用域[launch](launch.md)之前执行
+函数内部所有的异常都不会被抛出, 也不会终止作用域执行
+
+### Parameters
+
+`error` - 是否在缓存读取成功但网络请求错误时吐司错误信息
+
+`animate` - 是否在缓存成功后依然显示加载动画
+
+`onCache` - 该作用域内的所有异常都算缓存读取失败, 不会吐司和打印任何错误

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/cancel.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [cancel](./cancel.md)
+
+# cancel
+
+`open fun cancel(cause: CancellationException?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/catch.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [catch](./catch.md)
+
+# catch
+
+`protected open fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/error.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [error](./error.md)
+
+# error
+
+`protected var error: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)

+ 8 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/handle-error.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [handleError](./handle-error.md)
+
+# handleError
+
+`open fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+错误处理
+

+ 42 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/index.md

@@ -0,0 +1,42 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](./index.md)
+
+# NetCoroutineScope
+
+`open class NetCoroutineScope : `[`AndroidScope`](../-android-scope/index.md)
+
+自动显示网络错误信息协程作用域
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | `NetCoroutineScope(lifecycleOwner: LifecycleOwner, lifeEvent: Event = Lifecycle.Event.ON_DESTROY)`<br>自动显示网络错误信息协程作用域`NetCoroutineScope()` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [animate](animate.md) | `var animate: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
+| [error](error.md) | `var error: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
+| [isCacheSucceed](is-cache-succeed.md) | `var isCacheSucceed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
+| [isReadCache](is-read-cache.md) | `var isReadCache: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
+| [onCache](on-cache.md) | `var onCache: (suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)?` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [cache](cache.md) | 该函数一般用于缓存读取 只在第一次启动作用域时回调 该函数在作用域[launch](launch.md)之前执行 函数内部所有的异常都不会被抛出, 也不会终止作用域执行`fun cache(error: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` = false, animate: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)` = false, onCache: suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`AndroidScope`](../-android-scope/index.md) |
+| [cancel](cancel.md) | `open fun cancel(cause: CancellationException?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [catch](catch.md) | `open fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [handleError](handle-error.md) | 错误处理`open fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [launch](launch.md) | `open fun launch(block: suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`NetCoroutineScope`](./index.md) |
+| [readCache](read-cache.md) | 读取缓存回调`open fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [DialogCoroutineScope](../-dialog-coroutine-scope/index.md) | 自动加载对话框网络请求`class DialogCoroutineScope : `[`NetCoroutineScope`](./index.md)`, LifecycleObserver` |
+| [PageCoroutineScope](../-page-coroutine-scope/index.md) | `class PageCoroutineScope : `[`NetCoroutineScope`](./index.md) |
+| [StateCoroutineScope](../-state-coroutine-scope/index.md) | 缺省页作用域`class StateCoroutineScope : `[`NetCoroutineScope`](./index.md) |

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/is-cache-succeed.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [isCacheSucceed](./is-cache-succeed.md)
+
+# isCacheSucceed
+
+`protected var isCacheSucceed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/is-read-cache.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [isReadCache](./is-read-cache.md)
+
+# isReadCache
+
+`protected var isReadCache: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/launch.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [launch](./launch.md)
+
+# launch
+
+`open fun launch(block: suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`): `[`NetCoroutineScope`](index.md)

+ 5 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/on-cache.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [onCache](./on-cache.md)
+
+# onCache
+
+`protected var onCache: (suspend CoroutineScope.() -> `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)`)?`

+ 8 - 0
docs/api/net/com.drake.net.scope/-net-coroutine-scope/read-cache.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [NetCoroutineScope](index.md) / [readCache](./read-cache.md)
+
+# readCache
+
+`protected open fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+读取缓存回调
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/--index--.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [index](./--index--.md)
+
+# index
+
+`val index: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/-init-.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`PageCoroutineScope(page: PageRefreshLayout)`

+ 5 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/catch.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [catch](./catch.md)
+
+# catch
+
+`protected fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/finally.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [finally](./finally.md)
+
+# finally
+
+`protected fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 8 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/handle-error.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [handleError](./handle-error.md)
+
+# handleError
+
+`fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+错误处理
+

+ 28 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/index.md

@@ -0,0 +1,28 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](./index.md)
+
+# PageCoroutineScope
+
+`class PageCoroutineScope : `[`NetCoroutineScope`](../-net-coroutine-scope/index.md)
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | `PageCoroutineScope(page: PageRefreshLayout)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [index](--index--.md) | `val index: `[`Int`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-int/index.html) |
+| [page](page.md) | `val page: PageRefreshLayout` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [catch](catch.md) | `fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [finally](finally.md) | `fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [handleError](handle-error.md) | 错误处理`fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [readCache](read-cache.md) | 读取缓存回调`fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [start](start.md) | `fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |

+ 5 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/page.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [page](./page.md)
+
+# page
+
+`val page: PageRefreshLayout`

+ 8 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/read-cache.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [readCache](./read-cache.md)
+
+# readCache
+
+`protected fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+读取缓存回调
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-page-coroutine-scope/start.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [PageCoroutineScope](index.md) / [start](./start.md)
+
+# start
+
+`protected fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 8 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/-init-.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`StateCoroutineScope(state: StateLayout)`
+
+缺省页作用域
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/catch.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](index.md) / [catch](./catch.md)
+
+# catch
+
+`protected fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/finally.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](index.md) / [finally](./finally.md)
+
+# finally
+
+`protected fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 8 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/handle-error.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](index.md) / [handleError](./handle-error.md)
+
+# handleError
+
+`fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+错误处理
+

+ 29 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/index.md

@@ -0,0 +1,29 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](./index.md)
+
+# StateCoroutineScope
+
+`class StateCoroutineScope : `[`NetCoroutineScope`](../-net-coroutine-scope/index.md)
+
+缺省页作用域
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | 缺省页作用域`StateCoroutineScope(state: StateLayout)` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [state](state.md) | `val state: StateLayout` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [catch](catch.md) | `fun catch(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [finally](finally.md) | `fun finally(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`?): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [handleError](handle-error.md) | 错误处理`fun handleError(e: `[`Throwable`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-throwable/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [readCache](read-cache.md) | 读取缓存回调`fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |
+| [start](start.md) | `fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html) |

+ 8 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/read-cache.md

@@ -0,0 +1,8 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](index.md) / [readCache](./read-cache.md)
+
+# readCache
+
+`protected fun readCache(succeed: `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)`): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)
+
+读取缓存回调
+

+ 5 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/start.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](index.md) / [start](./start.md)
+
+# start
+
+`protected fun start(): `[`Unit`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-unit/index.html)

+ 5 - 0
docs/api/net/com.drake.net.scope/-state-coroutine-scope/state.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.scope](../index.md) / [StateCoroutineScope](index.md) / [state](./state.md)
+
+# state
+
+`val state: StateLayout`

+ 13 - 0
docs/api/net/com.drake.net.scope/index.md

@@ -0,0 +1,13 @@
+[net](../index.md) / [com.drake.net.scope](./index.md)
+
+## Package com.drake.net.scope
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [AndroidScope](-android-scope/index.md) | 异步协程作用域`open class AndroidScope : CoroutineScope` |
+| [DialogCoroutineScope](-dialog-coroutine-scope/index.md) | 自动加载对话框网络请求`class DialogCoroutineScope : `[`NetCoroutineScope`](-net-coroutine-scope/index.md)`, LifecycleObserver` |
+| [NetCoroutineScope](-net-coroutine-scope/index.md) | 自动显示网络错误信息协程作用域`open class NetCoroutineScope : `[`AndroidScope`](-android-scope/index.md) |
+| [PageCoroutineScope](-page-coroutine-scope/index.md) | `class PageCoroutineScope : `[`NetCoroutineScope`](-net-coroutine-scope/index.md) |
+| [StateCoroutineScope](-state-coroutine-scope/index.md) | 缺省页作用域`class StateCoroutineScope : `[`NetCoroutineScope`](-net-coroutine-scope/index.md) |

+ 8 - 0
docs/api/net/com.drake.net.tag/-r-e-q-u-e-s-t.md

@@ -0,0 +1,8 @@
+[net](../index.md) / [com.drake.net.tag](index.md) / [REQUEST](./-r-e-q-u-e-s-t.md)
+
+# REQUEST
+
+`object REQUEST : `[`TAG`](-t-a-g/index.md)
+
+请求参数打印标签
+

+ 8 - 0
docs/api/net/com.drake.net.tag/-r-e-s-p-o-n-s-e.md

@@ -0,0 +1,8 @@
+[net](../index.md) / [com.drake.net.tag](index.md) / [RESPONSE](./-r-e-s-p-o-n-s-e.md)
+
+# RESPONSE
+
+`object RESPONSE : `[`TAG`](-t-a-g/index.md)
+
+响应体打印标签
+

+ 5 - 0
docs/api/net/com.drake.net.tag/-t-a-g/-init-.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.tag](../index.md) / [TAG](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`TAG()`

+ 5 - 0
docs/api/net/com.drake.net.tag/-t-a-g/contains.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.tag](../index.md) / [TAG](index.md) / [contains](./contains.md)
+
+# contains
+
+`operator fun contains(tag: @UnsafeVariance `[`TAG`](index.md)`): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html)

+ 5 - 0
docs/api/net/com.drake.net.tag/-t-a-g/get.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.tag](../index.md) / [TAG](index.md) / [get](./get.md)
+
+# get
+
+`operator fun get(key: `[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`<out `[`TAG`](index.md)`>): `[`TAG`](index.md)`?`

+ 33 - 0
docs/api/net/com.drake.net.tag/-t-a-g/index.md

@@ -0,0 +1,33 @@
+[net](../../index.md) / [com.drake.net.tag](../index.md) / [TAG](./index.md)
+
+# TAG
+
+`abstract class TAG`
+
+### Constructors
+
+| Name | Summary |
+|---|---|
+| [&lt;init&gt;](-init-.md) | `TAG()` |
+
+### Properties
+
+| Name | Summary |
+|---|---|
+| [list](list.md) | `var list: `[`MutableList`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)`<`[`TAG`](./index.md)`>?` |
+
+### Functions
+
+| Name | Summary |
+|---|---|
+| [contains](contains.md) | `operator fun contains(tag: `[`TAG`](./index.md)`): `[`Boolean`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-boolean/index.html) |
+| [get](get.md) | `operator fun get(key: `[`KClass`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.reflect/-k-class/index.html)`<out `[`TAG`](./index.md)`>): `[`TAG`](./index.md)`?` |
+| [minus](minus.md) | `operator fun minus(tag: `[`TAG`](./index.md)`): `[`TAG`](./index.md) |
+| [plus](plus.md) | `operator fun plus(tag: `[`TAG`](./index.md)`): `[`TAG`](./index.md) |
+
+### Inheritors
+
+| Name | Summary |
+|---|---|
+| [REQUEST](../-r-e-q-u-e-s-t.md) | 请求参数打印标签`object REQUEST : `[`TAG`](./index.md) |
+| [RESPONSE](../-r-e-s-p-o-n-s-e.md) | 响应体打印标签`object RESPONSE : `[`TAG`](./index.md) |

+ 5 - 0
docs/api/net/com.drake.net.tag/-t-a-g/list.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.tag](../index.md) / [TAG](index.md) / [list](./list.md)
+
+# list
+
+`protected var list: `[`MutableList`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin.collections/-mutable-list/index.html)`<`[`TAG`](index.md)`>?`

+ 5 - 0
docs/api/net/com.drake.net.tag/-t-a-g/minus.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.tag](../index.md) / [TAG](index.md) / [minus](./minus.md)
+
+# minus
+
+`operator fun minus(tag: `[`TAG`](index.md)`): `[`TAG`](index.md)

+ 5 - 0
docs/api/net/com.drake.net.tag/-t-a-g/plus.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.tag](../index.md) / [TAG](index.md) / [plus](./plus.md)
+
+# plus
+
+`operator fun plus(tag: `[`TAG`](index.md)`): `[`TAG`](index.md)

+ 11 - 0
docs/api/net/com.drake.net.tag/index.md

@@ -0,0 +1,11 @@
+[net](../index.md) / [com.drake.net.tag](./index.md)
+
+## Package com.drake.net.tag
+
+### Types
+
+| Name | Summary |
+|---|---|
+| [REQUEST](-r-e-q-u-e-s-t.md) | 请求参数打印标签`object REQUEST : `[`TAG`](-t-a-g/index.md) |
+| [RESPONSE](-r-e-s-p-o-n-s-e.md) | 响应体打印标签`object RESPONSE : `[`TAG`](-t-a-g/index.md) |
+| [TAG](-t-a-g/index.md) | `abstract class TAG` |

+ 5 - 0
docs/api/net/com.drake.net.time/-interval-status/-s-t-a-t-e_-a-c-t-i-v-e.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.time](../index.md) / [IntervalStatus](index.md) / [STATE_ACTIVE](./-s-t-a-t-e_-a-c-t-i-v-e.md)
+
+# STATE_ACTIVE
+
+`STATE_ACTIVE`

+ 5 - 0
docs/api/net/com.drake.net.time/-interval-status/-s-t-a-t-e_-i-d-l-e.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.time](../index.md) / [IntervalStatus](index.md) / [STATE_IDLE](./-s-t-a-t-e_-i-d-l-e.md)
+
+# STATE_IDLE
+
+`STATE_IDLE`

+ 5 - 0
docs/api/net/com.drake.net.time/-interval-status/-s-t-a-t-e_-p-a-u-s-e.md

@@ -0,0 +1,5 @@
+[net](../../index.md) / [com.drake.net.time](../index.md) / [IntervalStatus](index.md) / [STATE_PAUSE](./-s-t-a-t-e_-p-a-u-s-e.md)
+
+# STATE_PAUSE
+
+`STATE_PAUSE`

+ 15 - 0
docs/api/net/com.drake.net.time/-interval-status/index.md

@@ -0,0 +1,15 @@
+[net](../../index.md) / [com.drake.net.time](../index.md) / [IntervalStatus](./index.md)
+
+# IntervalStatus
+
+`enum class IntervalStatus`
+
+计时器的状态
+
+### Enum Values
+
+| Name | Summary |
+|---|---|
+| [STATE_ACTIVE](-s-t-a-t-e_-a-c-t-i-v-e.md) |  |
+| [STATE_IDLE](-s-t-a-t-e_-i-d-l-e.md) |  |
+| [STATE_PAUSE](-s-t-a-t-e_-p-a-u-s-e.md) |  |

+ 34 - 0
docs/api/net/com.drake.net.time/-interval/-init-.md

@@ -0,0 +1,34 @@
+[net](../../index.md) / [com.drake.net.time](../index.md) / [Interval](index.md) / [&lt;init&gt;](./-init-.md)
+
+# &lt;init&gt;
+
+`Interval(period: `[`Long`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)`, unit: `[`TimeUnit`](https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/TimeUnit.html)`, initialDelay: `[`Long`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)` = period)``Interval(end: `[`Long`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)`, period: `[`Long`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)`, unit: `[`TimeUnit`](https://docs.oracle.com/javase/6/docs/api/java/util/concurrent/TimeUnit.html)`, start: `[`Long`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)` = 0, initialDelay: `[`Long`](https://kotlinlang.org/api/latest/jvm/stdlib/kotlin/-long/index.html)` = period)`
+
+轮循器
+
+操作
+
+1. 开启: 只有在闲置状态下才可以开始
+2. 停止
+3. 暂停
+4. 继续
+5. 重置: 重置不会导致轮循器停止
+6. 开关: 开启|暂停切换
+7. 生命周期
+
+回调: 允许多次订阅同一个轮循器
+
+1. 每个事件
+2. 停止或者结束
+
+### Parameters
+
+`end` - 结束值
+
+`period` - 事件间隔
+
+`unit` - 事件单位
+
+`initialDelay` - 第一次事件的间隔时间
+
+`start` - 开始值, 当[start](start.md)]比[end](end.md)值大, 且end不等于-1时, 即为倒计时

Some files were not shown because too many files changed in this diff