Status Update
Comments
ti...@google.com <ti...@google.com> #2
Please include a sample project that reproduces your issue.
ti...@gmail.com <ti...@gmail.com> #3
Sample project attached. Just add to plain project this dependencies allow to reproduce.
def emoji2_version = "1.1.0-beta01"
implementation "androidx.emoji2:emoji2:$emoji2_version"
def lifecycle_version = "2.5.0-alpha01"
implementation "androidx.lifecycle:lifecycle-process:$lifecycle_version"
ap...@google.com <ap...@google.com> #4
The reason may be related to 2.4.0
of lifecycle-process
as workaround.
ti...@google.com <ti...@google.com>
na...@google.com <na...@google.com> #5
Yes, this is due to this change, as well as the fact that EmojiCompatInitializer has a ProcessLifecycleInitializer as a dependency and also re-calls it, but in manual mode.
[Deleted User] <[Deleted User]> #6
ProcessLifecycleInitializer
is expected to already be initialized (via the manifest provider
for App Startup) by the time that code runs - App Startup shouldn't be calling create
if that component has already been initialized, hence you shouldn't get any exception. We'll take a look on where things are breaking down though.
pe...@gmail.com <pe...@gmail.com> #7
Thanks for the answer.
As I understand EmojiCompatInitializer has ProcessLifecycleInitializer as a appInitializer.initializeComponent(ProcessLifecycleInitializer.class)
Maybe it would be more correct to create a bug in emoji-2, but let it be here.
Description
Jetpack Compose version:
1.2.0-rc03
Jetpack Compose component used:
AnimatedContent
Android Studio Build: 2022.1.1. Canary 7
Kotlin version:
1.7.1
When using
AnimatedContent
to animate between two contents, if you interrupt during the animation and attempt to return to the previous state, the target gets the wrong animation.Given:
When starting from the green screen, starting animation to the red screen and interrupting that animation to return to green the green animation incorrectly does a
slideIn()
transition after the interrupt.Expected:
The Green screen should always be fading. When we go from green to red it should be fading out. When returning back to green, because it is the targetState it should get the entering animation, which is a
fadeIn()
and the Red screen should be fading out.Observed:
On interruption, the Green screen gets the exit transition, which in this case is the
slideOut()
and reverses it so it ends up doing aslideIn()
and the Red screen fades out.Since the targetState is always the final state of the AnimatedContent, it should always receive whatever enter transition in passed into the
transitionSpec
.