Commit Graph

504 Commits

Author SHA1 Message Date
Winson Chung
69aebfc9ec Tweaking workaround to use fallback with null buffer
- This case still shouldn't ever happen, but we're still
  getting crashes. It looks like the call to wrapHardwareBuffer
  will always create a hw buffer even if the graphic buffer
  is null, and the internal call to wrap the hw buffer may
  not have the flags if a null buffer is provided.

Bug: 157562905
Test: Haven't been able to reproduce
Change-Id: Ia61809a4dc53317139446d099cfa262c095d2aea
Merged-In: Ia61809a4dc53317139446d099cfa262c095d2aea
2020-07-07 23:55:23 +00:00
Winson Chung
10250f67f1 Merge "Workaround for crash from invalid snapshot" into rvc-dev 2020-06-18 17:56:24 +00:00
Winson Chung
c8ba260b4d Workaround for crash from invalid snapshot
- wrapHardwareBuffer will throw an illegal argument exception when
  the buffer doesn't have this flag, but it's not clear how this
  happens yet because all the buffers should be from surface flinger
  snapshots...

Bug: 157562905
Test: Manual
Change-Id: I48be367d8aafb3e17f11a73a73432617a247c0dd
Merged-In: I48be367d8aafb3e17f11a73a73432617a247c0dd
2020-06-18 16:33:24 +00:00
Vishnu Nair
2ed39d82db WM: Replace eEarlyWakeup flags with explicit eEarlyWakeup start and end flags
eEarlyWakeup flag is used as a hint to SurfaceFlinger to adjust its
offsets so it can wakeup earlier and have sufficient time to compose
more complex scenes.

This flag has been replaced with explicit start and stop flags which
ensure the SurfaceFlinger offsets remain consistent during animation.

Bug: 158127834
Test: go/wm-smoke
Test: systrace to verify new tracepoint and offset behavior

Change-Id: Ib9c35c01a6bf02f88ec7cb1778e01909bd2f9055
2020-06-17 23:10:30 +00:00
Winson Chung
f9ef08d7ff Adding blur supported check to shared lib
Bug: 157946272
Test: Manual
Change-Id: I4b8b63e9096d27a06896058b41c8e2cec271dd0d
2020-06-11 23:10:34 -07:00
Tony Huang
4b8795d560 Align PiP animation and touch on vsync-sf
Align animation and touch on vsync-sf to reduce jank

Bug: 157470918
Test: Enter PiP and move it
Test: atest PipAnimationControllerTest
Change-Id: I75506bb87a5e5b9a4d2f94c0a92e0a3fa25e060f
2020-06-10 11:53:34 +08:00
Vinit Nayak
bedb9f33c2 Pass displayId to onActivityRotation()
Bug: 154580671
Change-Id: I220e1e9ac1a381c6ebadc3849a393225d1f53e3e
2020-06-04 17:15:32 -07:00
Vinit Nayak
38dbc97939 Merge "Add new callback for when activity rotates" into rvc-dev 2020-06-04 04:21:10 +00:00
Zak Cohen
4cfb590a28 Screenshot - pass bitmap as bundled hardware buffer from Launcher
When passing a screenshot from Launcher to Sysui it should be passed
as a hardware buffer inside a bundle to avoid copying the underlying pixels.

Change also adds userid and component when a screenshot is passed.

Bug: 157380566
Bug: 156757117
Test: local
Change-Id: I531f1d1a41d179a257fe7202b68a6d1a78cc0f79
2020-06-03 16:09:57 -07:00
Sunny Goyal
a38a553c16 Merge "Using inline definition of FrameDrawingCallback instead of lambda as it fails on some devices" into rvc-dev 2020-06-03 20:21:28 +00:00
Vinit Nayak
66bf45ffa8 Add new callback for when activity rotates
Launcher needs to distinguish display changes
that result naturally vs apps that launch
in a fixed portrait/landscape rotation during
the quickstep gesture.This callback helps anticipate
if a subseqent onDisplayChanged() will
have resulted from a natural rotation or not.

