Currently, format is used to check for opaque but is not sent to
SurfaceFlinger to use when creating the SurfaceControl.
Test: format is set for WindowlessWindowManager
Bug: 134365580
Change-Id: Ia0707e49fa635313d3d54ca825173c71d2b17f14
The token is now generated at the native level, inside InputTransport,
when you open an inputchannelpair. It is read-only.
Bug: 142581626
Test: presubmit
Change-Id: I67314f9854c2f720eb4fc2cb489755eae8863f8f
Do not make getStateDescription final, since it can cause
compatibility issues with existing derived classes that define
a getStateDescription. Also replaced call to
getContentDescription() to mContentDescription. This is because
if a subclass overrides it, we don't want it to affect the value
used in accessibility service (cause divergence in accessibility
event and accessibilityNodeInfo).
Bug: 143652980
Test: no needed
Change-Id: I36c94c85eb258b3c9474090d841c925331d22d73
For a typical window with Editor, IMM#startInputOrWindowGainedFocus
is called twice: first for WINDOW_FOCUS_GAIN (dummyInput), then
CHECK_FOCUS when actual editor receives focus and startsInput.
The first once can be moved to background thread and second startInput
will wait till its finished.
Bug: 139806621
Test: Manually launch activities with editors and confirm no change in
behavior.
Change-Id: I6aa4a664cfd0c86f75cee2457715317194bbe5e2
This adds a "IWindowContainer" interface which is an opaque
handle to a window-container in WM. It has very minimal
functionality and is intended to be used mostly as an
identifier.
Along with this handle, there is a WindowContainerTransaction
which can collect a set of container + configuration changess
and apply them all together. This will be used for remote
rotation control and other batched operations in the future.
Bug: 124011688
Test: Added some wm/core tests.
Change-Id: I691e7c11cd8c30f1a24fd64c6018a18933047847
Since this flag does not do any check during start input,
Remove this flag and the related parameter for IMM#onPostWindowFocus
to keep the logic simpler (included removing
ViewRootImpl#mHasHadWindowFocus).
This is refector CL and does not impact any behavior change.
Bug: 141738570
Test: Refector CL, make sure all existing test passed.
Change-Id: I9119f4846cbbd2b15246dea9a3b1fc5845dce951
When moving the SurfaceControl lifetime to the render-thread
callback I also moved the Surface lifetime. There was no reason to
do this since the SurfaceView Surface isn't accessed from render-thread.
It introduces a small indeterminism in lifetime making a test fail, so we
revert it for cleanness.
Bug: 142011183
Test: Manual
Change-Id: I98a3daf21e7ed598d557046fc5b2e4cfebf1c845
Floating IME has zero insets and hence it becomes a special case where
Insets type to side map will have to be statically created per
form-factor. Realistically, IME side shouldn't change on any
form-factor.
Fix: 142713934
Test: Manually
1. Enable floating mode in gboard.
2. Tap on editor to verify gboard shows
3. press back to verify gboard hides.
Change-Id: Ie2e2df3fdc5f637cf2efdf14bb5b74f45e3a929f
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.
Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
InsetsPolicyTest WindowStateTests CommandQueueTest
RegisterStatusBarResultTest InsetsFlagsTest
LightBarControllerTest
Test: build on specific target
Change-Id: Ie35f4b4468bce7ef8c76f091e306610c069fba85
Wire up the appearance and the transient state of system bars between
WMS and System UI. The derived classes of CommandQueue.Callbacks no
longer listen to setSystemUiVisibility, but listen to showTransient,
abortTransient, and onSystemBarAppearanceChanged instead.
Bug: 118118435
Test: atest InsetsSourceProviderTest InsetsStateControllerTest
InsetsPolicyTest WindowStateTests CommandQueueTest
RegisterStatusBarResultTest InsetsFlagsTest
LightBarControllerTest
Change-Id: I1dcaff47ae57ccee91146fdc042cde5e26fc0b3f
After an accessibility service crashes a few times in a short period
of time, framework would add it into a “blacklist”. User wouldn’t be
able to use (re-enable) it. If users express an intent in them working
again, we remove the crashed accessibility service from the blacklist.
Bug: 129689483
Test: a11y CTS & unit tests
Test: manual
1. Install and enable an intentional crashed a11y service.
2. After it's crashed and malfunctioning, re-enable it.
3. Check if it's bound again.
Change-Id: Ia89121f11bc5e05fc829e0e3ecb266150409678b
InputMonitor already contains an inputchannel. And inputchannel has a
name. Using the latest codegen tool, toString would already properly
print name because InputChannel has toString. So we don't need to
duplicate this field in InputMonitor.
Bug: 142581626
Test: presubmit
Change-Id: I2915cdc9928ab50991539593e584173e2231c16f
Currently, when recents animation is cancelled from fail safe mechanism,
we put the previous app back to the top. It no longer makes sense when
live tile is in the picture since we don't want the user to see the
previous app being brought up when they turn off and on the phone.
Fixes: 142088072
Test: Turn off and screen and back on. Make sure the user goes back to
home instead of previous app in live tile mode.
Change-Id: I5f16c4c8c77b918dc706c45acadf143edc454de9
This followup CL implements hideInsets() introduced in 1/2.
Bug: 142461756
Bug: 111084606
Test: Manually tested using steps below:
1. Make sure new insets flag is enabled
2. Launch any activity which has child window with NOT_FOCUSABLE,
ALT_FOCUSABLE_IM (e.g. Instagram login screen)
3. Verify IME can be shown and hidden by this window.
Change-Id: I307594014eca8a06397c739ffbc9c12eac160fdc
> Moving the dump to UI thread instead of making every method call individually to UI thread
Test: Launcher view hierarchy dump changed from ~4.5 seconds to 260ms
Change-Id: I3a815755bc63fdd7a729aae46339dd3c55f09cd4
Input method frameworks uses focused window and some tricks
to best guestimate IME target. Though it doesn't always know the
actual IME target. e.g. when window has both NOT_FOCUSABLE,
ALT_FOCUSABLE_IM; IMF thinks focued window is IME target but it isn't
the case.
The right thing to do is to call both show(IME), hide(IME) on IME
target.
Bug: 142461756
Bug: 111084606
Test: Manually tested using steps below:
1. Make sure new insets flag is enabled
2. Launch any activity which has child window with NOT_FOCUSABLE,
ALT_FOCUSABLE_IM (e.g. Instagram login screen)
3. Verify IME can be shown and hidden by this window.
Change-Id: I13f3e04f6f9e1574db9cbb56bdb7817152499d03