Helper function to consume parts of [TransferableContent] in Android by splitting it to [ClipData.
ReceiveContentBasicSample
@OptIn(ExperimentalFoundationApi::class)
@Composable
fun ReceiveContentBasicSample() {
val state = rememberTextFieldState()
var images by remember { mutableStateOf<List<ImageBitmap>>(emptyList()) }
Column {
Row { images.forEach { Image(bitmap = it, contentDescription = null) } }
BasicTextField(
state = state,
modifier =
Modifier.contentReceiver { transferableContent ->
if (!transferableContent.hasMediaType(MediaType.Image)) {
return@contentReceiver transferableContent
}
val newImages = mutableListOf<ImageBitmap>()
transferableContent
.consume { item ->
// only consume this item if we can read an imageBitmap
item.readImageBitmap()?.let {
newImages += it
true
} ?: false
}
.also { images = newImages }
},
)
}
}