Commit Graph

14507 Commits

Author SHA1 Message Date
Adrian Roos
810d33dc85 Merge "InsetsController: Maintain type user animation when restarting input" into rvc-dev am: 792dc29a6e am: f879f1cbf2 am: c42264c804
Change-Id: I5146e43ef1171e6910da2d1e790e95aa58ed2924
2020-05-27 18:48:48 +00:00
Adrian Roos
69ea474b94 Merge "InsetsController: Add missing onWindowInsetsAnimationEnd when cancelling" into rvc-dev am: c7577d48c0 am: 540898511a
Change-Id: I9b4efc4ef1ac4c44617e353db31e89e761c52a48
2020-05-27 18:37:34 +00:00
Adrian Roos
792dc29a6e Merge "InsetsController: Maintain type user animation when restarting input" into rvc-dev 2020-05-27 18:09:16 +00:00
Adrian Roos
c7577d48c0 Merge "InsetsController: Add missing onWindowInsetsAnimationEnd when cancelling" into rvc-dev 2020-05-27 18:08:19 +00:00
Heemin Seog
3eeb71d1eb Merge "Add climate bar insets" into rvc-dev am: 58169786a6
Change-Id: I38c88995a491c36a6b29950b52fbb8da0003c9d8
2020-05-27 15:48:53 +00:00
Heemin Seog
58169786a6 Merge "Add climate bar insets" into rvc-dev 2020-05-27 15:38:32 +00:00
Taran Singh
816b9c374c Merge "Add Insets dumps and IME debug logs" into rvc-dev am: e20c25ddc6
Change-Id: Ic644e48d41209ce171c568e87358a86090249b3f
2020-05-27 15:24:27 +00:00
Taran Singh
e20c25ddc6 Merge "Add Insets dumps and IME debug logs" into rvc-dev 2020-05-27 15:12:30 +00:00
Taran Singh
85661e3f9e Add Insets dumps and IME debug logs
Add more dumps and logs to better help debug IME insets better
Logging can be enabled by setting InsetsController.DEBUG to true.

Bug: 154348613
Test: manually build and flash.
      Verify showing and hiding IME shows logs.
      verify adb shell dumpsys window windows has new dumps

Change-Id: Iad0a21d81a22d6acfaaf5c5ca8b5131eec411e79
2020-05-27 15:12:07 +00:00
Heemin Seog
d79e4f49d2 Add climate bar insets
This can be used to support a 3rd kind of system bar to inset the
applicaiton space.

Bug: 152763889
Test: manual
Change-Id: I3ba75886e94a9fe80a0d1a920749d152dda64031
2020-05-26 14:26:25 -07:00
TreeHugger Robot
e9b6fa5da6 Merge "WindowlessWindowManager: Set size when creating surface" into rvc-dev am: 58c7846f6a
Change-Id: Id975b3b7206fa1abbabbcb9f54718726d45dbb65
2020-05-26 20:51:04 +00:00
TreeHugger Robot
58c7846f6a Merge "WindowlessWindowManager: Set size when creating surface" into rvc-dev 2020-05-26 20:41:22 +00:00
Adrian Roos
a2d2ba7e61 InsetsController: Maintain type user animation when restarting input
When the IME restarts input, it re-requests to show itself. If the app is
already animating, we should maintain that animation instead of cancelling
it.

Fixes: 155962435
Test: atest WindowInsetsAnimationControllerTests
Change-Id: I57618e43b2cddc55e5dfc32111abbbd82cc6ed48
2020-05-26 20:22:05 +00:00
Adrian Roos
a79b8851f7 InsetsController: Add missing onWindowInsetsAnimationEnd when cancelling
Fixes a few issues around cancelling insets animations:

- dispatch the onEnd callback when the animation gets cancelled
- When using the CancellationSignal, we need to properly cancel the
  animation, and not just the controller - otherwise we never actually
  remove it from mRunningAnimations.
- Now that cancellation dispatches to apps, make sure they do not
  restart a different animation of the same type we just cancelled

Bug: 156740834
Test: atest WindowInsetsAnimationControllerTests
Change-Id: I4c36470a816ff8e3b92cd03090b8e947a2234f13
2020-05-26 21:26:25 +02:00
Robert Carr
5d9d2ddca2 WindowlessWindowManager: Set size when creating surface
When we set the buffer size from relayout window, there is a race
condition where the client may then submit its first buffer but the
transaction hasnt applied yet on the SF side and so the buffer is
rejected. Setting a defualt size when creating fixes this. Luckily
SurfaceControlViewHost size is known at add time, since we force the
window size based on the values passed in to the SurfaceControlViewHost API.

