Status Update
Comments
kl...@google.com <kl...@google.com>
ap...@google.com <ap...@google.com> #2
Thank you for reporting this issue. For us to further investigate this issue, please provide the following additional information:
Android build
Which Android build are you using? (e.g. OPP1.170223.012)
Device used - Device Make, Model, Android OS Version
Please provide sample project or apk to reproduce the issue. Also mention the steps to be followed for reproducing the issue with the given sample project or apk.
Android bug report capturing
After reproducing the issue, press the volume up, volume down, and power button simultaneously. This will capture a bug report on your device in the “bug reports” directory.
Alternate method
Navigate to “Developer options”, ensure “USB debugging” is enabled, then enable “Bug report shortcut”. Capture bug report by holding the power button and selecting the “Take bug report” option.
Screen record of the issue, for clarity
Please capture screen record or video of the issue using following steps:
adb shell screenrecord /sdcard/video.mp4
Subsequently use following command to pull the recorded file:
adb pull /sdcard/video.mp4
Note: Please upload the files to google drive and share the folder to
na...@google.com <na...@google.com> #3
Devices: samsung, realme, xiaomi, OPPO, motorola, LGE,
I don't know how to write code reproducing issues in Android framework, unless you explain what does "no event down from INITIALIZED" mean. Then maybe I can prepare a piece of code that doesn't "event down from INITIALIZED". Until then - sorry.
Also - this error doesn't ever show on the device it is just logged to crashlytics, so there's now way to capture anything "after reproducing the issue".
Description
We have tests for things like that certain types of text changes don't cause too many recompositions. Those tests pass when sending commands through the IME command code path, but fail when going through the semantics code path. The semantics code path is very different than IME: we just directly invoke the
onValueChanged
callback.This is an opportunity for other bugs as well – internal state can get out of sync because one way of mutating it updates internal state directly, and the other asks the composition to update our state on the next frame.
Semantics actions should go through the same code paths as IME commands, or as close as possible.
For example, the
TextFieldTests.textField_stringOverload_doesNotCallOnValueChange_whenCompositionUpdatesOnly
test fails if text clearance is performed via theSetText
action instead of IME commands. They should behave the same.