Fix in transition canceling logic

The logic that canceled underlying animations caused a problem
when there were more than one animation in the list (due to removing
items from a list that was currently being processed elsewhere).

Change-Id: Ie207f340b5d7de4ffcf56a26c05ec394abb80224
diff --git a/core/java/android/view/transition/Transition.java b/core/java/android/view/transition/Transition.java
index 4591942..205c825 100644
--- a/core/java/android/view/transition/Transition.java
+++ b/core/java/android/view/transition/Transition.java
@@ -798,7 +798,7 @@
         // TODO: how does this work with instances?
         // TODO: this doesn't actually do *anything* yet
         int numAnimators = mCurrentAnimators.size();
-        for (int i = 0; i < numAnimators; ++i) {
+        for (int i = numAnimators - 1; i >= 0; i--) {
             Animator animator = mCurrentAnimators.get(i);
             animator.cancel();
         }
diff --git a/tests/TransitionTests/res/layout/interruption_inner_1.xml b/tests/TransitionTests/res/layout/interruption_inner_1.xml
index 990a7fd..f82dfb0 100644
--- a/tests/TransitionTests/res/layout/interruption_inner_1.xml
+++ b/tests/TransitionTests/res/layout/interruption_inner_1.xml
@@ -9,5 +9,12 @@
             android:layout_alignParentTop="true"
             android:layout_alignParentLeft="true"
             android:text="@string/state1"/>
+    <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/button1"
+            android:layout_alignLeft="@+id/button"
+            android:layout_below="@+id/button"
+            android:text="@string/state1"/>
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/tests/TransitionTests/res/layout/interruption_inner_2.xml b/tests/TransitionTests/res/layout/interruption_inner_2.xml
index d18b557..e6821d6 100644
--- a/tests/TransitionTests/res/layout/interruption_inner_2.xml
+++ b/tests/TransitionTests/res/layout/interruption_inner_2.xml
@@ -9,5 +9,12 @@
             android:id="@+id/button"
             android:layout_alignParentRight="true"
             android:text="@string/state2"/>
+    <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/button1"
+            android:layout_alignLeft="@+id/button"
+            android:layout_below="@+id/button"
+            android:text="@string/state2"/>
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/tests/TransitionTests/res/layout/interruption_inner_3.xml b/tests/TransitionTests/res/layout/interruption_inner_3.xml
index 70bd02c..4e40150 100644
--- a/tests/TransitionTests/res/layout/interruption_inner_3.xml
+++ b/tests/TransitionTests/res/layout/interruption_inner_3.xml
@@ -9,5 +9,12 @@
             android:layout_alignParentBottom="true"
             android:layout_alignParentLeft="true"
             android:text="@string/state3"/>
+    <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/button1"
+            android:layout_alignLeft="@+id/button"
+            android:layout_above="@+id/button"
+            android:text="@string/state3"/>
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/tests/TransitionTests/res/layout/interruption_inner_4.xml b/tests/TransitionTests/res/layout/interruption_inner_4.xml
index 85265fc..8c3661e 100644
--- a/tests/TransitionTests/res/layout/interruption_inner_4.xml
+++ b/tests/TransitionTests/res/layout/interruption_inner_4.xml
@@ -9,5 +9,12 @@
             android:layout_alignParentBottom="true"
             android:layout_alignParentRight="true"
             android:text="@string/state4"/>
+    <Button
+            android:layout_width="wrap_content"
+            android:layout_height="wrap_content"
+            android:id="@+id/button1"
+            android:layout_alignLeft="@+id/button"
+            android:layout_above="@+id/button"
+            android:text="@string/state4"/>
 
 </RelativeLayout>
\ No newline at end of file
diff --git a/tests/TransitionTests/src/com/android/transitiontests/InterruptionTest.java b/tests/TransitionTests/src/com/android/transitiontests/InterruptionTest.java
index 47cf002..b380225 100644
--- a/tests/TransitionTests/src/com/android/transitiontests/InterruptionTest.java
+++ b/tests/TransitionTests/src/com/android/transitiontests/InterruptionTest.java
@@ -35,14 +35,13 @@
     private Scene mScene2;
     private Scene mScene3;
     private Scene mScene4;
-    Transition mAutoTransition = new AutoTransition();
+    TransitionGroup mSequencedMove = new TransitionGroup(TransitionGroup.SEQUENTIALLY);
 
     @Override
     public void onCreate(Bundle savedInstanceState) {
         super.onCreate(savedInstanceState);
         setContentView(R.layout.interruption);
 
-        View container = (View) findViewById(R.id.container);
         ViewGroup sceneRoot = (ViewGroup) findViewById(R.id.sceneRoot);
 
         mScene1 = new Scene(sceneRoot, R.layout.interruption_inner_1, this);
@@ -57,18 +56,24 @@
 
         sceneRoot.setCurrentScene(mScene1);
 
-        mAutoTransition.setDuration(1500);
+        Move move1 = new Move();
+        move1.setTargetIds(R.id.button);
+        Move move2 = new Move();
+        move2.setTargetIds(R.id.button1);
+
+        mSequencedMove.addTransitions(move1, move2);
+        mSequencedMove.setDuration(1000);
     }
 
     public void onRadioButtonClicked(View clickedButton) {
         if (clickedButton == mScene1RB) {
-            TransitionManager.go(mScene1, mAutoTransition);
+            TransitionManager.go(mScene1, mSequencedMove);
         } else if (clickedButton == mScene2RB) {
-            TransitionManager.go(mScene2, mAutoTransition);
+            TransitionManager.go(mScene2, mSequencedMove);
         } else if (clickedButton == mScene3RB) {
-            TransitionManager.go(mScene3, mAutoTransition);
+            TransitionManager.go(mScene3, mSequencedMove);
         } else {
-            TransitionManager.go(mScene4, mAutoTransition);
+            TransitionManager.go(mScene4, mSequencedMove);
         }
     }
 }