Alexander Bliznyuk
10/16/2023, 9:24 AMdata class MyString(
private val stringResId: Int,
private val args: List<MyString>,
) {
@Composable
fun getText(): String {
val mappedArgs: Array<String> = args.map { it.getString() }.toTypedArray()
return stringResource(textResId, *mappedArgs)
}
}
As I understand, I can mark getText function as @ReadOnlyComposable
, but what about the whole class ? Can I mark it as Immutable
or Stable
, or none of these annotations can be applied to this class?
And one more example:
data class MyColor(
private val colorGetter: (@Composable () -> Color)
) {
@Composable
fun getColor(): Color {
return colorGetter()
}
}
Usage
val color = MyColor {
MaterialTheme.colorScheme.primary
}
Zach Klippenstein (he/him) [MOD]
10/16/2023, 4:32 PMAlexander Bliznyuk
10/16/2023, 7:05 PMgetColor()
can return different values in case if MaterialTheme is changed from light to dark, for instanceZach Klippenstein (he/him) [MOD]
10/16/2023, 7:28 PM