Commit Graph

15982 Commits

Author SHA1 Message Date
TreeHugger Robot
d536757acd Merge "Revert "Make sure launcher side can animate divider"" 2021-12-22 18:04:27 +00:00
Chet Haase
29d27008a7 Merge "Enable path clipping for View outlines" 2021-12-22 17:38:30 +00:00
Linus Tufvesson
477d9d86a1 Merge "Revert "Make Splash-screens touch opaque"" 2021-12-22 16:43:34 +00:00
Linus Tufvesson
cfe6b04588 Revert "Make Splash-screens touch opaque"
This reverts commit c5b7502174.

Reason for revert: Breaks InputShellCommandTest

Bug: 211748378
Change-Id: I89f551a4cb8e93338a5e3aa0ecdfe02d7bfff075
2021-12-22 14:53:41 +00:00
Nataniel Borges
787a8c7d4a Revert "Make sure launcher side can animate divider"
This reverts commit 2fa2671b02.

Reason for revert: This breaks SF when running flicker tests for quick switch

Change-Id: If0cfe67801b3ea55e480b42f0ceb75221563b0c7
2021-12-22 14:36:00 +00:00
Pablo Gamito
3447e5cf43 Merge "Add support for WindowAnimationStyle theme attribute in shell" 2021-12-22 12:05:40 +00:00
Linus Tufvesson
2a2243541a Merge "Make Splash-screens touch opaque" 2021-12-22 09:57:57 +00:00
Jerry Chang
75b0ade1e8 Merge "Integrate keyguard behavior in split screen with shell-transition" 2021-12-22 03:52:25 +00:00
Pablo Gamito
a4843175bf Add support for WindowAnimationStyle theme attribute in shell
Test: Make sure apps with custom animations set using WindowAnimationStyle actually use the custom animation when shell is enabled

Bug: 206960607
Change-Id: I1d982870837d67c74f76dd0a90aa5260d9441aba
2021-12-21 20:27:20 +01:00
Winson Chung
e1fced0774 Merge "Add debug logging for null task list" into sc-v2-dev am: cb1f78f054 am: 0ef5032c45
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16486954

Change-Id: I873db452bd00f8f74d5444004605de75c7e6273f
2021-12-21 18:10:42 +00:00
Winson Chung
0ef5032c45 Merge "Add debug logging for null task list" into sc-v2-dev am: cb1f78f054
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16486954

Change-Id: I36850a0f60ce0b8a09912f010499d4d67622aed0
2021-12-21 17:53:29 +00:00
Winson Chung
cb1f78f054 Merge "Add debug logging for null task list" into sc-v2-dev 2021-12-21 17:35:08 +00:00
Tony Huang
2fa2671b02 Make sure launcher side can animate divider
Fix divider target should pass to remote animation runner and add
mIsDividerRemoteAnimating flag to eusure launcher side controlling
the divider surface and shell side do not controll until remote
animation finished.

Bug: 202914644
Test: manual
Test: pass existing tests
Change-Id: I6411a609268274355a38c72fcb5d628b76b2340c
2021-12-21 14:40:40 +08:00
Winson Chung
f4cc0faac1 Add debug logging for null task list
Bug: 206648922
Test: Adding logs
Change-Id: If2eec374eafd1287253404ba9d6af00612d9be5c
2021-12-21 06:09:57 +00:00
Jerry Chang
7843221505 Integrate keyguard behavior in split screen with shell-transition
Support to hide the divider bar when keyguard showing and support to
dismiss split after unlocked on folded device. Also unbind
show-when-locked split dismissing flow with stage visibility changed
callback to simplify the code.

Bug: 206487881
Test: atest WMShellUnitTests
Test: trigger split, won't see divider bar showing above keyguard.
Test: trigger split, fold the device and unlock will dismiss split. And
      there's no such split pair in recents.
Test: trigger split with show-when-locked activity, it'll dismiss split
      when it's occluding keyguard.
