am cef72c8a: am 1bb44645: am 8c789490: Merge "API Review: change fragment transition methods." into lmp-dev

* commit 'cef72c8a21a9e8d0bd0f3af42114c72935701d29':
  API Review: change fragment transition methods.
diff --git a/api/current.txt b/api/current.txt
index 5f527fb..73db5a2 100644
--- a/api/current.txt
+++ b/api/current.txt
@@ -4375,6 +4375,7 @@
     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();
@@ -4394,8 +4395,6 @@
     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<android.view.View, java.lang.String>...);
     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 4433a3a..67863a5 100644
--- a/core/java/android/app/BackStackRecord.java
+++ b/core/java/android/app/BackStackRecord.java
@@ -580,6 +580,23 @@
     }
 
     @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<String>();
+            mSharedElementTargetNames = new ArrayList<String>();
+        }
+        mSharedElementSourceNames.add(transitionName);
+        mSharedElementTargetNames.add(name);
+        return this;
+    }
+
+    /** TODO: remove this */
+    @Override
     public FragmentTransaction setSharedElement(View sharedElement, String name) {
         String transitionName = sharedElement.getTransitionName();
         if (transitionName == null) {
@@ -594,6 +611,7 @@
         return this;
     }
 
+    /** TODO: remove this */
     @Override
     public FragmentTransaction setSharedElements(Pair<View, String>... sharedElements) {
         if (sharedElements == null || sharedElements.length == 0) {
diff --git a/core/java/android/app/FragmentTransaction.java b/core/java/android/app/FragmentTransaction.java
index 0adc835..1077bac 100644
--- a/core/java/android/app/FragmentTransaction.java
+++ b/core/java/android/app/FragmentTransaction.java
@@ -190,14 +190,17 @@
      * @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
-     * <var>sharedElements</var> 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<View, String>... sharedElements);