Currently, IMMS will be notified asynchronously when an IME hide
animation finishes, via message dispatching through IMS
(IMM#notifyImeHidden -> IMS#notifyImeHidden -> IMMS#hideMySoftInput).
This creates a race condition when IMM#showSoftInput or WIC#show is
called around the end of hide animation.
This CL fixes the race condition by synchronously and directly
calling IMMS#hideSoftInput from IMM#notifyImeHidden.
Note that there is still another race condition for IMM#showSoftInput
(not WIC#show) if it's called during an IME hide animation;
IMM#showSoftInput ended up calling WIC#show asynchronously, but at that
time the running IME hide animation may have already been finished
successfully and WIC#show may fail to cancel the hide animation
(then the cleanup IMM#notifyImeHidden hides the IME again disruptively).
I will fix the latter issue in a separate CL.
Bug: 221483132
Bug: 225674038
Test: atest InputMethodStressTest
Test: atest CtsInputMethodTestCases
Test: atest WindowInsetsAnimationControllerTests
Change-Id: I7c71dc5a1d6b61aa79d1666f0e257e6401e4adb2
(cherry picked from commit 9065310f81)
Merged-In: I7c71dc5a1d6b61aa79d1666f0e257e6401e4adb2
This is a follow up CL to my previous CLs[1][2], which are submitted
almost at the same time but not compatible with each other.
The first CL [1] introduced a new behavior that negative indices
passed to
AccessibilityInputConnection#getSurroundingText(int, int, int)
result in IllegalArgumentException, which is a different behavior than
what's observed from IMEs.
The second CL [2] assumed that negative indices passed to that API
result in just receiving null result like what's observed from IMEs.
This CL effectively reverts the new behavior introduced in the first
CL [1] to keep two observable behaviors consistent.
Note that negative indices passed to getSurroundingText() are already
handled in
RemoteInputConnectionImpl#getSurroundingText()
in a graceful manner [3], which guarantees that the IME client process
will not see such an irregular parameter (Bug 169114026) with keeping
the InputConnection commands order (Bug 194110780).
[1]: I5ff2e804cbcf90828370a0612ff54111130bdff4
c60176c1f3
[2]: I62b80916369bdac981dc93c14dcaedc1f2b6e95f
495ac0f55cbcc976995e8c73fdc89babfbdce902
[3]: Ie0c18d0c9b8bf8f02f2fcdca5aac7e580c6bf2cd
8821afef81
Bug: 215633021
Fix: 229981360
Test: atest CtsInputMethodTestCases:InputConnectionEndToEndTest
Change-Id: I16a0185343c7c7c3e0947aab2c398714a1077b97
For more information, see go/sharesheet-list-view-update-delay.
Bug: 224816815
Test: `atest ChooserActivityTest`. The duration can be manually
configured by `adb shell device_config put systemui
sharesheet_list_view_update_delay n` to set a delay of n milliseconds.
With a timeout of 250 (as it was before this change), all the tests
still pass. With a timeout of 0, all tests pass but one (as described in
the doc linked above) -- a potential fix for that test will follow in a
subsequent CL.
Change-Id: Ia5edfe391b135659d2fd8126069c5cd6ce15653b
Merged-In: Ia5edfe391b135659d2fd8126069c5cd6ce15653b
Bug: 229226106
Test: check the trace in the bug
Test: atest InteractionJankMonitor FrameTrackerTest
Change-Id: If3e496b0178eca0555d14ce99bc462365805c4e1
LocalImageResolver should not upscale the image if it's already smaller than the maximum width.
Bug: 228719813
Test: atest LocalImageResolverTest
New test failed before change / passed after change
Change-Id: I4fc09d1955fe94159cf0e2e8125044712f3c3134
- When the Apps launch SAF, they can set initial uri to launch the
specific directory. Block the access for data/obb/sandbox
directories of Android
- Normalize path (E.g. the path includes . or ..) to avoid
unexpected behavior
Bug: 200034476
Bug: 220066255
Test: atest ExternalStorageProviderTest
Test: atest DocumentsTest
Change-Id: I226a9c25710fcf78d14d775eb3270bfd3b491dd3
Currently, IMMS will be notified asynchronously when an IME hide
animation finishes, via message dispatching through IMS
(IMM#notifyImeHidden -> IMS#notifyImeHidden -> IMMS#hideMySoftInput).
This creates a race condition when IMM#showSoftInput or WIC#show is
called around the end of hide animation.
This CL fixes the race condition by synchronously and directly
calling IMMS#hideSoftInput from IMM#notifyImeHidden.
Note that there is still another race condition for IMM#showSoftInput
(not WIC#show) if it's called during an IME hide animation;
IMM#showSoftInput ended up calling WIC#show asynchronously, but at that
time the running IME hide animation may have already been finished
successfully and WIC#show may fail to cancel the hide animation
(then the cleanup IMM#notifyImeHidden hides the IME again disruptively).
I will fix the latter issue in a separate CL.
Bug: 221483132
Bug: 225674038
Test: atest InputMethodStressTest
Test: atest CtsInputMethodTestCases
Test: atest WindowInsetsAnimationControllerTests
Change-Id: I7c71dc5a1d6b61aa79d1666f0e257e6401e4adb2
Bug: 210453009
Test: manual test on local phone
Test: atest ChooserActivityTest
Change-Id: Ibcc83037ca801ee0ecf2306eae954677529fa849
(cherry picked from commit 6393225873)
Merged-In: Ibcc83037ca801ee0ecf2306eae954677529fa849
The helper methods provided by this class have been unused
since ag/13807667 (part of removing the old ChooserTargetService
functionality).
Test: http://cs/search?q=chooserutil&sq=package:android-internal
Bug: 148416928
Change-Id: I0aaaa5f597ef72097f1847a3187b335791287a60
Merged-In: I0aaaa5f597ef72097f1847a3187b335791287a60
This just requires a few parameter changes to align with Launcher
(iconloaderlib), as proposed by digman@ in b/196631965.
Bug: 196631965
Test: asked digman@ to approve a screenshot.
Change-Id: Icca36fe8c5771041bea960478c2be85f0679dc8d
Merged-In: Icca36fe8c5771041bea960478c2be85f0679dc8d