Add wrapper around androidTransitionMutator to support generic blueprint.TransitionInfo
Make the TransitionMutator interface use a generic T to pass a
typesafe object that implements blueprint.TransitionInfo as the
transition configuration. Add VariationTransitionMutator as a
verison of TransitionMutator that uses a string as the info object.
Bug: 372543712
Test: all soong tests pass
Change-Id: I6e5e17f0e272665bc2e9a46d0ac6f0011b9f5d59
diff --git a/android/mutator.go b/android/mutator.go
index 393fba1..1b0700a 100644
--- a/android/mutator.go
+++ b/android/mutator.go
@@ -70,7 +70,8 @@
TopDown(name string, m TopDownMutator) MutatorHandle
BottomUp(name string, m BottomUpMutator) MutatorHandle
BottomUpBlueprint(name string, m blueprint.BottomUpMutator) MutatorHandle
- Transition(name string, m TransitionMutator) TransitionMutatorHandle
+ Transition(name string, m VariationTransitionMutator) TransitionMutatorHandle
+ InfoBasedTransition(name string, m androidTransitionMutator) TransitionMutatorHandle
}
type RegisterMutatorFunc func(RegisterMutatorsContext)
@@ -337,7 +338,7 @@
return mutator
}
-func (x *registerMutatorsContext) Transition(name string, m TransitionMutator) TransitionMutatorHandle {
+func (x *registerMutatorsContext) Transition(name string, m VariationTransitionMutator) TransitionMutatorHandle {
atm := &androidTransitionMutatorAdapter{
finalPhase: x.finalPhase,
mutator: variationTransitionMutatorAdapter{m},
@@ -351,6 +352,20 @@
return mutator
}
+func (x *registerMutatorsContext) InfoBasedTransition(name string, m androidTransitionMutator) TransitionMutatorHandle {
+ atm := &androidTransitionMutatorAdapter{
+ finalPhase: x.finalPhase,
+ mutator: m,
+ name: name,
+ }
+ mutator := &mutator{
+ name: name,
+ transitionMutator: atm,
+ }
+ x.mutators = append(x.mutators, mutator)
+ return mutator
+}
+
func (x *registerMutatorsContext) mutatorName(name string) string {
return name
}