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