diff --git a/api/current.txt b/api/current.txt index 58bde97afde4c..3644e58621bf2 100644 --- a/api/current.txt +++ b/api/current.txt @@ -4374,6 +4374,7 @@ package android.app { method public abstract android.app.FragmentTransaction add(android.app.Fragment, java.lang.String); method public abstract android.app.FragmentTransaction add(int, android.app.Fragment); method public abstract android.app.FragmentTransaction add(int, android.app.Fragment, java.lang.String); + method public abstract android.app.FragmentTransaction addSharedElement(android.view.View, java.lang.String); method public abstract android.app.FragmentTransaction addToBackStack(java.lang.String); method public abstract android.app.FragmentTransaction attach(android.app.Fragment); method public abstract int commit(); @@ -4393,8 +4394,6 @@ package android.app { method public abstract android.app.FragmentTransaction setCustomAnimations(int, int); method public abstract android.app.FragmentTransaction setCustomAnimations(int, int, int, int); method public abstract android.app.FragmentTransaction setCustomTransition(int, int); - method public abstract android.app.FragmentTransaction setSharedElement(android.view.View, java.lang.String); - method public abstract android.app.FragmentTransaction setSharedElements(android.util.Pair...); method public abstract android.app.FragmentTransaction setTransition(int); method public abstract android.app.FragmentTransaction setTransitionStyle(int); method public abstract android.app.FragmentTransaction show(android.app.Fragment); diff --git a/core/java/android/app/BackStackRecord.java b/core/java/android/app/BackStackRecord.java index 4433a3a9c0c31..67863a552c2fb 100644 --- a/core/java/android/app/BackStackRecord.java +++ b/core/java/android/app/BackStackRecord.java @@ -579,6 +579,23 @@ final class BackStackRecord extends FragmentTransaction implements return this; } + @Override + public FragmentTransaction addSharedElement(View sharedElement, String name) { + String transitionName = sharedElement.getTransitionName(); + if (transitionName == null) { + throw new IllegalArgumentException("Unique transitionNames are required for all" + + " sharedElements"); + } + if (mSharedElementSourceNames == null) { + mSharedElementSourceNames = new ArrayList(); + mSharedElementTargetNames = new ArrayList(); + } + mSharedElementSourceNames.add(transitionName); + mSharedElementTargetNames.add(name); + return this; + } + + /** TODO: remove this */ @Override public FragmentTransaction setSharedElement(View sharedElement, String name) { String transitionName = sharedElement.getTransitionName(); @@ -594,6 +611,7 @@ final class BackStackRecord extends FragmentTransaction implements return this; } + /** TODO: remove this */ @Override public FragmentTransaction setSharedElements(Pair... sharedElements) { if (sharedElements == null || sharedElements.length == 0) { diff --git a/core/java/android/app/FragmentTransaction.java b/core/java/android/app/FragmentTransaction.java index 0adc835f1eee7..1077bac13baaa 100644 --- a/core/java/android/app/FragmentTransaction.java +++ b/core/java/android/app/FragmentTransaction.java @@ -190,14 +190,17 @@ public abstract class FragmentTransaction { * @param name The transitionName for a View in an appearing Fragment to match to the shared * element. */ + public abstract FragmentTransaction addSharedElement(View sharedElement, String name); + + /** + * TODO: remove from API + * @hide + */ public abstract FragmentTransaction setSharedElement(View sharedElement, String name); /** - * Used with {@link #setCustomTransition(int, int)} to map multiple Views from removed or hidden - * Fragments to a Views from a shown or added Fragments. Views in - * sharedElements must have unique transitionNames in the View hierarchy. - * @param sharedElements Pairs of Views in disappearing Fragments to transitionNames in - * appearing Fragments. + * TODO: remove from API + * @hide */ public abstract FragmentTransaction setSharedElements(Pair... sharedElements);