Status Update
Comments
km...@google.com <km...@google.com>
lo...@gmail.com <lo...@gmail.com> #2
Jeremy, is this still an issue? I think the problem was that you had two transitions targeting the same View for the same action (e.g. two Slide() transitions).
bo...@google.com <bo...@google.com>
wd...@google.com <wd...@google.com> #3
I have a similar issue with plain AnimatorSet:
set.start()
set.pause()
set.setCurrentPlayTime(100)
set.setCurrentPlayTime(0)
set.setCurrentPlayTime(100)
set.resume()
doesn't play animation in resume().
wd...@google.com <wd...@google.com> #4
Should clarify that if I filter out setCurrentPlayTime(0)
(or replace it with setCurrentPlayTime(1)
) it works well.
Also even with setCurrentPlayTime(0)
, onAnimationEnd
is notified with correct delay (as if the animation has played).
de...@google.com <de...@google.com> #5
@
I think that is intended for Animator. If you set the currentPlayTime
to 0 or the total duration the animator completes. We do some
ra...@google.com <ra...@google.com> #6
Did some investigation on the Fragment side and it seems like the merged transition is targeting correctly.
Exiting Transition: Slide@aa9288e: tgts(android.widget.LinearLayout{f9add3d})
>>>>> ExitingViews <<<<<
View: android.widget.LinearLayout{f9add3d}
Entering Transition: Slide@35b8af: tgts(android.widget.LinearLayout{b7f24bc})
>>>>> EnteringViews <<<<<
View: android.widget.LinearLayout{b7f24bc}
Final merged transition: TransitionSet@7bc1c45:
TransitionSet@e133f9a:
Slide@aa9288e: tgts(android.widget.LinearLayout{f9add3d})
Slide@35b8af: tgts(android.widget.LinearLayout{b7f24bc})
merged transition passed to controlDelayedTransition: TransitionSet@7bc1c45:
TransitionSet@e133f9a:
Slide@aa9288e: tgts(android.widget.LinearLayout{f9add3d})
Slide@35b8af: tgts(android.widget.LinearLayout{b7f24bc})
Still digging.
wd...@google.com <wd...@google.com> #7
Branch: androidx-main
commit 567b7459329d1ec8d27a8c6fe1c4a86442065d7d
Author: Jeremy Woods <jbwoods@google.com>
Date: Tue Sep 26 20:06:54 2023
Add additional logging for transitions
Adding more debug logging in transitions to track the entering and
exiting transitions as well as the final merged transition and its
targets.
Test: added logging
Bug: 300157785
Change-Id: I0d9ad72b865422493c6c895ddb6115abf85eed16
M fragment/fragment/src/main/java/androidx/fragment/app/DefaultSpecialEffectsController.kt
de...@google.com <de...@google.com> #8
So I have isolated this outside of fragment into something much simpler and I think it breaks down when it comes to the adding and removing of Views with animateToStart.
The attached sample is a simple add that goes between two screens BLUE
and GREEN
. It has code for both the 1.5.0-alpha03
and 1.5.0-alpha04
versions, but I think alpha04 is currently broken in another way so I will upload the alpha03 version here.
This is integrated with predictive back similar to how fragment is, so upon cancelling we call animateToStart
, then we do a beginDelayedTransition
on a 0
duration Fade()
and we reverse the view visibility back to what it was prior to starting the transition.
If you only do visibility, cancel always works the view never goes away, it is wonderful, but when you do adding and removing views like we need to in fragment it fails.
First the code for beginDelayedTransition goes from this:
TransitionManager.beginDelayedTransition(container, Fade().apply {
duration = 0
})
reverseViews()
to this:
TransitionManager.beginDelayedTransition(container, Fade().apply {
duration = 0
addListener(onEnd = {
reverseViews()
blueScreen.visibility = View.VISIBLE
greenScreen.visibility = View.VISIBLE
})
})
reverseViews(useVisibility = true)
We need to make this change because after the animateToStart()
view is still parented by the overlay, so we call reverseViews(useVisibility = true)
to only change the visibility and then once the transition finishes we can call reverseViews()
to parent the view properly, then we make both views visible again.
From our perspective after the 0
duration transition our views are back in the proper state, but they do not transition properly after a cancel.
If the app is doing this wrong and we can make the appropriate fixes, doing the same in fragment should resolve this. There is logging available that shows the state of the views when we start the transition.
wd...@google.com <wd...@google.com> #9
The API has changed since that project was created in a way that makes the API more robust. I'm hoping that has fixed this...
wd...@google.com <wd...@google.com> #10
There appears to be a problem with the order of operations. I'm going to look into fixing that.
bo...@google.com <bo...@google.com>
de...@google.com <de...@google.com>
wd...@google.com <wd...@google.com> #11
Branch: androidx-main
commit e57dd5f9ac6cbb8cf83b221e2d5b3fbd3e88ce6b
Author: George Mount <mount@google.com>
Date: Thu Nov 09 14:33:53 2023
Fix animateToStart with Slide.
Fixes: 300157785
Slide was not repositioning the View to its proper
translation after animating it to the start position.
This fixes that so that it is moved.
Test: new test
Change-Id: I698f4dbcef46304f9aa545847d205f7b70c80d63
M transition/transition/src/androidTest/java/androidx/transition/SlideEdgeTest.java
M transition/transition/src/androidTest/java/androidx/transition/TranslationAnimationCreatorTest.java
M transition/transition/src/main/java/androidx/transition/TranslationAnimationCreator.java
ra...@google.com <ra...@google.com> #12
The following release(s) address this bug.It is possible this bug has only been partially addressed:
androidx.transition:transition:1.5.0-alpha05
wd...@google.com <wd...@google.com> #13
RE#12 31.3.15 uses build 9456632 so it should have included the fix. Let's sync up in chat.
ra...@google.com <ra...@google.com> #14
Retried as per offline discussion with Weilun, sometimes the time adjusts automatically but sometimes it gets adjusted after interacting with AVD.
wd...@google.com <wd...@google.com> #15
I think we can close the bug as verified.
mi...@mercurydevelopment.com <mi...@mercurydevelopment.com> #16
I'm still seeing this issue in Emulator 32.1.10.
wd...@google.com <wd...@google.com> #17
RE#16 Hi minyushov@, would it be possible to provide more details with what kind of host OS and what are the repro steps I can follow? Thanks!
mi...@mercurydevelopment.com <mi...@mercurydevelopment.com> #18
Hi
I'm using MacBook Pro with Apple Silicon and macOS Ventura 13.0.1.
Steps are pretty straightforward:
- Power adapter is plugged in. Energy mode is set to Automatic for both 'On battery' and 'On power adapter' options.
- Run emulator.
- Keep it running until macbook automatically goes to sleep.
- Wake it up after ~10 minutes and observe the time in the emulator. It shows not the actual time but the time when macbook fell asleep.
I'm not sure that this happens all the time but often enough.
wd...@google.com <wd...@google.com> #19
RE#18 Really appreciate it. I will start testing it.
wd...@google.com <wd...@google.com> #20
#18
One more question: After step 4 Wake it up after ~10 minutes and observe the time in the emulator. It shows not the actual time but the time when macbook fell asleep.
, have you tried to move the emulator window? I think the time should be updated when you starting using the emulator.
mi...@mercurydevelopment.com <mi...@mercurydevelopment.com> #21
I'm not sure that I've moved the emulator window but usually I install our app using Android Studio and see network errors due to time difference between the app and our servers. So it looks like the time isn't updated in this case.
ne...@gmail.com <ne...@gmail.com> #22
Em sex., 3 de fev. de 2023 15:08, <buganizer-system@google.com> escreveu:
wd...@google.com <wd...@google.com> #23
RE#21 Another question, are you using the emulator in a tool window? I think it might be the specific scenario which still has bug.
mi...@mercurydevelopment.com <mi...@mercurydevelopment.com> #24
I'm launching the emulator in a standalone window.
wd...@google.com <wd...@google.com> #25
RE#24
Ok, I tried it myself and I could not reproduce unfortunately. With have you tried to move the emulator window? I think the time should be updated when you starting using the emulator.
being said, would it be possible for you to try it again?
mi...@mercurydevelopment.com <mi...@mercurydevelopment.com> #26
Sure, will try
ne...@gmail.com <ne...@gmail.com> #27
mandaram aí por escrito
Em sex., 3 de fev. de 2023 15:59, <buganizer-system@google.com> escreveu:
mi...@mercurydevelopment.com <mi...@mercurydevelopment.com> #28
Unfortunately, it happened again. Moving a window did not help.
Some additional info:
- I use a pair of external displays connected via Type-C, Bluetooth keyboard and mouse.
- Power adapter is plugged in. This way I can safely close a macbook lid and continue using it with the external displays. When macbook is sleeping I can wake it up by pressing a key on a keyboard or by clicking a mouse button.
- Today I left my workplace for 40-50 minutes. When I came back, external displays were in standby mode. After waking the macbook up, I've reproduced the issue.
wd...@google.com <wd...@google.com> #29
RE#28 I realized what went wrong. My fix didn't merge into the 32 release. It's only available in the 31 release and the dev branch. Let me resolve that issue real quick and release a new version. Thanks for your input!
mi...@mercurydevelopment.com <mi...@mercurydevelopment.com> #30
Thank you!
wd...@google.com <wd...@google.com>
wd...@google.com <wd...@google.com>
de...@google.com <de...@google.com> #31
ranjitkumar@
mp...@gmail.com <mp...@gmail.com> #32
pa...@marketrebellion.com <pa...@marketrebellion.com> #33
Host: Darwin Kernel Version 22.4.0 arm64
wd...@google.com <wd...@google.com>
wd...@google.com <wd...@google.com>
wd...@google.com <wd...@google.com> #35
The fix is available in the next canary and stable release in June.
de...@google.com <de...@google.com> #36
de...@google.com <de...@google.com> #39
si...@gmail.com <si...@gmail.com> #40
Android emulator version 33.1.4-9936625
Host: macbook pro M1 Max, macOs: 13.5.1 (22G90)
Is there anything I need to do to fix this?
si...@meta.com <si...@meta.com> #42
wd...@google.com <wd...@google.com> #43
RE#42 Thanks for the feedback on the emulator. To help us troubleshoot this issue further, we will need more information. Please share detailed reproduction steps as much as possible of the following information:
1, Run the emulator from command line with “$ANDROID_SDK_ROOT/emulator/emulator -avd <NameOfAVD> -verbose -wipe-data” and send the logs from terminal
2, Run adb bugreport and send the zip file.
ra...@google.com <ra...@google.com>
wd...@google.com <wd...@google.com>
ra...@gmail.com <ra...@gmail.com> #44
I confirm 34.1.9 has no this issue anymore
Description
Please Read:https://developer.android.com/studio/report-bugs.html#emulator-bugs
Android Studio Version: 2021.3
Emulator Version (Emulator--> Extended Controls--> Emulator Version): 31.3.13-9189900 HAXM / KVM Version: HVF 12.6.0
Android SDK Tools: 26.1.1
Host Operating System: macOS 12.6
CPU Manufacturer: Apple CPU: Apple M1 Max
RAM: 65536 MB
GPU:
Build Fingerprint:
AVD Details: Name: Pixel_3a_API_33_arm64-v8a CPU/ABI: arm64 Path: /Users/ralfeus/.android/avd/Pixel_3a_API_33_arm64-v8a.avd Target: google_apis [Google APIs] (API level 33) Skin: 1080x2220 SD Card: 800 MB AvdId: Pixel_3a_API_33_arm64-v8a PlayStore.enabled: false avd.ini.displayname: Pixel_3a_API_33_arm64-v8a avd.ini.encoding: UTF-8 disk.dataPartition.size: 2G fastboot.chosenSnapshotFile: fastboot.forceChosenSnapshotBoot: no fastboot.forceColdBoot: no fastboot.forceFastBoot: yes hw.accelerometer: yes hw.arc: false hw.audioInput: yes hw.battery: yes hw.camera.back: emulated hw.camera.front: emulated hw.cpu.ncore: 1 hw.dPad: no hw.device.hash2: MD5:0e6953ebf01bdc6b33a2f54746629c50 hw.device.manufacturer: Google hw.device.name: pixel_3a hw.gps: yes hw.gpu.enabled: yes hw.gpu.mode: auto hw.initialOrientation: Portrait hw.keyboard: yes hw.lcd.density: 440 hw.lcd.height: 2220 hw.lcd.width: 1080 hw.mainKeys: no hw.ramSize: 1536 hw.sdCard: yes hw.sensors.orientation: yes hw.sensors.proximity: yes hw.trackBall: no image.sysdir.1: system-images/android-33/google_apis/arm64-v8a/ runtime.network.latency: none runtime.network.speed: full showDeviceFrame: no skin.dynamic: yes skin.path.backup: _no_skin tag.display: Google APIs tag.id: google_apis vm.heapSize: 256
Steps to Reproduce Bug:
Expected Behavior: Time matches one of host or real one from NTP server
Observed Behavior: Time is behind real one