Description
Populate AndroidTypeResolverProvider.createResolvers() with every resolver added to :android in subsequent tickets, and add integration tests verifying ServiceLoader discovery and chain precedence. This ticket establishes the provider and test harness; each resolver ticket wires in its own resolver and extends the integration tests.
-
Scope and constraints
- Register all resolvers from subsequent tickets in
AndroidTypeResolverProvider.createResolvers() returning the full list.
- Resolvers requiring a strategy receive
strategyProvider as first constructor arg; others receive only random.
- Use Kotlin import aliases to resolve name collisions between Android SDK and Compose resolver packages (e.g.,
import dev.appoutlet.some.android.resolver.compose.ColorResolver as ComposeColorResolver).
- Add an integration test class that wires a complete
someSetup {} with some-android on the test classpath.
- Follows the same ServiceLoader discovery pattern documented in
docs/custom-resolvers.md.
-
References
Scope
In scope: populating the provider list, integration tests for end-to-end ServiceLoader discovery.
Out of scope: modifying resolver implementations, additional resolvers.
Acceptance criteria
Description
Populate
AndroidTypeResolverProvider.createResolvers()with every resolver added to:androidin subsequent tickets, and add integration tests verifying ServiceLoader discovery and chain precedence. This ticket establishes the provider and test harness; each resolver ticket wires in its own resolver and extends the integration tests.Scope and constraints
AndroidTypeResolverProvider.createResolvers()returning the full list.strategyProvideras first constructor arg; others receive onlyrandom.import dev.appoutlet.some.android.resolver.compose.ColorResolver as ComposeColorResolver).someSetup {}withsome-androidon the test classpath.docs/custom-resolvers.md.References
Scope
In scope: populating the provider list, integration tests for end-to-end ServiceLoader discovery.
Out of scope: modifying resolver implementations, additional resolvers.
Acceptance criteria
AndroidTypeResolverProvidercompiles and is annotated with@AutoService(TypeResolverProvider::class)someSetup {}+ResolverChainwired againstsome-androidon the test classpathsome<String>()resolves through the chain (proves the provider is discovered and does not break the chain when returning an empty or partial resolver list)android.jarwithandroidx.compose.ui:uion classpath and run as JVM unit tests