public static @Nullable Transition findTransition( @NonNull TransitionSet set, @NonNull Class<? extends Transition> clazz) { for (int i = 0; i < set.getTransitionCount(); i++) { Transition transition = set.getTransitionAt(i); if (transition.getClass() == clazz) { return transition; } if (transition instanceof TransitionSet) { Transition child = findTransition((TransitionSet) transition, clazz); if (child != null) return child; } } return null; }
public static @Nullable Transition findTransition( @NonNull TransitionSet set, @NonNull Class<? extends Transition> clazz, @IdRes int targetId) { for (int i = 0; i < set.getTransitionCount(); i++) { Transition transition = set.getTransitionAt(i); if (transition.getClass() == clazz) { if (transition.getTargetIds().contains(targetId)) { return transition; } } if (transition instanceof TransitionSet) { Transition child = findTransition((TransitionSet) transition, clazz, targetId); if (child != null) return child; } } return null; }
public static void replaceTargets(@NonNull Transition transition, @NonNull List<View> oldTargets, @Nullable List<View> newTargets) { if (transition instanceof TransitionSet) { TransitionSet set = (TransitionSet) transition; int numTransitions = set.getTransitionCount(); for (int i = 0; i < numTransitions; i++) { Transition child = set.getTransitionAt(i); replaceTargets(child, oldTargets, newTargets); } } else if (!TransitionUtils.hasSimpleTarget(transition)) { List<View> targets = transition.getTargets(); if (targets != null && targets.size() == oldTargets.size() && targets.containsAll(oldTargets)) { final int targetCount = newTargets == null ? 0 : newTargets.size(); for (int i = 0; i < targetCount; i++) { transition.addTarget(newTargets.get(i)); } for (int i = oldTargets.size() - 1; i >= 0; i--) { transition.removeTarget(oldTargets.get(i)); } } } }
public static void addTargets(@Nullable Transition transition, @NonNull List<View> views) { if (transition == null) { return; } if (transition instanceof TransitionSet) { TransitionSet set = (TransitionSet) transition; int numTransitions = set.getTransitionCount(); for (int i = 0; i < numTransitions; i++) { Transition child = set.getTransitionAt(i); addTargets(child, views); } } else if (!hasSimpleTarget(transition)) { List<View> targets = transition.getTargets(); if (isNullOrEmpty(targets)) { int numViews = views.size(); for (int i = 0; i < numViews; i++) { transition.addTarget(views.get(i)); } } } }
public static @Nullable Transition findTransition( @NonNull TransitionSet set, @NonNull Class<? extends Transition> clazz) { for (int i = 0; i < set.getTransitionCount(); i++) { Transition transition = set.getTransitionAt(i); if (transition.getClass() == clazz) { return transition; } if (transition instanceof TransitionSet) { Transition child = findTransition((TransitionSet) transition, clazz); if (child != null) return child; } } return null; }
@Nullable @RequiresApi(21) private Transition getTransition(int resId) { if (resId != 0) { final TransitionInflater inflater = TransitionInflater.from(mApplicationContext); final Transition transition = inflater.inflateTransition(resId); if (transition != null) { final boolean isEmpty = transition instanceof TransitionSet && ((TransitionSet) transition).getTransitionCount() == 0; if (!isEmpty) { return transition; } } } return null; } }
public static @Nullable Transition findTransition( @NonNull TransitionSet set, @NonNull Class<? extends Transition> clazz, @IdRes int targetId) { for (int i = 0; i < set.getTransitionCount(); i++) { Transition transition = set.getTransitionAt(i); if (transition.getClass() == clazz) { if (transition.getTargetIds().contains(targetId)) { return transition; } } if (transition instanceof TransitionSet) { Transition child = findTransition((TransitionSet) transition, clazz, targetId); if (child != null) return child; } } return null; }