Change-Id: If536121ef0cae4acda12268ffb32024a9736bacd
2021-12-20 14:16:05 +00:00
Chris Li
52e1f36763 Merge "Set PIP corner radius when enter" 2021-12-20 12:37:08 +00:00
Tony Huang
36b5dd8b5f Handle split rotation in rotation callback
By current split design, we always update bounds and apply WCT on
DA info changed callback. However, with shell transition, we should
avoid apply WCT while transition running.

Add display rotation callback we used in legacy split to new split
and apply bounds on such callback. This can ensure that WCT sync to
running rotation transition.

Bug: 206872147
Test: manual
Test: pass existing tests
Change-Id: I358a00ab6ecfb56ececcc93204a78366c48cabda
2021-12-20 17:33:45 +08:00
Chris Li
862c4118d4 Set PIP corner radius when enter
Before, it didn't set the corner radius on the finish transition, so the
corner radius is set to 0 when finished.

Bug: 210965679
Test: atest WMShellFlickerTests:PipRotationTest
Change-Id: I7a3c478ef36a4bb730f2153d6b2487a41a469545
2021-12-20 15:13:45 +08:00
Mariia Sandrikova
d77c92a3f1 Merge changes from topic "camera-compat" into sc-v2-dev am: 3486eacda3 am: 02a17e7b1f
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16468379

Change-Id: Ic9916a3883eef0148a86c86149aa2e883fc56d1b
2021-12-18 22:19:12 +00:00
Mariia Sandrikova
02a17e7b1f Merge changes from topic "camera-compat" into sc-v2-dev am: 3486eacda3
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16468379

Change-Id: I1e56abcef9715a3dd6a00d70cb815c4d9260175a
2021-12-18 21:59:31 +00:00
Mariia Sandrikova
3486eacda3 Merge changes from topic "camera-compat" into sc-v2-dev
* changes:
  [3/n] Camera Compat UI: Add a camera compat control.
  [2/n] Camera Compat UI: Add interfaces for client-server communication.
2021-12-18 21:39:13 +00:00
Mariia Sandrikova
13e80fd997 [3/n] Camera Compat UI: Add a camera compat control.
Test: atest WMShellUnitTests
Bug: 206602997
Change-Id: Id9b9a89303387c4ac797fc1382967151a13d38ef
2021-12-17 00:20:19 +00:00
Mariia Sandrikova
24f4d8a952 [2/n] Camera Compat UI: Add interfaces for client-server communication.
Changes:
- Listens to changes from the client coming through IActivityClientController#requestCompatCameraControl to ActivityRecord#updateCameraCompatState
- ActivityRecord#updateCameraCompatState sends updated state via TaskInfo to WM Shell
- ITaskOrganizerController#updateCameraCompatControlState to dispatch the user interactions with the control from WM Shell triggers callback to ActivityRecord#updateCameraCompatStateFromUser
- ActivityRecord#updateCameraCompatStateFromUser remembers the user's choice and asks client to apply treatment through ICompatCameraControlCallback

Feature is guarded with config_isCameraCompatControlForStretchedIssuesEnabled

Test: atest WMShellUnitTests:ShellTaskOrganizerTests, atest WmTests:ActivityRecordTests
Bug: 206602997
Change-Id: I083aa6718bd67456bedd9444e9b78740c041f870
2021-12-17 00:18:57 +00:00
Derek Sollenberger
d324ac4c03 Merge "Expose android.graphics.RuntimeShader API" 2021-12-16 18:00:31 +00:00
Derek Sollenberger
e09fbeed9a Expose android.graphics.RuntimeShader API
In addition to exposing the API to the SDK this CL expands the
number and type of APIs available to modify the uniforms. For
uniforms that resolve to the primitive types of 'float' or 'int'
there are five different entry points for each whose purpose is
twofold. First, these entry points map directly to the GLSL
types (e.g. float, vec2, vec3, vec4, float[]) that these uniforms
are bound to.  Second, for animations these uniforms can be updated
every frame and avoid unnecessary java array allocations was also
motivation for using this pattern instead of varargs.

