From f420cb8c3d2eb57b28c4c4be4fd1b22ae8275cd6 Mon Sep 17 00:00:00 2001 From: Konstantin Date: Thu, 18 Sep 2025 11:08:57 +0200 Subject: [PATCH] Add `setResourceReaderAndroidContext` to configure Android context for resource reading (#5434) Fixes https://youtrack.jetbrains.com/issue/CMP-6676 ## Release Notes ### Features - Resources - Add `setResourceReaderAndroidContext` to configure Android context in cases when a provider initialization is not available. --- .../compose/resources/AndroidContextProvider.kt | 13 +++++++++++++ 1 file changed, 13 insertions(+) diff --git a/components/resources/library/src/androidMain/kotlin/org/jetbrains/compose/resources/AndroidContextProvider.kt b/components/resources/library/src/androidMain/kotlin/org/jetbrains/compose/resources/AndroidContextProvider.kt index 4ca7c99b4d..a2e66c20be 100644 --- a/components/resources/library/src/androidMain/kotlin/org/jetbrains/compose/resources/AndroidContextProvider.kt +++ b/components/resources/library/src/androidMain/kotlin/org/jetbrains/compose/resources/AndroidContextProvider.kt @@ -38,6 +38,19 @@ fun PreviewContextConfigurationEffect() { } } +/** + * Sets the android context to be used for resource read functions in cases + * when `org.jetbrains.compose.components.resources.resources.AndroidContextProvider` cannot be initialized. + * + * Be careful when using this function! The context will be retained for the whole application lifetime. + * + * See https://youtrack.jetbrains.com/issue/CMP-6676 for more details. + */ +@ExperimentalResourceApi +fun setResourceReaderAndroidContext(context: Context) { + AndroidContextProvider.ANDROID_CONTEXT = context +} + //https://andretietz.com/2017/09/06/autoinitialise-android-library/ internal class AndroidContextProvider : ContentProvider() { companion object {