am 19d13817: Merge "Properly filter out excluded views in createAnimators() call."

* commit '19d138175281c56c16df0d395db17593356547ac':
  Properly filter out excluded views in createAnimators() call.
This commit is contained in:
George Mount
2014-04-24 14:15:53 +00:00
committed by Android Git Automerger

View File

@@ -256,11 +256,45 @@ public class TransitionSet extends Transition {
@Override
protected void createAnimators(ViewGroup sceneRoot, TransitionValuesMaps startValues,
TransitionValuesMaps endValues) {
startValues = removeExcludes(startValues);
endValues = removeExcludes(endValues);
for (Transition childTransition : mTransitions) {
childTransition.createAnimators(sceneRoot, startValues, endValues);
}
}
private TransitionValuesMaps removeExcludes(TransitionValuesMaps values) {
if (mTargetIds.isEmpty() && mTargetIdExcludes == null && mTargetTypeExcludes == null
&& mTargets.isEmpty()) {
return values;
}
TransitionValuesMaps included = new TransitionValuesMaps();
int numValues = values.viewValues.size();
for (int i = 0; i < numValues; i++) {
View view = values.viewValues.keyAt(i);
if (isValidTarget(view, view.getId())) {
included.viewValues.put(view, values.viewValues.valueAt(i));
}
}
numValues = values.idValues.size();
for (int i = 0; i < numValues; i++) {
int id = values.idValues.keyAt(i);
TransitionValues transitionValues = values.idValues.valueAt(i);
if (isValidTarget(transitionValues.view, id)) {
included.idValues.put(id, transitionValues);
}
}
numValues = values.itemIdValues.size();
for (int i = 0; i < numValues; i++) {
long id = values.itemIdValues.keyAt(i);
TransitionValues transitionValues = values.itemIdValues.valueAt(i);
if (isValidTarget(transitionValues.view, id)) {
included.itemIdValues.put(id, transitionValues);
}
}
return included;
}
/**
* @hide
*/