Bug: 189102731
Test: atest CtsUiRenderingTestCases:RuntimeShaderTests
Change-Id: I4870acd7656095c9d413e708a3150c10134e8afd
2021-12-16 13:33:31 +00:00
Jerry Chang
fdf92de82a Merge "Integrate RecetsTaskController with shell-transition" 2021-12-16 09:01:25 +00:00
TreeHugger Robot
94ac5aaac7 Merge "No need for stencil buffer for A8." 2021-12-16 03:58:27 +00:00
Leon Scroggins III
c0cc76e56c No need for stencil buffer for A8.
Brought up in I93a20ef8eb7d73b843e002d84d9fe53240a67c59.
Bug: 193170859
Test: manual

Change-Id: Ia401e1c6ac22d0fc2105a14248c427d1f4141807
2021-12-16 02:02:35 +00:00
TreeHugger Robot
d630967a75 Merge "Defer initialization for mEglConfigA8" 2021-12-16 00:25:22 +00:00
Rachel Lee
7834d38d95 Merge changes from topic "surfacectrl"
* changes:
  Pass start time from HWUI canvas context.
  Implement timeline in libandroid ASurfaceControl.
2021-12-15 20:02:30 +00:00
Leon Scroggins III
e040b29e86 Defer initialization for mEglConfigA8
This will only be used by some devices, when requested by SystemUI.
Defer initialization until its needed. This removes the unnecessary
ALOGE. If the device needs A8 and doesn't have it, it will still emit a
fatal log, which will enclude the EGL error.

Bug: 210501051
Test: make
Change-Id: I2c45d910a272e6bf434b8dae52da88fb927ac82a
2021-12-15 14:51:40 -05:00
Mady Mellor
b6d0f141fd Merge "Fix a potential NPE" into sc-v2-dev am: 4b3ea38f9b am: 6f120287c9
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16470586

Change-Id: I27362b4a9b9698f2e1d4ba87ce941050b3e43dd9
2021-12-15 18:21:55 +00:00
Mady Mellor
6f120287c9 Merge "Fix a potential NPE" into sc-v2-dev am: 4b3ea38f9b
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16470586

Change-Id: Iac4afaa1caaf0969346e2c2ada0445a7dbc74be7
2021-12-15 18:21:15 +00:00
Mady Mellor
4b3ea38f9b Merge "Fix a potential NPE" into sc-v2-dev 2021-12-15 18:09:31 +00:00
Linus Tufvesson
c5b7502174 Make Splash-screens touch opaque
Test: Manually verified that touches will no longer pass through the
StartingSurface to the ActivityRecordInputSink
Bug: 194480991
Bug: 208659130

Change-Id: Ib695718623481b5d376a8b221048c69a73c923a1
2021-12-15 15:46:58 +00:00
Tony Huang
841beb6392 Implement crossfade and jumpcut rotation
Implement crossfade and jumpcut rotation animation into shell
transition.

Bug: 194715257
Test: manual
Test: pass existing tests
Change-Id: I12269971b22614ce16fb3329b52fc7bdef25af05
2021-12-15 16:40:46 +08:00
Jerry Chang
d448dc23b6 Merge "Integrate launch-to-side split transition to shell transition" 2021-12-15 06:51:04 +00:00
Jerry Chang
7eccf61dcd Integrate RecetsTaskController with shell-transition
Hook up RecentsTaskController with split screen when enabled
shell-transition. Bundle exit reason and dismiss transition together in
order to log and determine whether the dismiss should break recorded
app-pair in recents or not.

When dismissing split screen with shell-transition, it'll reparent child
tasks out of split screen before they committed invisible, so rely on
fullscreen task opening signal to update app-pair information instead
of relying on visible task appeared or changed in
FullscreenTaskListener.

Bug: 206487881
Test: atest SplitTransitionTests
Test: dump and observe recorded split pair in RecentsTaskController
Change-Id: I109d7b3b2eab2b4f691e85a2afd052f56b1a9bca
2021-12-15 03:39:23 +00:00
Bill Lin
341df3e4c2 Merge "Provides OneHandedController for wm shell features" 2021-12-15 02:27:10 +00:00
Jerry Chang
1b560d8747 Integrate launch-to-side split transition to shell transition
Integrate launch-to-side split transition to shell transition.
Because there is no guarantee for launching activity to split
successfully before actually launching it, trigger enter split
transition after observed new task launching into split.

