This CL contains the BackAnimationController, on WMShell, which
controls the gesture based animation.
When the gesture is done, the animation is done. It will be handed over
to a TransisionHandler (in the next CL)
Test: atest WMShellUnitTests:BackAnimationControllerTest
Bug: 131727607
Change-Id: Ifc2ed99bfd51079f12a83468ca44e4aa19460e47
Now failures can be automatically directed to the correct buganizer components and forwarded directly to the correct assignees, instead of being all created into the Winscope for further triage
Test: check owners file
Change-Id: I6876a702b4f46443328aab027f7fee994b2bb819
Support to merge transition to activating remote transition while in
split screen. Like the case openning a normal app from overview during
split screen mode, it'll trigger a new app openning transition which
should be merged back to the remote transition running in launcher side
to finish the recent animation.
If a split dismissing transition was triggered right after recent
transition finished. It might be a no-op transition and thus won't
callback startAnimation. So also reset split screen state and visibility
when finishing transition.
Bug: 206487881
Test: enable shell transition and enter split screen, observed the
transition switching to normal app won't hang.
Change-Id: I9bac5eab844f7835c69f9aad17a5c50dc01a76fa
The surface of closing change will be put in a rotated surface
in previous rotation, so the animation bounds also need to be
in same rotation.
Bug: 214504681
Test: adb shell setprop persist.debug.shell_transit 1; reboot
Launch a landscape activity, and it launches a portrait
activity in new task. The animation should not be cropped.
Change-Id: I680e335786beedc1cac8847cbc9db5fc1bb11807
Bubbles in the overflow might not have an active notification associated
with them, this means if the user disables bubbles for that conversation
through settings we wouldn't be able to know and remove the bubble from
the overflow.
This change pipes the onNotificationChannelModified signal from
NotificationListenerService through sysui & to bubbles for both the
pipeline & NEM version & uses this signal to remove matching bubbles
from the overflow if appropriate.
Test: BubblesTest NewNotifPipelineBubblesTest NotificationEntryManagerTest NotifCollectionTest
Bug: 171235607
Change-Id: I3d4889ece13d550e0cceb20036718faee4887489
Deprecate HAPTIC_FEEDBACK_ENABLED in favor or HAPTIC_FEEDBACK_INTENSITY,
and VIBRATE_WHEN_RINGING in favor or RING_VIBRATION_INTENSITY.
Introduce hidden flag
VibrationAttributes.FLAG_BYPASS_USER_VIBRATION_INTENSITY_OFF
to represent HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING in the
vibrator service. This is applied by:
- PhoneWindowManager, that converts HapticFeedbackConstants into
(VibrationEffect, VibrationAttributes).
- CellBroadcastAlertAudio, that triggers alerts using AudioAttributes
with flags FLAG_BYPASS_INTERRUPTION_POLICY (that translates to same flag
in VibratorManager, to bypass DnD) and FLAG_BYPASS_MUTE (that translates
to this new flag, to bypass the new alarm intensity settings).
The new flag is erased from request that are not from privileged apps,
similar to the other bypass flag. The public
HapticFeedbackConstants.FLAG_IGNORE_GLOBAL_SETTING has also been
deprecated in T with a documentation explaining the removal of platform
support.
Remove SysUI dependencies on the deprecated settings, it should use the
USAGE_TOUCH attribute and rely on the vibrator service to apply the user
settings.
Keep other SysUI dependencies that needs to run in older Android
versions (like Launcher3).
Bug: 185351540
Test: VibrationSettingsTest + manual
Change-Id: I0372e4db19e09523795d7e79b9f7a15ae48a8cd9
This CL introduces the BackNavigationController that gathers the
required data to be passed to WMShell to create the back animation
These data are passed via the BackNavigationInfo Parcelable.
The CL also containes a basic screenshoting mechanism as a temporary
solution until a proper screenshoting infrastructure is created
(b/207481538).
Test: atest BackNavigationControllerTests
Bug: 131727607
Change-Id: Ibd7fc78e590794daf35f7718ddfa53e7f439813b
Previously focus didn't change when entering PIP. On the latest versions it should transition to launcher.
Bug: 198124027
Test: atest WMShellFlickerTests
Change-Id: I323a455f23e912afd9eb6e43b365a289c5159331
This is required for the go/t-activity-transitions where we want to allow apps to fade to a clear background color and fade back in from the background to another activity
Test: atest FlickerTests
Bug: 202844659
Change-Id: Iea18a8e7d32a63da55ab3430c47f903da5cff807
Make sure to delegate recent transition to launcher after split screen
activated.
Bug: 206487881
Test: manual check swipe split-pair to overview panel and swipe to home
behavior
Change-Id: I1177b1efdd7a45e8f9ec162b2155dbea1660e1af
Attempt 2. First attempt broke automated testing that started sending
input as soon as the ActivityWindow was created. Since there are a few
frames where both the SpalshScreen and the underlaying activity is
visible we let touches pass through the SpalshScreen to the underlaying
activity. However if the ActivityWindow doesn't exists the touches will
be blocked by the ActivityRecordInputSink.
This works thanks to the untrusted touches feature in InputDispatcher
that blocks touches that are passing through opaque layers if the layers
belong to different UIDs. By moving the ActivityRecordInputSink layer to
the framework uid and leaving the AcitvityWindow and the splashscreen
belonging to the application uid we achive the separtion we want:
SpalshScreen are touch opaque cross uid, but are non-touchable within
the same uid.
Test: atest CtsInputTestCases:android.input.cts.InputShellCommandTest
Test: Manually verified that touches will no longer pass through the
StartingSurface to the ActivityRecordInputSink
Bug: 194480991
Bug: 208659130
Bug: 211748378
Change-Id: I35ee6b40c108607c17dbf65fcd74656aec9c2a87
Also, moved logging close to where the action happens
Bug: 214434985
Test: $ANDROID_HOST_OUT/bin/statsd_testdrive -terse 90
Change-Id: I2fa3518820ba134d6e9d305c4517a2624ea4b299
* changes:
DO NOT MERGE Revert "[2/n] Camera Compat UI: Add interfaces for client-server..."
DO NOT MERGE Revert "[3/n] Camera Compat UI: Add a camera compat control."
DO NOT MERGE Revert "Log the CameraCompatControlEventReported atom."
Revert submission 16468379
Reason for revert: Feature development is moving to T.
Reverted Changes:
Id9b9a8930:[3/n] Camera Compat UI: Add a camera compat contro...
Id6be4a954:Enable a camera app compat control on Large screen...
I083aa6718:[2/n] Camera Compat UI: Add interfaces for client-...
Bug: 206602997
Change-Id: I9ad876043fd61f708a8f468fffd1ef371bfa0866
Revert submission 16468379
Reason for revert: Feature development is moving to T.
Reverted Changes:
Id9b9a8930:[3/n] Camera Compat UI: Add a camera compat contro...
Id6be4a954:Enable a camera app compat control on Large screen...
I083aa6718:[2/n] Camera Compat UI: Add interfaces for client-...
Bug: 206602997
Change-Id: I318b89b87cd3b05a3f3dcd428e3d80fe81465011
This doesn't result in an issue with existing code but with some changes
in how the animation works, this will become an issue.
e.g. you can get a null target when it should be non-null which changes
whether the animation is a switch between targets vs a new drag into a
target.
Test: manual - with new animation code, put two apps in split and then
drag a new one into split and move it between containers,
the animation should look like a switch (color changes
seamlessly rather than a jump to transparent).
Bug: 207011867
Change-Id: I6d9c892654cbd57742bdf3268a8ab343f0fd3d3b
Before, the surface will be removed, and the children will be reparented
to root in a separate transaction when animation is done. That would
cause a flicker because the reparented children may be above the
rotation activity.
Bug: 206094140
Test: manually test expanding PIP
Change-Id: I0f16b7590d4bd0f4c377158d555cb94f28f134cd