Bug: 157153874
Test: Existing tests pass
Change-Id: I2566844aea81df92f1694f43254a480fc3b3c019
2020-05-26 11:29:39 -07:00
Hongwei Wang
3ffda8dade Merge "Ignores entering PiP animation on seamless rotation" into rvc-dev am: 047a550900
Change-Id: Id425cf6f338f1b03cb69a41210f5525002cf14a5
2020-05-21 03:16:37 +00:00
Hongwei Wang
047a550900 Merge "Ignores entering PiP animation on seamless rotation" into rvc-dev 2020-05-21 03:12:56 +00:00
Hongwei Wang
f4e4bab403 Ignores entering PiP animation on seamless rotation
- Added onFixedRotationStarted/onFixedRotationFinished callback in
  DisplayWindowListener
- onFixedRotationStarted shall be called before onTaskAppeared for PiP
- When onTaskAppeared is received in PipTaskOrganizer, we defer the
  entering PiP transition if fixed rotation is ongoing
- When onFixedRotationFinished is received in PipTaskOrganizer and the
  entering PiP transition is deferred, schedule an immediate
  transition to PiP to make sure all the expected callbacks from
  PipTaskOrganizer are still being sent

Video: http://go/recall/-/aaaaaabFQoRHlzixHdtY/bb8HjJvMZKtpN8YTPKZXmj
Bug: 153861223
Test: manually enter PiP from Play Movies / YT fullscreen
Test: atest ActivityRecordTests \
            RecentsAnimationControllerTest \
            ActivityTaskManagerServiceTests \
            PinnedStackTests
Change-Id: I0dea905d610e2387af56b611be5f93518cc9a153
2020-05-20 17:34:17 -07:00
Tiger Huang
1f8f560661 Merge "Dispatch the requested visibility if the client has the control" into rvc-dev am: 090ee6ff39
Change-Id: I3404301c600b7be6bfd38c24e7b78fe2761a9de3
2020-05-20 14:38:03 +00:00
Tiger Huang
090ee6ff39 Merge "Dispatch the requested visibility if the client has the control" into rvc-dev 2020-05-20 14:36:30 +00:00
Julian Odell
b508a77c44 Merge "Flush buffered data when session connects. Typically this data would have been flushed at the end of the first draw and there would otherwise be an extended delay before the data would be sent to the service." into rvc-dev am: 4946555a8e
Change-Id: I22c89fff90283640826088d9c323713af2eab4c3
2020-05-19 22:25:30 +00:00
Julian Odell
4946555a8e Merge "Flush buffered data when session connects. Typically this data would have been flushed at the end of the first draw and there would otherwise be an extended delay before the data would be sent to the service." into rvc-dev 2020-05-19 22:22:30 +00:00
Julian Odell
ef928f8a11 Flush buffered data when session connects.
Typically this data would have been flushed at the end of the
   first draw and there would otherwise be an extended delay
   before the data would be sent to the service.

Test: make -j
Test: Manually start WhatsApp - check for lost events
Test: atest CtsContentCaptureServiceTestCases

Bug: 154777879
Change-Id: Ia0a97e24ffcc1c189d5d0cd6b8888678fa48968e
2020-05-19 12:30:57 -07:00
Tiger Huang
2ab590a4b8 Dispatch the requested visibility if the client has the control
Otherwise, we would think its visibility needs to be cleared.

This CL:
- reverts parts of eb5a5920b7,
- prevents sending redundant MSG_DISPATCH_SYSTEM_UI_VISIBILITY, and
- cancels clearing visibility if a new reversed visibility is set.

Fix: 156994866
Test: atest --iterations 100 LayoutTests#testAddingImmersiveWindow
      atest WindowInsetsControllerTests InsetsAnimationControlImplTest
