You can not select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
135 lines
5.4 KiB
135 lines
5.4 KiB
package org.jetbrains.compose.resources.demo.shared |
|
|
|
import androidx.compose.foundation.layout.* |
|
import androidx.compose.foundation.rememberScrollState |
|
import androidx.compose.foundation.shape.RoundedCornerShape |
|
import androidx.compose.foundation.verticalScroll |
|
import androidx.compose.material3.* |
|
import androidx.compose.runtime.* |
|
import androidx.compose.ui.Modifier |
|
import androidx.compose.ui.unit.dp |
|
import components.resources.demo.shared.generated.resources.Res |
|
import components.resources.demo.shared.generated.resources.droid_icon |
|
import org.jetbrains.compose.resources.ExperimentalResourceApi |
|
import org.jetbrains.compose.resources.getDrawableResourceBytes |
|
import org.jetbrains.compose.resources.rememberResourceEnvironment |
|
|
|
@OptIn(ExperimentalResourceApi::class) |
|
@Composable |
|
fun FileRes(paddingValues: PaddingValues) { |
|
Column( |
|
modifier = Modifier.padding(paddingValues).verticalScroll(rememberScrollState()) |
|
) { |
|
Text( |
|
modifier = Modifier.padding(16.dp), |
|
text = "File: 'files/icon.xml'", |
|
style = MaterialTheme.typography.titleLarge |
|
) |
|
OutlinedCard( |
|
modifier = Modifier.padding(horizontal = 16.dp), |
|
shape = RoundedCornerShape(4.dp), |
|
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer) |
|
) { |
|
var bytes by remember { mutableStateOf(ByteArray(0)) } |
|
LaunchedEffect(Unit) { |
|
bytes = Res.readBytes("files/icon.xml") |
|
} |
|
Text( |
|
modifier = Modifier.padding(8.dp).height(200.dp).verticalScroll(rememberScrollState()), |
|
text = bytes.decodeToString(), |
|
color = MaterialTheme.colorScheme.onPrimaryContainer, |
|
softWrap = false |
|
) |
|
} |
|
Text( |
|
modifier = Modifier.padding(16.dp), |
|
text = """ |
|
var bytes by remember { |
|
mutableStateOf(ByteArray(0)) |
|
} |
|
LaunchedEffect(Unit) { |
|
bytes = Res.readFileBytes("files/icon.xml") |
|
} |
|
Text(bytes.decodeToString()) |
|
""".trimIndent() |
|
) |
|
HorizontalDivider(modifier = Modifier.fillMaxWidth().padding(bottom = 16.dp)) |
|
OutlinedCard( |
|
modifier = Modifier.padding(horizontal = 16.dp), |
|
shape = RoundedCornerShape(4.dp), |
|
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer) |
|
) { |
|
val composeEnv = rememberResourceEnvironment() |
|
var bytes by remember { mutableStateOf(ByteArray(0)) } |
|
LaunchedEffect(Unit) { |
|
bytes = getDrawableResourceBytes(composeEnv, Res.drawable.droid_icon) |
|
} |
|
Text( |
|
modifier = Modifier.padding(8.dp), |
|
text = "droid_icon byte size = " + bytes.size, |
|
color = MaterialTheme.colorScheme.onPrimaryContainer |
|
) |
|
} |
|
Text( |
|
modifier = Modifier.padding(16.dp), |
|
text = """ |
|
val composeEnv = rememberResourceEnvironment() |
|
var bytes by remember { mutableStateOf(ByteArray(0)) } |
|
LaunchedEffect(Unit) { |
|
bytes = getDrawableResourceBytes(composeEnv, Res.drawable.droid_icon) |
|
} |
|
Text("droid_icon byte size = " + bytes.size) |
|
""".trimIndent() |
|
) |
|
Text( |
|
modifier = Modifier.padding(16.dp), |
|
text = "File: 'files/platform-text.txt'", |
|
style = MaterialTheme.typography.titleLarge |
|
) |
|
OutlinedCard( |
|
modifier = Modifier.padding(horizontal = 16.dp), |
|
shape = RoundedCornerShape(4.dp), |
|
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer) |
|
) { |
|
var bytes by remember { mutableStateOf(ByteArray(0)) } |
|
LaunchedEffect(Unit) { |
|
bytes = Res.readBytes("files/platform-text.txt") |
|
} |
|
Text( |
|
modifier = Modifier.padding(8.dp), |
|
text = bytes.decodeToString(), |
|
color = MaterialTheme.colorScheme.onPrimaryContainer |
|
) |
|
} |
|
Text( |
|
modifier = Modifier.padding(16.dp), |
|
text = """ |
|
var bytes by remember { |
|
mutableStateOf(ByteArray(0)) |
|
} |
|
LaunchedEffect(Unit) { |
|
bytes = Res.readFileBytes("files/platform-text.txt") |
|
} |
|
Text(bytes.decodeToString()) |
|
""".trimIndent() |
|
) |
|
HorizontalDivider(modifier = Modifier.fillMaxWidth().padding(bottom = 16.dp)) |
|
OutlinedCard( |
|
modifier = Modifier.padding(horizontal = 16.dp), |
|
shape = RoundedCornerShape(4.dp), |
|
colors = CardDefaults.cardColors(containerColor = MaterialTheme.colorScheme.primaryContainer) |
|
) { |
|
Text( |
|
modifier = Modifier.padding(8.dp), |
|
text = "File URI: " + Res.getUri("files/platform-text.txt"), |
|
color = MaterialTheme.colorScheme.onPrimaryContainer |
|
) |
|
} |
|
Text( |
|
modifier = Modifier.padding(16.dp), |
|
text = """ |
|
Text("File URI: " + Res.getUri("files/platform-text.txt")) |
|
""".trimIndent() |
|
) |
|
} |
|
} |