User can enter recents animation while a showWhenLocked activity on top
of keyguard by touch down navigation bar. In legacy, Launcher start the
recents animation by keep the original top activity on top. But for
shell transition, Launcher will start home activity with transient
launch flag. When core receive start activity request, unlike
startRecentsAnimation, core will try to move the activity to top, which
break the keyguard occluding state, so the keyguard will pop up on
screen before dismiss recents animation, and there is not have enough
information for shell know whether to hide the surface of the original
top activity.
To make the occluding state unchange during start transient launch, we
do not resume the launcher activity, also we do not move it to top. So
what we need to do is to collect the surfaces from launcher + top
occluding task + wallpaper and send this transition to shell.
Another change is Launcher will finish recents animation by calling the
RecentsAnimationController directly without start home activity. By
determine the top activity when set restoreTransientOrder, there will
update the hierarchy, which may change the occluding state and decide
whether to play unoccluding animation.
Bug: 230582311
Test: monitor no strange animation when running atest KeyguardTests
Test: enable shell transition. Start showWhenLocked activity while
keyguard showing. Scroll up to dismiss the activity and verify the
activity and home shall be stopped and only keyguard remains on the
screen.
Also verify entering recents works fine when device is unlocked.
Change-Id: Ia16fa01fdc09547cfb3ae1370875ac70f07ede8d
* Remove existing coloured background.
* Add a background with a layout that includes a
badged icon of the app being opened.
Manual testing steps:
* Set up device with a work profile using TestDPC
* Set a fingerprint in the work profile
* Open a work app
* Lock the device
* Verify the background protection is shown behind
the biometric prompt
Screenshots:
* Dark mode: https://screenshot.googleplex.com/3SwGWrBREYoZFaH
* Light mode: https://screenshot.googleplex.com/8bzX9wLoFGJ2ado
Bug: 206761107
Test: Manual testing
WorkLockActivityControllerTest
TaskStackListenerImplTest
Change-Id: I90d117a97d7457a3186953c16db8bd0bbac048ed
No behaviour changes in this CL.
Extracted classes related to the fold/unfold
animation (that plays on foldable devices) to
a separate library that does not depend on
system classes. This is necessary to ease
reusing these classes in live wallpapers.
Bug: 231936088
Test: fold/unfold device
Change-Id: Ic1e1ec742867fca9c1209b930accd5738de18e39
For new split screen, we are using supportsMultiWindow and other
multi-window features should use it too so remove
supportsSplitScreenMultiWindow and update some files which still
use it.
Bug: 199236198
Test: pass existing tests
Change-Id: I3b3ec3376a4c79295f9d9f913585534a3815e75a
Removes the last call to Dependency#get from NavigationBarView. A few
more calls were added in the process, but they will be easier to deal
with in future cls.
Bug: 218354102
Test: manual && atest SystemUITests
Change-Id: I0b6b3837d9f1cfd11f0cdb4089fb51ecf79b467b
Merged-In: I0b6b3837d9f1cfd11f0cdb4089fb51ecf79b467b
Removes the last call to Dependency#get from NavigationBarView. A few
more calls were added in the process, but they will be easier to deal
with in future cls.
Bug: 218354102
Test: manual && atest SystemUITests
Change-Id: I0b6b3837d9f1cfd11f0cdb4089fb51ecf79b467b
Merged-In: I0b6b3837d9f1cfd11f0cdb4089fb51ecf79b467b
Move the functionality for wrapping an uncaught exception pre-handler
from PluginManager to a standalone manager. Make DumpHandler register
another uncaught exception pre-handler that will tell the log buffer
eulogizer to dump contents to a file.
Fixes: 213884413
Test: manually verified, added tests, and ran atest
Change-Id: If829fc33769819624530f766178689ecf0374926
Bug: 222308557
Bug: 216301097
Test: Manual, invoke assistant on the lockscreen and verify you can
go back
Change-Id: I675a0c694b8d85e7cd67f7a550fe8e8ab85e9ad2
See justification/explanation in linked bug.
I re-ordered some methods in the unlock controller so they'd make more sense,
they're generally called from top to bottom now during the unlock sequence.
Bug: 229890190
Fixes: 227713319
Test: atest SystemUITests
Test: manual
Merged-In: I58fa437eea183691ff29548143664698498c2105
Change-Id: I58fa437eea183691ff29548143664698498c2105
Initializes move from center animator for the statusbar
views with 1f progress, so when the device is booted
in unfolded state and rotated it the translation
wil be applied with 1f progress.
When booted in folded mode the progress will start
from 0f so it doesn't affect the animation.
Bug: 229738545
Test: kill sysui in unfolded state, rotate the device,
rotate during fold/unfold animation
Test: atest com.android.systemui.statusbar.phone.StatusBarMoveFromCenterAnimationControllerTest
Change-Id: Ia0d4a44ddc444420d3695cab328558bf2fbe589d
We only wrap leaf-tasks for legacy animations; however, I forgot
to update some places so they were trying to use non-leaf leashes.
Bug: 229758341
Test: atest ActivityVisibilityTests#testTurnScreenOnAttrNoLockScreen_SplitScreen
Change-Id: Iee5c08c8dad268b798b372311a80ddede1a4beaa
Also, add ability to pass in null to invalidateHomeTaskSnapshot
if the correct permissions are held, so that System UI does not
need to IPC to Launcher to ask it to invalidate itself.
Fixes: 229191103
Test: atest SystemUITests
Test: wake and unlock, note no double launcher
Change-Id: I0c547639979460b3a85b0ef0a8bbf760d60054cb
This is needed for split-screen. Since their leaf tasks
are not "independent", Transitions.java will not hide them
in the finish-transaction (it shouldn't because it doesn't
know if the parent is doing the hiding). In recents' case,
though, we know that the tasks will be hidden at leaf-level
(due to being reparented out of split).
Without hiding here, there will be a flicker after it gets
reparented out of the animation leash, but before the app
visibility is committed in WMCore.
Bug: 228883780
Test: Enter split, swipe-to-home.
Change-Id: I9d0fa1542cb82aabbc89998368864107cee56c72
When screen turns on after we received half-folded event
the transition started and didn't end. We had the same issue
when the fully unfolded event was received before screen
turned on. In this case now we forcefully finish the transition.
I added the same behaviour for half-folded case as well.
Bug: 222705041
Test: quick folding/unfolding with only
0/10 degrees hinge angle sensor
Test: atest com.android.systemui.unfold.updates.DeviceFoldStateProviderTest
Change-Id: I964217acaaba77926c43796d16ad00a4ca15203e
Legacy animations only know how to deal with leaf tasks,
so don't give them any non-leaf tasks. We were originally trying
to hack around this by rewriting task-ids and such, but that
seemed a bit fragile and there were likely several places where
that change was still missing.
This CL just switches back to all leafs.
Bug: 228883780
Test: use split-screen in shell-transitions.
Change-Id: Ic18412ea9e20e1b2f133a936c63d1a6576ce50a6
This is to patch the entering PiP transition with YT tablet UI, which is
used in unfolded state and/or tablets landscape mode.
Changed also to use SurfaceControl.Transaction#setCrop instead of
deprecated setWindowCrop.
Bug: 198309223
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/eODHpvqAQPfbwjFamtRYC1
Test: manual, see video
Change-Id: I6fbfea110f9a73faf05ebeb90773dcee58b41328
This change will change the providedInternalInsets from a single insets
to a insets array. The one adding the insets can make use of the array
to apply different insets to the window when calculating the provided
insets by the window for different insets types.
With that, the task bar can provide zero insets for the tappable element
type when stashed.
Bug: 215411414
Test: DisplayPolicyTests
Change-Id: I84cd7ef6a2bc19229d3c09f752f65c83eb5c7dde