@ -13,13 +13,7 @@ internal actual fun getPlatformResourceReader(): ResourceReader = DefaultAndroid
@@ -13,13 +13,7 @@ internal actual fun getPlatformResourceReader(): ResourceReader = DefaultAndroid
@ExperimentalResourceApi
internal object DefaultAndroidResourceReader : ResourceReader {
private val assets : AssetManager by lazy {
val context = androidContext ?: error (
" Android context is not initialized. " +
" If it happens in the Preview mode then call PreviewContextConfigurationEffect() function. "
)
context . assets
}
private val assets : AssetManager ? get ( ) = androidContext ?. assets
private val instrumentedAssets : AssetManager ?
get ( ) = try {
@ -69,7 +63,7 @@ internal object DefaultAndroidResourceReader : ResourceReader {
@@ -69,7 +63,7 @@ internal object DefaultAndroidResourceReader : ResourceReader {
Uri . parse ( " file:///android_asset/ $path " )
} else {
val classLoader = getClassLoader ( )
val resource = classLoader . getResource ( path ) ?: throw MissingResourceException ( path )
val resource = classLoader . getResource ( path ) ?: throw MissingResourceException( path )
resource . toURI ( )
}
return uri . toString ( )
@ -83,11 +77,23 @@ internal object DefaultAndroidResourceReader : ResourceReader {
@@ -83,11 +77,23 @@ internal object DefaultAndroidResourceReader : ResourceReader {
instrumentedAssets . open ( path )
} catch ( e : FileNotFoundException ) {
val classLoader = getClassLoader ( )
classLoader . getResourceAsStream ( path ) ?: throw MissingResourceException ( path )
classLoader . getResourceAsStream ( path ) ?: throw MissingResourceException( path )
}
}
}
private fun throwMissingResourceException ( path : String ) : Nothing {
if ( androidContext == null ) {
throw MissingResourceException (
path = path ,
message = " Android context is not initialized. " +
" If it happens in the Preview mode then call PreviewContextConfigurationEffect() function. "
)
} else {
throw MissingResourceException ( path )
}
}
private fun getClassLoader ( ) : ClassLoader {
return this . javaClass . classLoader ?: error ( " Cannot find class loader " )
}