Loading core/java/android/transition/Transition.java +19 −11 Original line number Original line Diff line number Diff line Loading @@ -528,14 +528,16 @@ public abstract class Transition implements Cloneable { ArrayMap<View, TransitionValues> unmatchedEnd) { ArrayMap<View, TransitionValues> unmatchedEnd) { for (int i = unmatchedStart.size() - 1; i >= 0; i--) { for (int i = unmatchedStart.size() - 1; i >= 0; i--) { View view = unmatchedStart.keyAt(i); View view = unmatchedStart.keyAt(i); if (view != null && isValidTarget(view)) { TransitionValues end = unmatchedEnd.remove(view); TransitionValues end = unmatchedEnd.remove(view); if (end != null) { if (end != null && end.view != null && isValidTarget(end.view)) { TransitionValues start = unmatchedStart.removeAt(i); TransitionValues start = unmatchedStart.removeAt(i); mStartValuesList.add(start); mStartValuesList.add(start); mEndValuesList.add(end); mEndValuesList.add(end); } } } } } } } /** /** * Match start/end values by Adapter item ID. Adds matched values to mStartValuesList * Match start/end values by Adapter item ID. Adds matched values to mStartValuesList Loading @@ -548,9 +550,9 @@ public abstract class Transition implements Cloneable { int numStartIds = startItemIds.size(); int numStartIds = startItemIds.size(); for (int i = 0; i < numStartIds; i++) { for (int i = 0; i < numStartIds; i++) { View startView = startItemIds.valueAt(i); View startView = startItemIds.valueAt(i); if (startView != null) { if (startView != null && isValidTarget(startView)) { View endView = endItemIds.get(startItemIds.keyAt(i)); View endView = endItemIds.get(startItemIds.keyAt(i)); if (endView != null) { if (endView != null && isValidTarget(endView)) { TransitionValues startValues = unmatchedStart.get(startView); TransitionValues startValues = unmatchedStart.get(startView); TransitionValues endValues = unmatchedEnd.get(endView); TransitionValues endValues = unmatchedEnd.get(endView); if (startValues != null && endValues != null) { if (startValues != null && endValues != null) { Loading Loading @@ -626,16 +628,22 @@ public abstract class Transition implements Cloneable { ArrayMap<View, TransitionValues> unmatchedEnd) { ArrayMap<View, TransitionValues> unmatchedEnd) { // Views that only exist in the start Scene // Views that only exist in the start Scene for (int i = 0; i < unmatchedStart.size(); i++) { for (int i = 0; i < unmatchedStart.size(); i++) { mStartValuesList.add(unmatchedStart.valueAt(i)); final TransitionValues start = unmatchedStart.valueAt(i); if (isValidTarget(start.view)) { mStartValuesList.add(start); mEndValuesList.add(null); mEndValuesList.add(null); } } } // Views that only exist in the end Scene // Views that only exist in the end Scene for (int i = 0; i < unmatchedEnd.size(); i++) { for (int i = 0; i < unmatchedEnd.size(); i++) { mEndValuesList.add(unmatchedEnd.valueAt(i)); final TransitionValues end = unmatchedEnd.valueAt(i); if (isValidTarget(end.view)) { mEndValuesList.add(end); mStartValuesList.add(null); mStartValuesList.add(null); } } } } } private void matchStartAndEnd(TransitionValuesMaps startValues, private void matchStartAndEnd(TransitionValuesMaps startValues, TransitionValuesMaps endValues) { TransitionValuesMaps endValues) { Loading Loading
core/java/android/transition/Transition.java +19 −11 Original line number Original line Diff line number Diff line Loading @@ -528,14 +528,16 @@ public abstract class Transition implements Cloneable { ArrayMap<View, TransitionValues> unmatchedEnd) { ArrayMap<View, TransitionValues> unmatchedEnd) { for (int i = unmatchedStart.size() - 1; i >= 0; i--) { for (int i = unmatchedStart.size() - 1; i >= 0; i--) { View view = unmatchedStart.keyAt(i); View view = unmatchedStart.keyAt(i); if (view != null && isValidTarget(view)) { TransitionValues end = unmatchedEnd.remove(view); TransitionValues end = unmatchedEnd.remove(view); if (end != null) { if (end != null && end.view != null && isValidTarget(end.view)) { TransitionValues start = unmatchedStart.removeAt(i); TransitionValues start = unmatchedStart.removeAt(i); mStartValuesList.add(start); mStartValuesList.add(start); mEndValuesList.add(end); mEndValuesList.add(end); } } } } } } } /** /** * Match start/end values by Adapter item ID. Adds matched values to mStartValuesList * Match start/end values by Adapter item ID. Adds matched values to mStartValuesList Loading @@ -548,9 +550,9 @@ public abstract class Transition implements Cloneable { int numStartIds = startItemIds.size(); int numStartIds = startItemIds.size(); for (int i = 0; i < numStartIds; i++) { for (int i = 0; i < numStartIds; i++) { View startView = startItemIds.valueAt(i); View startView = startItemIds.valueAt(i); if (startView != null) { if (startView != null && isValidTarget(startView)) { View endView = endItemIds.get(startItemIds.keyAt(i)); View endView = endItemIds.get(startItemIds.keyAt(i)); if (endView != null) { if (endView != null && isValidTarget(endView)) { TransitionValues startValues = unmatchedStart.get(startView); TransitionValues startValues = unmatchedStart.get(startView); TransitionValues endValues = unmatchedEnd.get(endView); TransitionValues endValues = unmatchedEnd.get(endView); if (startValues != null && endValues != null) { if (startValues != null && endValues != null) { Loading Loading @@ -626,16 +628,22 @@ public abstract class Transition implements Cloneable { ArrayMap<View, TransitionValues> unmatchedEnd) { ArrayMap<View, TransitionValues> unmatchedEnd) { // Views that only exist in the start Scene // Views that only exist in the start Scene for (int i = 0; i < unmatchedStart.size(); i++) { for (int i = 0; i < unmatchedStart.size(); i++) { mStartValuesList.add(unmatchedStart.valueAt(i)); final TransitionValues start = unmatchedStart.valueAt(i); if (isValidTarget(start.view)) { mStartValuesList.add(start); mEndValuesList.add(null); mEndValuesList.add(null); } } } // Views that only exist in the end Scene // Views that only exist in the end Scene for (int i = 0; i < unmatchedEnd.size(); i++) { for (int i = 0; i < unmatchedEnd.size(); i++) { mEndValuesList.add(unmatchedEnd.valueAt(i)); final TransitionValues end = unmatchedEnd.valueAt(i); if (isValidTarget(end.view)) { mEndValuesList.add(end); mStartValuesList.add(null); mStartValuesList.add(null); } } } } } private void matchStartAndEnd(TransitionValuesMaps startValues, private void matchStartAndEnd(TransitionValuesMaps startValues, TransitionValuesMaps endValues) { TransitionValuesMaps endValues) { Loading