drake 4 年 前
コミット
22e8949280
21 ファイル変更56 行追加85 行削除
  1. 12 6
      net/src/main/java/com/drake/net/time/Interval.kt
  2. 2 7
      sample/src/main/java/com/drake/net/sample/ui/activity/MainActivity.kt
  3. 2 4
      sample/src/main/java/com/drake/net/sample/ui/fragment/AsyncTaskFragment.kt
  4. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/ConfigDialogFragment.kt
  5. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/CoroutineScopeFragment.kt
  6. 2 5
      sample/src/main/java/com/drake/net/sample/ui/fragment/CustomConvertFragment.kt
  7. 2 2
      sample/src/main/java/com/drake/net/sample/ui/fragment/DownloadFileFragment.kt
  8. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/DownloadImageFragment.kt
  9. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/ErrorHandlerFragment.kt
  10. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/ExceptionTraceFragment.kt
  11. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/FastestFragment.kt
  12. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/InterceptorFragment.kt
  13. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/ParallelNetworkFragment.kt
  14. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/PullRefreshFragment.kt
  15. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/PushRefreshFragment.kt
  16. 3 4
      sample/src/main/java/com/drake/net/sample/ui/fragment/ReadCacheFragment.kt
  17. 2 4
      sample/src/main/java/com/drake/net/sample/ui/fragment/RequestMethodFragment.kt
  18. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/StateLayoutFragment.kt
  19. 3 11
      sample/src/main/java/com/drake/net/sample/ui/fragment/SuperIntervalFragment.kt
  20. 2 3
      sample/src/main/java/com/drake/net/sample/ui/fragment/SwitchDispatcherFragment.kt
  21. 4 6
      sample/src/main/java/com/drake/net/sample/ui/fragment/UploadFileFragment.kt

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

@@ -47,10 +47,10 @@ import java.util.concurrent.TimeUnit
  * 2. 停止或者结束
  *
  * @param end 结束值
- * @param period 事件间隔
- * @param unit 事件单位
- * @param initialDelay 第一次事件的间隔时间
- * @param start 开始值, 当[start]]比[end]值大, 且end不等于-1时, 即为倒计时
+ * @param period 计时器间隔
+ * @param unit 计时器单位
+ * @param initialDelay 第一次事件的间隔时间, 默认0
+ * @param start 开始值, 当[start]]比[end]值大, 且end不等于-1时, 即为倒计时, 反之正计时
  *
  * @property count 轮循器的计数
  * @property state 轮循器当前状态