Bug: 154580671
Change-Id: I59ee7985a9f367e8fc5826c08476c1a25d1426b0
2020-06-03 10:55:42 -07:00
Zak Cohen
cdd1a3dc6c Adds BitmapUtil for dealing with hardware buffer wrapped bitmaps.
Test: local
Bug: 156757117

Change-Id: Ic44a93ca33e538471245b22701584ec925939293
2020-06-02 16:28:52 -07:00
Sunny Goyal
d0642f706f Using inline definition of FrameDrawingCallback instead of lambda as it fails on some devices
Bug: 148194313
Test: None, just a guess that it will fix the issue
Change-Id: Ifec1d27992752bded82a0091e29daff9e8d25d46
2020-06-02 12:41:21 -07:00
Govinda Wasserman
bd09c172ea Adds Assistant invocation time stamp to ActivityManagerWraper
Test: Tested locally
BUG: 153963643
FIX: 153963643
Change-Id: I75809cf64c1bf8db19893e59d1b62dcf5a06c5c7
2020-05-21 11:03:04 -04:00
Sunny Goyal
2148254452 Sending split screen stack change to Launcher whenever it changes,
instead of Launcher pulling it

Bug: 155816922
Test: Verified with Launcher changes
Change-Id: I45920f8730740c819c63878857c3b5acbe12097a
2020-05-19 18:14:04 +00:00
Winson Chung
9467454820 Add global actions to sysui state for handling with gesture nav
Change-Id: I2cdea6761e6665c8f863937eff33a8272381b6e9
Merged-In: I2cdea6761e6665c8f863937eff33a8272381b6e9
Bug: 155499313
Test: Swipe back while global actions are showing over the lockscreen
2020-05-18 17:08:05 +00:00
Vishnu Nair
4880a30fe0 Remove divider view when exiting splitscreen
Remove and re add divider view as needed so we do not allocate memory
while split screen is not active. Also release surface reference from
server when we are done with the SurfaceControl so we don't have to rely
on GC to remove the last reference.

Fixes: 150190730
Test: test split screen manually, check for offscreen or onscreen
divider layers in winscope

Change-Id: I1a6a1c1d4346aafeae85aaf61ec4df23722e75ab
2020-05-08 18:10:47 +00:00
Sunny Goyal
076fc59314 Removing some deprecated methods
Test: Presubmit
Bug: 155669898
Change-Id: I1e4d1ab89feaa3415d140b38e1f70ac65f8f4208
2020-05-04 12:49:42 -07:00
Sunny Goyal
226849f197 Exposing some ViewRoomImple methods in shared lib
This would allow us to implement SyncRtSurfaceTransactionApplierCompat directly in Launcher
so that we can better handle surface lifecycle

Also removing java 7 restriction from librayr as the latest gradle properly handle java-8 jars

Bug: 148885018
Bug: 148194313
Test: Verified jar works with Launcher
Change-Id: I57adfea4b41ce12c8f8f2697dc554feca7ccc6b6
2020-05-01 15:48:04 -07:00
Dave Mankoff
59a83b8634 Pass actual plugin to PluginInstanceManager.MainHandler.
Was previously passing PluginInfo where Plugin was needed.

Bug: 146033031
Test: manual
Change-Id: Idf3bf647206f4cc21ea4eeabad93ba8106cf2d17
2020-04-28 11:25:57 -04:00
TreeHugger Robot
bb4a7486de Merge "Disconnect plugins on the main thread." into rvc-dev 2020-04-27 21:46:44 +00:00
Dave Mankoff
308c90f77c Disconnect plugins on the main thread.
Fixes: 146033031
Test: atest SystemUITests && manual
Change-Id: Icc5612b2d7129e146ec02df04e473d340b0d8b40
2020-04-27 15:31:56 -04:00
Evan Rosky
8d1c24e0a5 Inform receivers of restart attempt previous visibility
This way receivers like recents know whether the activity
was already visible before a restart attempt.

