From 7f15164ecb4c93cbb3cc886a3028621c0d0fffcc Mon Sep 17 00:00:00 2001 From: George Mount Date: Mon, 18 Aug 2014 16:24:21 -0700 Subject: [PATCH] Add a way to get Transitions from a TransitionSet. Bug 17113732 Change-Id: I0a157a59448e66560ba2252709971131c5dea401 --- api/current.txt | 2 ++ .../android/transition/TransitionSet.java | 25 +++++++++++++++++++ .../internal/policy/impl/PhoneWindow.java | 4 +++ 3 files changed, 31 insertions(+) diff --git a/api/current.txt b/api/current.txt index 2ae572117cebe..93f30d6e9548f 100644 --- a/api/current.txt +++ b/api/current.txt @@ -32242,6 +32242,8 @@ package android.transition { method public void captureEndValues(android.transition.TransitionValues); method public void captureStartValues(android.transition.TransitionValues); method public int getOrdering(); + method public android.transition.Transition getTransitionAt(int); + method public int getTransitionCount(); method public android.transition.TransitionSet removeTransition(android.transition.Transition); method public android.transition.TransitionSet setOrdering(int); field public static final int ORDERING_SEQUENTIAL = 1; // 0x1 diff --git a/core/java/android/transition/TransitionSet.java b/core/java/android/transition/TransitionSet.java index 83c60af608807..68af2d1686e91 100644 --- a/core/java/android/transition/TransitionSet.java +++ b/core/java/android/transition/TransitionSet.java @@ -150,6 +150,31 @@ public class TransitionSet extends Transition { return this; } + /** + * Returns the number of child transitions in the TransitionSet. + * + * @return The number of child transitions in the TransitionSet. + * @see #addTransition(Transition) + * @see #getTransitionAt(int) + */ + public int getTransitionCount() { + return mTransitions.size(); + } + + /** + * Returns the child Transition at the specified position in the TransitionSet. + * + * @param index The position of the Transition to retrieve. + * @see #addTransition(Transition) + * @see #getTransitionCount() + */ + public Transition getTransitionAt(int index) { + if (index < 0 || index >= mTransitions.size()) { + return null; + } + return mTransitions.get(index); + } + /** * Setting a non-negative duration on a TransitionSet causes all of the child * transitions (current and future) to inherit this duration. diff --git a/policy/src/com/android/internal/policy/impl/PhoneWindow.java b/policy/src/com/android/internal/policy/impl/PhoneWindow.java index 964acbdc34335..73358c8166fdd 100644 --- a/policy/src/com/android/internal/policy/impl/PhoneWindow.java +++ b/policy/src/com/android/internal/policy/impl/PhoneWindow.java @@ -3559,6 +3559,10 @@ public class PhoneWindow extends Window implements MenuBuilder.Callback { if (transitionId != -1 && transitionId != R.transition.no_transition) { TransitionInflater inflater = TransitionInflater.from(getContext()); transition = inflater.inflateTransition(transitionId); + if (transition instanceof TransitionSet && + ((TransitionSet)transition).getTransitionCount() == 0) { + transition = null; + } } return transition; }