Bug: 206487881
Test: atest SplitTransitionTests
Test: drag to enter split with shell transition works
Change-Id: Idda7c3b02689753cea1a1fe80264145f1a449f73
2021-12-15 00:52:43 +00:00
Evan Rosky
9af5b0896f Merge "Hook-up shell-transitions to DisplayChangeController rotation" 2021-12-14 23:51:54 +00:00
Mady Mellor
447e4f16e2 Fix a potential NPE
I've never been able to reproduce this and the stack traces I have
of it don't match existing code, but looking at the code paths I think
this could still happen, there are a couple of places where the
mMagnetizedBubbleDraggingOut gets nulled out (e.g. on child removed)
I've tried to repro by:
 - canceling the bubbles in the middle of dragging to dismiss
 - trying to snap the bubble back and then drag it again to dismiss
   (snap back also nulls it)

I see a recent stack of it in pitot so I think it's worth adding the
null check.

Test: atest ExpandedAnimationControllerTest
Bug: 201866808
Change-Id: Ib9425a2b63410c95fddaaea59761dfd18557ed54
2021-12-14 15:21:41 -08:00
Chet Haase
33c1ea73e8 Enable path clipping for View outlines
Clipping Views to Outlines has existed for several releases,
as has providing a Path for shaping Oulines. However, using
a Path-shaped Outline to clip a View against was specifically
disabled internally, due to historical functionality limitations
(prior to enabling Skia for HWUI rendering) as well as performance
concerns.

On current (even relatively low-end) hardware, path clipping is now
sufficiently performant that we are enabling this functionality.
This functionality will be used by AndroidX APIs that enable easier
shaping via paths.

Bug: 201807515
Test: Manual testing including hwui performance tests and CTS
OutlineTest

Change-Id: Ic61d9393cb72c6ad3517954177e5037a383a0c4d
2021-12-14 21:43:05 +00:00
Ben Lin
f591b7ae3c Merge "Update PiP exclusion bounds in TaskBarDelegate." into sc-v2-dev am: c34133ad93 am: 0ec1299cf7
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16434534

Change-Id: Id218d01be8e6f2faba1653f0e5c537f666831d36
2021-12-14 21:15:10 +00:00
Ben Lin
0ec1299cf7 Merge "Update PiP exclusion bounds in TaskBarDelegate." into sc-v2-dev am: c34133ad93
Original change: https://googleplex-android-review.googlesource.com/c/platform/frameworks/base/+/16434534

Change-Id: Ibc6f0eb3c87274aa7bd72e6ba0c104792b3b0447
2021-12-14 21:13:06 +00:00
Ben Lin
c34133ad93 Merge "Update PiP exclusion bounds in TaskBarDelegate." into sc-v2-dev 2021-12-14 20:49:06 +00:00
TreeHugger Robot
772f18a1b6 Merge "Disable failing shell transition tests" 2021-12-14 18:58:19 +00:00
Ben Lin
82865fe924 Update PiP exclusion bounds in TaskBarDelegate.
Navigation bar is only created and used when taskbar is not available.
When taskbar is available, we will use TaskbarDelegate to be the one
responsible to update pip exclusion bounds as PiP moves.

Bug: 210038947
Test: Unfold, enter PiP, stash - PiP can be yanked out
Change-Id: I8f789d3b603e41c3d15494afdadce2cddc4d4b9c
2021-12-14 10:35:50 -08:00
Evan Rosky
c468b590f0 Hook-up shell-transitions to DisplayChangeController rotation
A direct display rotation goes through requestStartTransition
instead of "remote rotation". As a result, we need to hook-up
the handleRequest to shell's displayChangeController so that
other shell components (like task organizers) have a chance
to calculate new bounds for their organized windows.

Bug: 206872147
Test: via logging, ensure that shell DisplayChangingListener
      is fired during a display rotation.
Change-Id: I839ebd28d4947ed3ec41d48724702d035f726f11
2021-12-14 09:32:55 -08:00
Sergey Serokurov
ddae9c92a2 Merge "Do not show overflow after the last bubble dismissed (revised)" 2021-12-14 17:00:20 +00:00