Bug: 154575664
Test: added test. Can also launch a running activity into
      split-primary and it won't expand it.
Change-Id: If59ee1615fa36bbe3af9412194a7f96b9377528a
2020-04-27 09:13:31 -07:00
Ming-Shin Lu
49ccdb557f Merge "Add test APIs for makeCustomAnimation" into rvc-dev 2020-04-17 03:33:51 +00:00
Hyunyoung Song
5912900406 Merge "Remove SystemUI-statsd out of SystemUISharedLib" into rvc-dev 2020-04-13 20:10:18 +00:00
Hyunyoung Song
3d89c931f3 Remove SystemUI-statsd out of SystemUISharedLib
Bug: 148533500
Test: builds
Change-Id: I8609409b35d34902bf1fd3f8b308cc2825cf437c
2020-04-11 16:50:59 -07:00
TreeHugger Robot
c3721ac874 Merge "Deprecates the animatingBounds from WM to SysUI" into rvc-dev 2020-04-10 23:13:52 +00:00
Hongwei Wang
3c981f6eb7 Deprecates the animatingBounds from WM to SysUI
PipTouchHandler, similar to other components in SysUI, should be in-sync
with the destination bounds calculated within SysUI rather than WM.

Fixed also the empty movement bounds upon the first call to
PipTouchHandler#onMovementBoundsChanged. Together, this change should
fix the PIP not being lifted on IME show up. PipTouchHandlerTest is
updated correspondingly.

Bug: 153352899
Test: manually enter/exit PiP
Test: atest PipTouchHandlerTest
Change-Id: I2912af2a181b7fb57c6d90751744d46c6b3366d2
2020-04-10 13:47:14 -07:00
lumark
04bceb99f1 Trigger onTaskAppeared when a task started from recents becomes ready.
In quick switch flows, launcher will first swipe task snapshot
through recents animation, and then start new task with custom animation
options through startActivityFromRecents after gesture finish detected,
and then finish recents animation finally.

But that way user may experience flickering before the new task launch
and recents animation finish.

To improve quick switch flickering, we ignore the new task's custom
animation from recents and generate task remote animation target,
and then trigger a callback for launcher to control/animate this
task surface, more like a part of RecentsAnimation,

Also, adding removeTask method for launcher can flexibility remove the
new task animation target once no need to animate, so that launcher
can decide when to finish recents animation.

Bug: 152480470
Test: manual as below steps:
  1) Doing quick switch task.
  2) Make sure launcher can receive onTaskAppeared callback.
  3) Make sure launcher calls removeTask successfully.
  4) Make sure launcher can finish recents animation after 3).
Change-Id: I0692a280a49719229fa8871509bad37a1343a00f
2020-04-10 02:20:03 +08:00
Ming-Shin Lu
b6d7002f36 Add test APIs for makeCustomAnimation
For CTS to verify activity custom transition duration
with onAnimationStartedListener / onAnimationFinishedListener
in ActivityOptions

Bug: 150443017
Test: build, atest ActivityTransitionTests
Change-Id: I603ab60a65343f3f336b311064ad55b01ead4929
2020-04-07 21:21:59 +08:00
Tracy Zhou
f1a03e07cd Merge "Get rid of usage of Context#getDisplayNoVerify() in SurfaceViewRequestReceiver" into rvc-dev 2020-04-03 20:43:51 +00:00
Vinit Nayak
74153ee3e8 Merge "Disabled back gesture when quickswitching if needed" into rvc-dev 2020-04-03 20:27:50 +00:00
Tracy Zhou
a4b0b8d23c Get rid of usage of Context#getDisplayNoVerify() in
SurfaceViewRequestReceiver

