Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Migrate to AarSourceResourceRepository for libraryResourceDirs #892

Merged
merged 1 commit into from
May 26, 2023
Merged
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -25,15 +25,16 @@ import app.cash.paparazzi.deprecated.com.android.ide.common.resources.deprecated
import app.cash.paparazzi.deprecated.com.android.ide.common.resources.deprecated.ResourceRepository
import app.cash.paparazzi.deprecated.com.android.io.FolderWrapper
import app.cash.paparazzi.getFieldReflectively
import app.cash.paparazzi.internal.resources.ResourceFolderRepository
import app.cash.paparazzi.internal.resources.AarSourceResourceRepository
import app.cash.paparazzi.setStaticValue
import com.android.ide.common.rendering.api.ResourceNamespace
import com.android.layoutlib.bridge.Bridge
import com.android.layoutlib.bridge.android.RenderParamsFlags
import com.android.layoutlib.bridge.impl.DelegateManager
import java.io.Closeable
import java.io.File
import java.nio.file.Paths
import java.util.Locale
import kotlin.io.path.name

/** View rendering. */
internal class Renderer(
Expand Down Expand Up @@ -66,15 +67,16 @@ internal class Renderer(
}.apply { loadResources() }
)
} else {
val resourceFolderRepositories = environment.libraryResourceDirs.map {
ResourceFolderRepository(
resourceDir = File(it),
namespace = ResourceNamespace.RES_AUTO
val libraryResourceRepositories = environment.libraryResourceDirs.map { dir ->
val resourceDirPath = Paths.get(dir)
AarSourceResourceRepository.create(
resourceDirectoryOrFile = resourceDirPath,
libraryName = resourceDirPath.parent.fileName.name // segment before /res
)
}

// ./gradlew sample:testDebug --tests=app.cash.paparazzi.sample.LaunchViewTest -Papp.cash.paparazzi.new.resource.loading=true
println(resourceFolderRepositories.map { it.origin }.joinToString(separator = "\n"))
println(libraryResourceRepositories.map { it.origin }.joinToString(separator = "\n"))

TODO("New resource loading coming soon")
}
Expand Down