cashapp / paparazzi

Render your Android screens without a physical device or emulator
https://cashapp.github.io/paparazzi/
Apache License 2.0
2.22k stars 210 forks source link

Remove obsoleted tests and platformDir from Paparazzi config #1457

Closed jrodbx closed 1 month ago

jrodbx commented 1 month ago

Historically, Environment.platformDir referenced build.prop and the framework resources bundled under the corresponding $ANDROID_HOME/platforms/$VERSION/ directory.

Now that we've migrated to Google's layoutlib published artifacts, build.prop is provided by layoutlib-runtime and the framework resources by layoutlib-resources, removing the need for Environment.platformDir.

Consequently, four plugin tests are obsoleted and removed:

This last bullet point is important. In the past, if the IDE release of LayoutLib did not yet support a given Android SDK level, Paparazzi provided a limited escape hatch to allow the developer to downgrade the platform SDK used by Paparazzi like so:

Paparazzi(
  environment = detectEnvironment().run {
    copy(compileSdkVersion = 33, platformDir = platformDir.replace("34", "33"))
  },
)

Here's a recent example of this: https://github.com/cashapp/paparazzi/issues/1288#issuecomment-1939659871

With the move to Google's Layoutlib, this facility is no longer available. Still, it's likely (hopeful?) that Google will publish LayoutLib versions often enough (i.e., faster than the IDE release cycle) to allow quicker adoption of newer SDK levels in Paparazzi.