Fixes: 149790106
Test: manual
Change-Id: I903f95317acd05cb6f40343a126194a8a4e41c0b
2020-04-02 14:10:58 -07:00
Vinit Nayak
f848e9d439 Disabled back gesture when quickswitching if needed
We allow quickswitching apps in different
orientations by touchiing in the same region on
the device. To avoid conflicting touches between
the swipe gesture and the back gesture, we disable
the back if the rotation of the swipe location and
rotation of current device do not match.

Fixes: 150250451
Test: Tested quickswitch manually with
test apps fixed to different rotations.
Ensured back only showed when rotation of
touch and display matched.

Change-Id: If3b4d15eb4b66ce688b91d44a2ec16b3610ecf0a
2020-04-01 14:40:40 -07:00
Hongwei Wang
6173317ad8 Merge "Save reentry bounds from SysUI" into rvc-dev 2020-03-30 18:23:19 +00:00
Hongwei Wang
221fe3d905 Save reentry bounds from SysUI
On the other hand, since we won't be able to get the callback from
TaskOrganizer when an activity (used to be in PiP mode) is removed,
reset of the reentry bounds is kept in WM.

Bug: 152549281
Test: manually enter/exit PiP
Change-Id: I8b4b7f87c4a7601d8bdf32af8105a68450012a87
2020-03-27 11:10:12 -07:00
Winson Chung
e5ab0170f8 Skip excluded MW mode tasks from recents and running tasks
- Skip multi-window mode tasks with the exclude-from-recents flag from
  the visible recent tasks list
- Expose a method in LauncherApps to be able to start a shortcut with
  additional intent flags (to add the exclude-from-recents flag)
- Remove unused ActMan path (only ActTaskMan call is used now)
- Refactor the call to get the running tasks, there are currently only
  two usages of getFilteredTasks(), one is to get all the tasks, the
  other is really to get tasks that we will end up using for transitioning
  into the task in recents.

  As such, we can remove the individual ignore flags (it would get more
  complicated if we wanted to filter based on logic like MW mode +
  excluded recents only), and instead have a boolean that filters the
  running tasks based on whether they would ever show in recents at all,
  with the exception of the home and recent tasks.

Bug: 152133859
Test: atest WmTests:RunningTasksTest
Test: atest WmTests:RecentTasksTest
Change-Id: Ia4f5fd37228c72ce449490f948e923afba821bb2
Signed-off-by: Winson Chung <winsonc@google.com>
2020-03-25 09:29:29 -07:00
Joshua Tsuji
be60a58a60 Adds SYSUI_STATE_BUBBLES_EXPANDED to QuickStepContract.
Also, modifies bubbles to update this value when bubbles are expanded or collapsed.

This will work in concert with the other CLs in this topic to collapse bubbles (but not the app behind it) when a swipe-to-home gesture occurs. It will not affect the behavior of the home button in three-button nav.

Test: atest SystemUITests
Bug: 146167884
Change-Id: I825afc7fa58c66e92a277bf94876c23917c412da
2020-03-23 17:17:29 -04:00
Govinda Wasserman
2da3da62d9 Merge "Allows the Assistant to request suppression of fling" into rvc-dev 2020-03-16 12:12:56 +00:00
Govinda Wasserman
53ce01cc35 Allows the Assistant to request suppression of fling
Test: Tested locally
BUG: 150688842
Change-Id: I8e8b2ccb87d9ff48d5a287f12ca9a6a2240a2cdb
2020-03-13 09:29:52 -04:00
Robert Carr
271d9c76b6 SurfaceControlViewHost: Respond to API feedback
API Council provided the following feedback:
	1. Rename addView() to setView()
	2. Add getView()

