android: use a coroutine for loadfiles (#551)

contentResolver.query is attempting to perform a network query on the main thread. Move this to a coroutine to prevent blocking.

Fixes tailscale/corp#24293

Signed-off-by: kari-ts <kari@tailscale.com>
pull/556/head
kari-ts 1 year ago committed by GitHub
parent e89c259749
commit ba306bf883
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194

@ -14,14 +14,18 @@ import androidx.activity.compose.setContent
import androidx.compose.material3.MaterialTheme import androidx.compose.material3.MaterialTheme
import androidx.compose.material3.Surface import androidx.compose.material3.Surface
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.lifecycle.lifecycleScope
import com.tailscale.ipn.ui.model.Ipn import com.tailscale.ipn.ui.model.Ipn
import com.tailscale.ipn.ui.theme.AppTheme import com.tailscale.ipn.ui.theme.AppTheme
import com.tailscale.ipn.ui.util.set import com.tailscale.ipn.ui.util.set
import com.tailscale.ipn.ui.util.universalFit import com.tailscale.ipn.ui.util.universalFit
import com.tailscale.ipn.ui.view.TaildropView import com.tailscale.ipn.ui.view.TaildropView
import com.tailscale.ipn.util.TSLog import com.tailscale.ipn.util.TSLog
import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.flow.MutableStateFlow import kotlinx.coroutines.flow.MutableStateFlow
import kotlinx.coroutines.flow.StateFlow import kotlinx.coroutines.flow.StateFlow
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext
import kotlin.random.Random import kotlin.random.Random
// ShareActivity is the entry point for Taildrop share intents // ShareActivity is the entry point for Taildrop share intents
@ -47,7 +51,7 @@ class ShareActivity : ComponentActivity() {
super.onStart() super.onStart()
// Ensure our app instance is initialized // Ensure our app instance is initialized
App.get() App.get()
loadFiles() lifecycleScope.launch { withContext(Dispatchers.IO) { loadFiles() } }
} }
override fun onNewIntent(intent: Intent) { override fun onNewIntent(intent: Intent) {

Loading…
Cancel
Save