This CL fixes a race condition for IMM#showSoftInput, which surfaces
when it's called during an IME hide animation.
IMM#showSoftInput ends 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 think a clean fix is to have IMM#showSoftInput call WIC#show
synchronously. However, this requires a significant refactoring.
As a short term fix, this CL adds a boolean field indicating whether or
not IMM#showSoftInput has been called. If it's called, we skip calling
IMM#notifyImeHidden.
Bug: 221483132
Bug: 225674038
Test: atest InputMethodStressTest
Test: atest CtsInputMethodTestCases
Test: atest WindowInsetsAnimationControllerTests
Change-Id: I36d570630085d0bc34097a2433208601dc9cb0fd
(cherry picked from commit 4c607982ed)
Merged-In: I36d570630085d0bc34097a2433208601dc9cb0fd
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 change ensures that carrier configs are saved as part of the
snapshot, allowing all entities in the VCN to query telephony
subscription information from the same source.
Test: atest FrameworksVcnTests
Change-Id: I31447d84fe98d6bd2cc78ead41746198728c400b
Currently, one frame of the animation shows 2 instances of the launcher, making the test flaky
Bug: 229762973
Test: atest FlickerTests
Change-Id: I51f2854e24ea6a4114ebfd7726b5cc0ffe32e416
The ImeAppAutoFocus shows the IME when the app is launched. at the moment it doesn't wait for the IME to be visible before continuing and this causes test flakiness
Test: atest FlickerTests
Change-Id: If3ab191fcc9d026553a1859e594e4d38da37f41d
Currently the assertions fail when the dipslay is off because no layers
are visible
Bug: 228582475
Test: atest FlickerTests
Change-Id: I718192064c1d1cf0bdf19015e3b7daeb00879d3c
Add a target for tablets that we can point to in order to run tests
during pre and post-submit.
Test: local atest
Bug: 228851008
Change-Id: Ie0a1186cc97388c1b9c282c81e8bfcab5eec814b
In case IME-snapshot removed and the assertion can't verify IME-snapshot
visible from the next frame, fix the assertion by verifying both
IME-snapshot and IME are invisible in the end.
Fix: 228947097
Test: atest FlickerTests:CloseImeEditorPopupDialogTest \
--rerun-until-failure 20
Change-Id: I1d945cd10761af1c7dad9154a550e69bf4d481ee
This commit maximizes VCN MTU by considering IP version. Specifically,
VcnGateWayConnection stores/updates the IkeSessionConnectionInfo passed
out from the IKE library during IKE setup and migration. By looking into
the addresses stored in the IkeSessionConnectionInfo, VCN is able to
know the IP family of the VCN tunnels.
Bug: 222331693
Test: atest FrameworksVcnTests(new tests), CtsVcnTestCases
Change-Id: I9a2839d7827f1d6451546ec222129f286e94ae36
The bars (including status bar and navigation bar) are expected to be hidden while entering overview in landscape if launcher is set to portrait only.
Because "showing portrait overview (launcher) in landscape display" is an intermediate state depending on the touch-up to decide the intention of gesture, the display may keep in landscape if return to app, or change to portrait if the gesture is to swipe-to-home.
So instead of showing landscape bars with portrait launcher at the same time (especially return-to-home that launcher workspace becomes visible), hide the bars until leave overview to have cleaner appearance.
Bug: 227189877
Test: atest FlickerTests:OpenImeWindowToOverViewTest
Change-Id: Idc89eab44bb74217c4235374a8fcfd5f7ec488cf
This changes the VCN to allow a VCN provisioning package to retrieve
its listing of configured subgroups and clear its own configurations,
regardless of whether it is the active subscription group.
Safety is guaranteed based on the VCN's clearing of packages when app
data is cleared, and when the app is uninstalled. In addition to the
configurations not being retrievable, the clearing of the configs will
ensure that sideloading of an app with the same package name provides
no ability to otherwise impact settings.
Bug: 227248744
Test: atest FrameworksVcnTests
Change-Id: I2c774c00373942f895169a761d4e9a1d5b0b2edb
Currently it fails with
Caused by: java.lang.NullPointerException: Attempt to invoke virtual method 'android.content.ComponentName android.app.WallpaperInfo.getComponent()' on a null object reference
at com.android.server.wm.flicker.launch.TaskTransitionTest$Companion.getWallpaperPackage(TaskTransitionTest.kt:240)
Fixes: 225350160
Test: atest FlickerTests:TaskTransitionTest
Change-Id: I516520e806fc17e75c2cdfe07116f7b84fdd5adb
This might improve success rates for remounting the device.
The command goes through shell with no inherent state, so it's
unclear how it can fail, but going through the official methods
might help.
Bug: 197552347
Test: atest --rerun-until-failure 100 \
com.android.server.pm.test.OverlayActorVisibilityTest
Change-Id: I25c1f938064e72ddc288b12c048f0cd82217b583
The label can be as-is ("Test reply") or all-caps ("TEST REPLY")
depending on the system config.
Bug: 227712564
Bug: 227424350
Test: atest InputMethodStressTest
Change-Id: Id64793f572bec06c84a235fc7688870f44013723
Since we check every 50ms this will not increase the test time when the
device is not slow.
Bug: 228066093
Test: atest TrustTests (details in bug)
Change-Id: Icd73b77aa5ffd446a55aa427bc85edcb3b5b041e