Bug: 151311937
Test: Existing tests pass
Change-Id: I26665c8bb8d0c10c5eb4228feb4ff13ee89f0d7b
2020-03-12 13:14:42 -07:00
Lucas Dupin
888edd6fdc Merge "Implement wallpaper zoom hooking it to the shade" into rvc-dev 2020-03-12 04:07:51 +00:00
Winson Chung
cfdd34adab Merge "Always notify SystemUI when launching activity to existing task" into rvc-dev 2020-03-11 02:28:09 +00:00
Lucas Dupin
13f4b8a158 Implement wallpaper zoom hooking it to the shade
This adds a notion of per caller wallpaper zoom, in order to support
simultaneous clients.

The shade might be pulled down while in overview, for example, and we
must coordinate between launcher and systemui.

Bug: 149792636
Bug: 146387434
Test: atest NotificationShadeWindowViewTest
Test: atest WallpaperControllerTests
Test: manual
Change-Id: I588ba56d3d2704845d033ea2a5890ce812b9ee07
2020-03-10 10:52:28 -07:00
Tracy Zhou
705e25deb1 Merge "Support scaling with SurfaceControl when using WindowlessWindow APIs" into rvc-dev 2020-03-10 09:27:30 +00:00
Tracy Zhou
6470c60273 Support scaling with SurfaceControl when using WindowlessWindow APIs
Demo: https://drive.google.com/open?id=1wQ8dT5bfTxSh-NRQpNBwTCkKOtOOUMPj

Bug: 150224413
Test: Manual test on both universal smartspace and wallpaper preview
Change-Id: I604e5a43727035cbeb36f02681fc317fd356268a
2020-03-10 00:06:34 -07:00
Winson Chung
e789ff64c8 Always notify SystemUI when launching activity to existing task
- SysUI can determine what to do based on the type of activity launched
  (ie. expand PIP/Bubbles to fullscreen)

Bug: 148977481
Test: atest TaskStackChangedListenerTest
Test: Launch app in split primary, ensure launching app again triggers
      recents
Test: Launch app in PIP, ensure launching app again triggers it to go
      fullscreen
Test: Launch app in bubble, ensure launching app again triggers bubble
      to expand
Change-Id: I754a71a72dd0e660930b19acbf9fe6ccbb453152
2020-03-10 03:46:48 +00:00
lumark
2ec1912dfb Add localBounds in RemoteAnimationTarget
With Hierarchical animation, the animation layer will no longer
be a fixed fullscreen layer but animate on the parent container's surface.

In order to run a remote animation, the animation controller needs to
know bounds of the target relative to both its parent and the screen.

The CL includes:
1) RemoteAnimationTarget changes:
    - Add localBounds field for indicating the target bounds which
    the coodiates relatives to its parent.
    - Add screenScreenBounds field to replace souceContainerBounds
      to reflect the target bounds relatives to the screen.
    - Mark position & sourceContainerBounds as deprecated.
2) Modified related places to set correct localBounds information.

Test: build / run, make sure installing the old version of launcher on
      the this new platform change still compatible without crash.
Test: manual as follow steps:
  - Launching app from launcher to split-screen secondary stack
  - Swipe up to overview screen and drag TaskView to see if the TaskView
    surface is shfted, expected is not.
Bug: 148780840
Change-Id: Id9dbf6de193ab73fe94bc24ef6a27edc93380a14
2020-03-09 22:24:17 +08:00
Tracy Zhou
417fa7eac8 Turn on hardware acceleration flag on the windowless window we render
Bug: 150224413
Test: Manual. Make sure universal smartspace still works as intended.
Change-Id: I9ed867ca1612b5c016e97765ebf077051c5da23c
2020-03-06 15:36:37 -08:00
Winson Chung
5570147aa0 Ensure that task org updates all happen off the main thread
- Move the animator to be called on the update thread
- Move the calls on task org to update on that thread as well
- Cache the leash and token to ensure we don't make binder calls to fetch
  the leash on each frame of the animation
- Don't align with SF vsync now that we're driving the surface animations

Bug: 150810666
Test: Enter PIP, move it around
Test: atest PipAnimationControllerTest
Change-Id: Id05980529681f892638f52f492262fde246cac20
2020-03-05 17:33:02 -08:00