Skip to content

Commit 530bd55

Browse files
DSteve595Eric Kuck
authored andcommitted
Fix TransitionChangeHandlers getting stuck when two are run simultaneously (#547)
* Fix TransitionChangeHandlers getting stuck when two are run simultaneously * Don't unnecessarily re-execute changes
1 parent e40cdf2 commit 530bd55

File tree

1 file changed

+11
-1
lines changed

1 file changed

+11
-1
lines changed

conductor/src/main/java/com/bluelinelabs/conductor/changehandler/TransitionChangeHandler.java

Lines changed: 11 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -67,10 +67,19 @@ public void performChange(@NonNull final ViewGroup container, @Nullable final Vi
6767
return;
6868
}
6969

70+
final Runnable onTransitionNotStarted = new Runnable() {
71+
@Override
72+
public void run() {
73+
changeListener.onChangeCompleted();
74+
}
75+
};
76+
7077
final Transition transition = getTransition(container, from, to, isPush);
7178
transition.addListener(new TransitionListener() {
7279
@Override
73-
public void onTransitionStart(Transition transition) { }
80+
public void onTransitionStart(Transition transition) {
81+
container.removeCallbacks(onTransitionNotStarted);
82+
}
7483

7584
@Override
7685
public void onTransitionEnd(Transition transition) {
@@ -97,6 +106,7 @@ public void onPrepared() {
97106
if (!canceled) {
98107
TransitionManager.beginDelayedTransition(container, transition);
99108
executePropertyChanges(container, from, to, transition, isPush);
109+
container.post(onTransitionNotStarted);
100110
}
101111
}
102112
});

0 commit comments

Comments
 (0)