Merge pull request #2475 from davotoula/fix/short-note-post-screen-threading

fix:  the consumer read activity.intent instead of the intent parameter passed into the callback
This commit is contained in:
Vitor Pamplona
2026-04-21 11:18:56 -04:00
committed by GitHub
@@ -55,6 +55,7 @@ import androidx.compose.runtime.Composable
import androidx.compose.runtime.DisposableEffect import androidx.compose.runtime.DisposableEffect
import androidx.compose.runtime.LaunchedEffect import androidx.compose.runtime.LaunchedEffect
import androidx.compose.runtime.collectAsState import androidx.compose.runtime.collectAsState
import androidx.compose.runtime.rememberCoroutineScope
import androidx.compose.ui.Alignment.Companion.CenterVertically import androidx.compose.ui.Alignment.Companion.CenterVertically
import androidx.compose.ui.Modifier import androidx.compose.ui.Modifier
import androidx.compose.ui.platform.LocalContext import androidx.compose.ui.platform.LocalContext
@@ -124,6 +125,7 @@ import kotlinx.collections.immutable.persistentListOf
import kotlinx.collections.immutable.toImmutableList import kotlinx.collections.immutable.toImmutableList
import kotlinx.coroutines.Dispatchers import kotlinx.coroutines.Dispatchers
import kotlinx.coroutines.FlowPreview import kotlinx.coroutines.FlowPreview
import kotlinx.coroutines.launch
import kotlinx.coroutines.withContext import kotlinx.coroutines.withContext
@OptIn(ExperimentalMaterial3Api::class, FlowPreview::class) @OptIn(ExperimentalMaterial3Api::class, FlowPreview::class)
@@ -144,6 +146,7 @@ fun ShortNotePostScreen(
val context = LocalContext.current val context = LocalContext.current
val activity = context.getActivity() val activity = context.getActivity()
val scope = rememberCoroutineScope()
LaunchedEffect(Unit) { LaunchedEffect(Unit) {
postViewModel.initWritingAssistant(context) postViewModel.initWritingAssistant(context)
@@ -177,9 +180,12 @@ fun ShortNotePostScreen(
postViewModel.addToMessage(it) postViewModel.addToMessage(it)
} }
IntentCompat.getParcelableExtra(activity.intent, Intent.EXTRA_STREAM, Uri::class.java)?.let { // Use the `intent` parameter (the new intent), not activity.intent (the launch intent).
val mediaType = context.contentResolver.getType(it) IntentCompat.getParcelableExtra(intent, Intent.EXTRA_STREAM, Uri::class.java)?.let { uri ->
postViewModel.selectImage(persistentListOf(SelectedMedia(it, mediaType))) scope.launch(Dispatchers.IO) {
val mediaType = context.contentResolver.getType(uri)
postViewModel.selectImage(persistentListOf(SelectedMedia(uri, mediaType)))
}
} }
} }
} }