Change-Id: I8b8b7541523c0a94daf336f3be415aa5fa3f33da
2020-05-19 22:07:04 +08:00
Evan Rosky
79da850cfe Merge "Add a window dump for uiautomator" into rvc-dev am: bddd280556
Change-Id: I5b9b5d0536dd2a735b78926df6c1c2e72f67e29a
2020-05-15 18:16:56 +00:00
Evan Rosky
bddd280556 Merge "Add a window dump for uiautomator" into rvc-dev 2020-05-15 18:15:36 +00:00
TreeHugger Robot
ad6683cb04 Merge "Add tracing for Inset animations" into rvc-dev am: 5bf3f80f20
Change-Id: I7799f6e7eadd8bf24c43de58933365d7842ad2c2
2020-05-15 15:59:35 +00:00
Tiger Huang
88f47b7d0d Merge "Do not dispatch system UI visibility during traversal" into rvc-dev am: 8fd8a538b8
Change-Id: If80d3f6cb3c120aa32ae95e75b07149356583d34
2020-05-15 15:54:58 +00:00
Matt Casey
cdf533b8f2 Merge "Allow WindowManager.TYPE_SCREENSHOT to be focusable" into rvc-dev am: d8aa60aa0d
Change-Id: I6ed40dcec54942b982e312e5c975ec94fbb951ce
2020-05-15 15:53:25 +00:00
TreeHugger Robot
5f6997a91f Merge "Revert "Finish input when the screen state is off"" into rvc-dev am: d99569f88a
Change-Id: Ie7d45b61a1b6b2f31bb20c1ad4e6feaa43c33ce1
2020-05-15 15:50:11 +00:00
TreeHugger Robot
a51f14f3e5 Merge "Pass window type to the InputWindowHandle of embedded window" into rvc-dev am: 0e58daf022
Change-Id: I4a6cd0dd57c318aa5de26c7e3ca33cda961f7430
2020-05-15 15:47:45 +00:00
TreeHugger Robot
1fafd9ada3 Merge "Remove divider view when exiting splitscreen" into rvc-dev am: 3a6ec37a71
Change-Id: I7cbc233fca8687eba37c3127f9d13fe3c9e60c19
2020-05-15 15:44:34 +00:00
TreeHugger Robot
5bf3f80f20 Merge "Add tracing for Inset animations" into rvc-dev 2020-05-14 22:16:23 +00:00
Tiger Huang
8fd8a538b8 Merge "Do not dispatch system UI visibility during traversal" into rvc-dev 2020-05-14 17:25:56 +00:00
Matt Casey
d8aa60aa0d Merge "Allow WindowManager.TYPE_SCREENSHOT to be focusable" into rvc-dev 2020-05-14 16:37:58 +00:00
Jorim Jaggi
cb28ae6d17 Add tracing for Inset animations
So we can understand better what's going on.

Bug: 156367695
Test: Systrace
Change-Id: Ic9dc2c963f70a3bb787121d33476b84bd3dc5798
2020-05-14 17:46:32 +02:00
TreeHugger Robot
d99569f88a Merge "Revert "Finish input when the screen state is off"" into rvc-dev 2020-05-14 14:21:39 +00:00
TreeHugger Robot
0e58daf022 Merge "Pass window type to the InputWindowHandle of embedded window" into rvc-dev 2020-05-14 08:32:00 +00:00
arthurhung
d3f17d7df7 Pass window type to the InputWindowHandle of embedded window
A windowless SurfaceControl could grant input via
IWindowSession.grantInputChannel, but other window may receive the
obscured events because of the type value of input window is always 0.

The obscured or partially obscured flag indicates that the window
received this motion event is wholly or partially obscured by another
visible window above it.

We have to filter out the trusted overlap so the motion event could
properly dispatch to the view if it is a security sensitive application.

Bug: 156063505
Test: enter split window mode and check the motion event
Change-Id: I10f63ea131a70ee8cc7d5c4b3e5ca4e5f06fdbad
2020-05-14 11:59:23 +08:00
TreeHugger Robot
3a6ec37a71 Merge "Remove divider view when exiting splitscreen" into rvc-dev 2020-05-14 02:25:24 +00:00
Ming-Shin Lu
2c6e80be12 Revert "Finish input when the screen state is off"
This reverts commit 0df8812486.

The original CL is trying to reduce the dependency of PownerManager to
finish input when screen off by using display state.

However, it doesn't fully fix the original Bug 26851566 since we only
finish input connection but didn't callback onFinishInput callback for
IME client.

