Status Update
Comments
ku...@google.com <ku...@google.com>
ku...@google.com <ku...@google.com> #2
Does the program work without the compiler switch. That is, is `"-P", "plugin:androidx.compose.compiler.plugins.kotlin:experimentalStrongSkipping=true",` required to reproduce or is just changing the runtime enough?
mm...@gmail.com <mm...@gmail.com> #3
Sorry for that, I will try to extract an example when I'm free.
ku...@google.com <ku...@google.com> #4
I have find a sample code to reproduce that
setContent {
val dialogState = remember { DialogState() }
dialogState.Intercept()
LaunchedEffect(Unit) {
delay(1000)
dialogState.bgWork {
delay(5000)
}
dialogState.showSelectActions {
onSelect("a") {
}
onSelect("b") {
}
}
}
}
You can find implementation of DialogState
here
an...@google.com <an...@google.com> #5
Let me sort it out
The first crash
Reproduce: navigate to a gallery and navigate back
The reason is we have some code assume the forget order of RememberObserver(DisposableEffect), and 52835066c9044647a65dfb566f03131aab46e793
changed the order. Seems this is a intended behaviour.
I will fix it from my side. My bad
The second crash
Reproduce: #4 comment
StackTrace:
We got a wrong object from SlotTable during recompose
Description
'com.android.support:appcompat-v7:28.0.0'
'com.android.support:design:28.0.0'
Version used: 28.0.0
Theme used: Theme.AppCompat.Light.DarkActionBar
Devices/Android versions reproduced on: Nexus 6 running API 27
If we set a Propagation (Tested only for SidePropagation) on a support transition which has a start delay, then the propagation isn't respected when animating the views out (but is when animating the views in).This is in contrast to the native implementation of this feature, where it works correctly when animating in, or out with a start delay.
- Relevant code to trigger the issue.
//support transitions
android.support.transition.SidePropagation propagation = new android.support.transition.SidePropagation();
propagation.setSide(Gravity.END);
android.support.transition.Transition propagatedTransition = new android.support.transition.AutoTransition();
//Using a start delay causes the support version to not propagate the transition when animating out
propagatedTransition.setStartDelay(150);
propagatedTransition.setPropagation(propagation);
android.support.transition.TransitionManager.beginDelayedTransition(rootViewGroup, propagatedTransition);
toggleChildren(supportLayout);
- A screenrecord or screenshots showing the issue (if UI related).
Attached is a screen record of it. I've also attached a sample project. Simply tap the green (native - working) box to trigger the transition using the native Transition API, and the red (support - broken) box to trigger the transition using the support Transition API. You may want to make the transition longer and change the propagation speed to make it more obvious (e.g. 0.1f propagation speed)