feat: 增加数据导入
This commit is contained in:
29
app/src/main/java/com/navinfo/omqs/tools/CoroutineUtils.kt
Normal file
29
app/src/main/java/com/navinfo/omqs/tools/CoroutineUtils.kt
Normal file
@@ -0,0 +1,29 @@
|
||||
package com.navinfo.omqs.tools
|
||||
import android.app.ProgressDialog
|
||||
import android.content.Context
|
||||
import com.google.android.material.R
|
||||
import com.google.android.material.dialog.MaterialAlertDialogBuilder
|
||||
import kotlinx.coroutines.*
|
||||
import kotlin.coroutines.CoroutineContext
|
||||
|
||||
object CoroutineUtils {
|
||||
fun <T> launchWithLoading(
|
||||
context: Context,
|
||||
coroutineContext: CoroutineContext = Dispatchers.Main,
|
||||
loadingMessage: String? = null,
|
||||
task: suspend CoroutineScope.() -> T
|
||||
): Job {
|
||||
val progressDialog = MaterialAlertDialogBuilder(
|
||||
context, R.style.MaterialAlertDialog_Material3).setMessage(loadingMessage).setCancelable(false).show()
|
||||
|
||||
return CoroutineScope(coroutineContext).launch {
|
||||
try {
|
||||
withContext(Dispatchers.IO) {
|
||||
task.invoke(this)
|
||||
}
|
||||
} finally {
|
||||
progressDialog.dismiss()
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user