Also, for some scenarios, the window / view focus may not change
during screen turns off / on:
  - Focusing timing when disable keyguard, then quickly screen off / on.
  - Using P-sensor to turning screen off / on.

When the above scenario happens, makes input connection cannot re-start
and soft-keyboard can't be shown.
(The recovery is manually focus on next window or activity.)

As the above reason, we need to re-consider the lifecycle of
input connection, window / view focus when not only screen state but also
device inactive state when always-on-display.

Fix: 156045961
Fix: 154605805
Bug: 26851566
Bug: 156215187
Test: atest CtsInputMethodTestCases
Change-Id: If06daf71160aa44a4254ac125561974ecbdef4f2
2020-05-14 08:29:18 +08:00
TreeHugger Robot
307822164f Merge "SurfaceView: positionLost locking fix" into rvc-dev am: bff3812e82
Change-Id: Ib8d633718cbbef9b8bf49e8afd4c77e57e8ebf9c
2020-05-13 22:15:34 +00:00
TreeHugger Robot
bff3812e82 Merge "SurfaceView: positionLost locking fix" into rvc-dev 2020-05-13 22:04:58 +00:00
TreeHugger Robot
33e9151041 Merge "Fix inline suggestion ref counting to not over-count" into rvc-dev am: 730fb0d97d
Change-Id: Ie26fb4be5a80161540f0a0010067c8ee52d682dd
2020-05-13 21:04:09 +00:00
TreeHugger Robot
730fb0d97d Merge "Fix inline suggestion ref counting to not over-count" into rvc-dev 2020-05-13 20:58:15 +00:00
Feng Cao
723ba2e82b Fix inline suggestion ref counting to not over-count
* Imagine this event sequence:
  1) the IME tries to re-attach an inline suggestion view to the
  window (e.g. because IME layout changes), it calls into the system
  server which causes recreating the backing view because it was
  destroyed earlier due to 0 ref-count (this happens under the hood
  without IME knowing it happens, so the view is still attached to
  the window).
  2) the IME receives a new inline suggestion pointing to the same
  backing view (perhaps due to filtering kicks in).
  3) the recreation from step 1 finishes, but now it will callback
  to the new inline suggestion, therefore the old view doesn't receive
  the new SurfacePackage. See RemoteInlineSuggestionUi for why.
  4) the view in step 1 is detached from window, since it never
  receives a SurfacePackage from the remote view, its detach shouldn't
  cause a reference count down on the remote view.

Test: atest android.autofillservice.cts.inline (sanity test)
Bug: 154683107

Change-Id: I2e6814ef3889de603f6e170efcb795b69ec9febe
2020-05-13 11:55:58 -07:00
Robert Carr
ebaaca1a46 SurfaceView: positionLost locking fix
positionLost can be called from CanvasContext::destroyHardwareResources
which runs asynchronously to the UI thread. This means we could be
simultaneously executing releaseSurfaces on the UI thread. We need
to expand the scope of mSurfaceControl lock in positionLost. While
we are here we add a block comment explaining the previously
undocumented locking strategy.

Bug: 156264048
Test: Existing tests pass
Change-Id: I9cdb6a0f7aeffd878f1755f240e8896f0fb8bf01
2020-05-13 18:29:59 +00:00
Matt Casey
834c0f8ea4 Allow WindowManager.TYPE_SCREENSHOT to be focusable
Pre-R, the screenshot window was used just for screenshot animation. In
R, the window is also hosting tappable screenshot actions, which require
focus.

This change modifies TYPE_SCREENSHOT to no longer force it to be
unfocusable.

Test: Verify that screenshot window UI elements can work with talkback
    and accessibility scanner.
Bug: 153517161
Bug: 152583784
Change-Id: If81d9f94dff801c3483a2d834e692b4c77d80d7b
2020-05-13 14:01:41 -04:00
TreeHugger Robot
b22a5298d7 Merge "Increase content capture buffer size to 500 Anecdotally this should cover typical messaging first screens whereas 100 events seems to be small." into rvc-dev am: 8ae0cfe36b
Change-Id: Iddd15ad16e66e04674dd9a41a0c5236571ad18b9
2020-05-13 02:03:03 +00:00
TreeHugger Robot
8ae0cfe36b Merge "Increase content capture buffer size to 500 Anecdotally this should cover typical messaging first screens whereas 100 events seems to be small." into rvc-dev 2020-05-13 01:57:06 +00:00