diff options
| author | 2025-02-18 14:22:34 +0000 | |
|---|---|---|
| committer | 2025-03-06 17:11:18 +0000 | |
| commit | 6b8d5ef22207f85d6c7ca7cedb62d018190d2c70 (patch) | |
| tree | 6efa0c668816df16e98790765e0e5ba8a6870629 /libs/androidfw/ResourceTimer.cpp | |
| parent | 957032e63d331a3ce5915879dfc6c048d793a156 (diff) | |
Sending requested IME visibility at the beginning of the hide animation
When hiding the IME, we previously only reported the requestedVisibleTypes at the end of the animation. Otherwise, by resetting the clientVisibility in ImeInsetsSourceProvider, the leash would have been reset before the end of the animation, which would have caused a flicker.
However, when a hide animation is ongoing, but during the animation another window became the IME target, the new target still got a control with leash (because we didn't reset client visibility).
By knowing the currently animating types (which are set before reporting the requested insets types), we can update client visibility in ImeInsetsSourceProvider. To avoid resetting the leash, we do not report to the IME that it should hide, until the animating types are reset.
Bug: 326377046
Fix: 383270430
Flag: android.view.inputmethod.report_animating_insets_types
Test: manual:
      Configure pin code on an unfolded foldable or tablet;
      Open Settings > Security & Privacy > Device unlock > Fingerprint
      Enter pin and proceed to next screen.
      The new IME target (fullscreen activity) should not start another hide
Change-Id: Ibd4b0c43450681b526ca4ed8a79fcb7fa5f2ad2c
Diffstat (limited to 'libs/androidfw/ResourceTimer.cpp')
0 files changed, 0 insertions, 0 deletions