refactor: use global scope to avoid lifecycleScope cancelling before we open the picker intent

This commit is contained in:
0x330a 2023-07-28 15:09:38 +10:00
parent 7303d9a7d2
commit 31d774aabb
No known key found for this signature in database
GPG Key ID: 267811D6E6A2698C
1 changed files with 5 additions and 3 deletions

View File

@ -13,8 +13,9 @@ import android.provider.MediaStore
import android.webkit.MimeTypeMap import android.webkit.MimeTypeMap
import android.widget.Toast import android.widget.Toast
import androidx.fragment.app.DialogFragment import androidx.fragment.app.DialogFragment
import androidx.lifecycle.lifecycleScope import kotlinx.coroutines.DelicateCoroutinesApi
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.GlobalScope
import kotlinx.coroutines.launch import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
import network.loki.messenger.BuildConfig import network.loki.messenger.BuildConfig
@ -42,11 +43,12 @@ class ShareLogsDialog : DialogFragment() {
cancelButton { dismiss() } cancelButton { dismiss() }
} }
@OptIn(DelicateCoroutinesApi::class)
private fun shareLogs() { private fun shareLogs() {
val persistentLogger = ApplicationContext.getInstance(context).persistentLogger val persistentLogger = ApplicationContext.getInstance(context).persistentLogger
lifecycleScope.launch(Dispatchers.Main) { val context = requireContext().applicationContext
GlobalScope.launch(Dispatchers.Main) {
try { try {
val context = requireContext()
val outputUri: Uri = withContext(Dispatchers.IO) { ExternalStorageUtil.getDownloadUri() } val outputUri: Uri = withContext(Dispatchers.IO) { ExternalStorageUtil.getDownloadUri() }
val mediaUri = withContext(Dispatchers.IO) { getExternalFile() } val mediaUri = withContext(Dispatchers.IO) { getExternalFile() }
if (mediaUri == null) { if (mediaUri == null) {