@@ -84,6 +84,8 @@ class Interval(
 
     /**
      * 订阅轮循器
+     * 每次轮循器计时都会调用该回调函数
+     * 轮循器完成时会同时触发回调[block]和[finish]
      */
     fun subscribe(block: (Long) -> Unit): Interval {
         listReceive.add(block)
@@ -91,7 +93,7 @@ class Interval(
     }
 
     /**
-     * 轮循器完成
+     * 轮循器完成时回调该函数
      */
     fun finish(block: (Long) -> Unit): Interval {
         listFinish.add(block)
@@ -128,7 +130,7 @@ class Interval(
     }
 
     /**
-     * 开关
+     * 切换轮循器开始或结束
      */
     fun switch() {
         when (state) {
@@ -140,6 +142,7 @@ class Interval(
 
     /**
      * 继续
+     * 要求轮循器为暂停状态[IntervalStatus.STATE_PAUSE], 否则无效
      */
     fun resume() {
         if (state != IntervalStatus.STATE_PAUSE) return
@@ -174,6 +177,9 @@ class Interval(
     /**
      * 绑定生命周期, 在指定生命周期发生时取消轮循器
      * @param lifecycleOwner 默认在销毁时取消轮循器
+     * @param lifeEvent 销毁的时机, 默认为 ON_STOP 界面停止时停止轮循器
+     *
+     * Fragment的显示/隐藏不会调用onDestroy, 故轮循器默认是在ON_STOP停止, 如果你设置ON_DESTORY请考虑Fragment的情况下
      */
     fun life(
         lifecycleOwner: LifecycleOwner,

+ 2 - 7
sample/src/main/java/com/drake/net/sample/ui/activity/MainActivity.kt

@@ -35,17 +35,12 @@ class MainActivity : AppCompatActivity(R.layout.activity_main) {
         super.onCreate(savedInstanceState)
         immersive(toolbar, true)
         setSupportActionBar(toolbar)
-        toolbar.setupWithNavController(
-            nav.findNavController(),
-            AppBarConfiguration(nav_view.menu, drawer)
-        )
+        toolbar.setupWithNavController(nav.findNavController(), AppBarConfiguration(nav_view.menu, drawer))
         nav_view.setupWithNavController(nav.findNavController())
     }
 
     override fun onBackPressed() {
-        if (drawer.isDrawerOpen(GravityCompat.START)) {
-            drawer.closeDrawers()
-        } else super.onBackPressed()
+        if (drawer.isDrawerOpen(GravityCompat.START)) drawer.closeDrawers() else super.onBackPressed()
     }
 }
 

+ 2 - 4
sample/src/main/java/com/drake/net/sample/ui/fragment/AsyncTaskFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.sample.R
 import com.drake.net.utils.scope
@@ -25,9 +26,7 @@ import kotlinx.coroutines.*
 
 class AsyncTaskFragment : Fragment(R.layout.fragment_async_task) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scope {
             tv_fragment.text = withContext(Dispatchers.IO) {
                 delay(2000)
@@ -36,7 +35,6 @@ class AsyncTaskFragment : Fragment(R.layout.fragment_async_task) {
         }
     }
 
-
     /**
      * 抽出异步任务为一个函数
      */

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/ConfigDialogFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Post
 import com.drake.net.sample.R
@@ -28,9 +29,7 @@ import kotlinx.coroutines.CancellationException
 
 class ConfigDialogFragment : Fragment(R.layout.fragment_config_dialog) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeDialog {
             tv_fragment.text = Post<String>("dialog") {
                 param("u_name", "drake")

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/CoroutineScopeFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import androidx.lifecycle.Lifecycle
 import com.drake.net.sample.R
@@ -30,9 +31,7 @@ import kotlinx.coroutines.delay
 
 class CoroutineScopeFragment : Fragment(R.layout.fragment_coroutine_scope) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         // 其作用域在应用进程销毁时才会被动取消
         scope {
 

+ 2 - 5
sample/src/main/java/com/drake/net/sample/ui/fragment/CustomConvertFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.sample.R
@@ -28,16 +29,12 @@ import kotlinx.android.synthetic.main.fragment_custom_convert.*
 
 class CustomConvertFragment : Fragment(R.layout.fragment_custom_convert) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
             tv_fragment.text = Get<Model>("api") {
                 converter(GsonConvert()) // 单例转换器, 此时会忽略全局转换器
             }.await().data.request_method
         }
-
     }
 
 }

+ 2 - 2
sample/src/main/java/com/drake/net/sample/ui/fragment/DownloadFileFragment.kt

@@ -21,6 +21,7 @@ import android.text.format.Formatter
 import android.view.Menu
 import android.view.MenuInflater
 import android.view.MenuItem
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Download
 import com.drake.net.sample.R
@@ -33,8 +34,7 @@ class DownloadFileFragment : Fragment(R.layout.fragment_download_file) {
 
     private lateinit var downloadScope: NetCoroutineScope
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         setHasOptionsMenu(true)
 
         downloadScope = scopeNetLife {

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/DownloadImageFragment.kt

@@ -18,6 +18,7 @@ package com.drake.net.sample.ui.fragment
 
 import android.net.Uri
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.DownloadImage
 import com.drake.net.NetConfig
@@ -28,9 +29,7 @@ import kotlinx.android.synthetic.main.fragment_download_image.*
 
 class DownloadImageFragment : Fragment(R.layout.fragment_download_image) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeDialog {
             val file = DownloadImage(NetConfig.host + "download/img", 100, 100).await()
             val uri = Uri.fromFile(file)

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/ErrorHandlerFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.sample.R
@@ -26,9 +27,7 @@ import kotlinx.android.synthetic.main.fragment_error_handler.*
 
 class ErrorHandlerFragment : Fragment(R.layout.fragment_error_handler) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
             // 该请求是错误的路径会在控制台打印出错误信息
             Get<String>("error").await()

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/ExceptionTraceFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.sample.R
@@ -26,9 +27,7 @@ import kotlinx.android.synthetic.main.fragment_exception_trace.*
 
 class ExceptionTraceFragment : Fragment(R.layout.fragment_exception_trace) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
             // 这是一个错误的地址, 请查看LogCat的错误信息, 在[Convert]中你也可以进行自定义错误信息打印
             tv_fragment.text = Get<String>("error").await()

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/FastestFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.Post
@@ -27,9 +28,7 @@ import kotlinx.android.synthetic.main.fragment_request_method.*
 
 class FastestFragment : Fragment(R.layout.fragment_fastest) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
             /*
             网络请求的取消本质上依靠uid来辨别,如果设置[uid]参数可以在返回最快结果后取消掉其他网络请求, 反之不会取消其他网络请求

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/InterceptorFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.sample.R
@@ -26,9 +27,7 @@ import kotlinx.android.synthetic.main.fragment_exception_trace.*
 
 class InterceptorFragment : Fragment(R.layout.fragment_interceptor) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
             tv_fragment.text = Get<String>("api") {
                 // 拦截器只支持全局, 无法单例, 请查看[com.drake.net.sample.interceptor.NetInterceptor]

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/ParallelNetworkFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.Post
@@ -27,9 +28,7 @@ import com.drake.net.utils.scopeNetLife
 
 class ParallelNetworkFragment : Fragment(R.layout.fragment_parallel_network) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
 
             // 同时发起三个请求

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/PullRefreshFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.brv.utils.linear
 import com.drake.brv.utils.setup
@@ -29,9 +30,7 @@ import kotlinx.android.synthetic.main.fragment_pull_refresh.*
 
 class PullRefreshFragment : Fragment(R.layout.fragment_pull_refresh) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         rv_pull.linear().setup {
             addType<String>(R.layout.item_list)
         }

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/PushRefreshFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.brv.utils.linear
 import com.drake.brv.utils.models
@@ -30,9 +31,7 @@ import kotlinx.android.synthetic.main.fragment_push_refresh.*
 
 class PushRefreshFragment : Fragment(R.layout.fragment_push_refresh) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         rv_push.linear().setup {
             addType<String>(R.layout.item_list)
         }

+ 3 - 4
sample/src/main/java/com/drake/net/sample/ui/fragment/ReadCacheFragment.kt

@@ -18,6 +18,7 @@ package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
 import android.util.Log
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.Post
@@ -29,13 +30,11 @@ import kotlinx.android.synthetic.main.fragment_read_cache.*
 
 class ReadCacheFragment : Fragment(R.layout.fragment_read_cache) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
             // 然后执行这里(网络请求)
             tv_fragment.text =
-                Post<String>("api", cache = CacheMode.NETWORK_YES_THEN_WRITE_CACHE).await()
+                    Post<String>("api", cache = CacheMode.NETWORK_YES_THEN_WRITE_CACHE).await()
             Log.d("日志", "网络请求")
         }.preview {
             // 先执行这里(仅读缓存), 任何异常都视为读取缓存失败

+ 2 - 4
sample/src/main/java/com/drake/net/sample/ui/fragment/RequestMethodFragment.kt

@@ -22,6 +22,7 @@ import android.os.Bundle
 import android.view.Menu
 import android.view.MenuInflater
 import android.view.MenuItem
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.*
 import com.drake.net.sample.R
@@ -31,12 +32,10 @@ import kotlinx.android.synthetic.main.fragment_async_task.*
 
 class RequestMethodFragment : Fragment(R.layout.fragment_request_method) {
 
-    override fun onCreate(savedInstanceState: Bundle?) {
-        super.onCreate(savedInstanceState)
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         setHasOptionsMenu(true)
     }
 
-
     private fun GET() {
         scopeNetLife {
             tv_fragment.text = Get<String>("api").await()
@@ -85,7 +84,6 @@ class RequestMethodFragment : Fragment(R.layout.fragment_request_method) {
         }
     }
 
-
     override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
         super.onCreateOptionsMenu(menu, inflater)
         inflater.inflate(R.menu.menu_request_method, menu)

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/StateLayoutFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Get
 import com.drake.net.sample.R
@@ -26,9 +27,7 @@ import kotlinx.android.synthetic.main.fragment_state_layout.*
 
 class StateLayoutFragment : Fragment(R.layout.fragment_state_layout) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         state.onRefresh {
             scope {
                 tv_fragment.text = Get<String>("api").await()

+ 3 - 11
sample/src/main/java/com/drake/net/sample/ui/fragment/SuperIntervalFragment.kt

@@ -20,6 +20,7 @@ import android.os.Bundle
 import android.view.Menu
 import android.view.MenuInflater
 import android.view.MenuItem
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.sample.R
 import com.drake.net.time.Interval
@@ -31,15 +32,8 @@ class SuperIntervalFragment : Fragment(R.layout.fragment_super_interval) {
 
     private lateinit var interval: Interval // 轮循器
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
-        interval = Interval(
-            0,
-            1,
-            TimeUnit.SECONDS,
-            10
-        ).life(this) // 自定义计数器个数的轮循器, 当[start]]比[end]值大, 且end不等于-1时, 即为倒计时
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
+        interval = Interval(0, 1, TimeUnit.SECONDS, 10).life(this) // 自定义计数器个数的轮循器, 当[start]]比[end]值大, 且end不等于-1时, 即为倒计时
         // interval = Interval(1, TimeUnit.SECONDS) // 每秒回调一次, 不会自动结束
         interval.subscribe {
             tv_fragment.text = it.toString()
@@ -48,13 +42,11 @@ class SuperIntervalFragment : Fragment(R.layout.fragment_super_interval) {
         }.start()
     }
 
-
     override fun onCreateOptionsMenu(menu: Menu, inflater: MenuInflater) {
         super.onCreateOptionsMenu(menu, inflater)
         inflater.inflate(R.menu.menu_interval, menu)
     }
 
-
     override fun onOptionsItemSelected(item: MenuItem): Boolean {
         when (item.itemId) {
             R.id.start -> interval.start()

+ 2 - 3
sample/src/main/java/com/drake/net/sample/ui/fragment/SwitchDispatcherFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.sample.R
 import com.drake.net.utils.scopeLife
@@ -27,9 +28,7 @@ import kotlinx.coroutines.launch
 
 class SwitchDispatcherFragment : Fragment(R.layout.fragment_switch_dispatcher) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeLife {
 
             // 点击函数名查看更多相关函数

+ 4 - 6
sample/src/main/java/com/drake/net/sample/ui/fragment/UploadFileFragment.kt

@@ -17,6 +17,7 @@
 package com.drake.net.sample.ui.fragment
 
 import android.os.Bundle
+import android.view.View
 import androidx.fragment.app.Fragment
 import com.drake.net.Post
 import com.drake.net.sample.R
@@ -29,9 +30,7 @@ import java.io.FileOutputStream
 
 class UploadFileFragment : Fragment(R.layout.fragment_upload_file) {
 
-    override fun onActivityCreated(savedInstanceState: Bundle?) {
-        super.onActivityCreated(savedInstanceState)
-
+    override fun onViewCreated(view: View, savedInstanceState: Bundle?) {
         scopeNetLife {
             Post<String>("upload") {
                 val saveFile = getFile()
@@ -42,9 +41,9 @@ class UploadFileFragment : Fragment(R.layout.fragment_upload_file) {
                     seek.progress = progress // 进度条
                     // 格式化显示单位
                     val downloadSize =
-                        android.text.format.Formatter.formatFileSize(requireContext(), 23)
+                            android.text.format.Formatter.formatFileSize(requireContext(), 23)
                     val downloadSpeed =
-                        android.text.format.Formatter.formatFileSize(requireContext(), 23)
+                            android.text.format.Formatter.formatFileSize(requireContext(), 23)
 
                     // 显示下载信息
                     tv_progress.text = "上传进度: $progress% 已下载: $downloadSize 下载速度: $downloadSpeed"
@@ -54,7 +53,6 @@ class UploadFileFragment : Fragment(R.layout.fragment_upload_file) {
 
             }.await()
         }
-
     }
 
     /**