Currently the recents activity is started by a pending intent created
by launcher. And the sender is system server.
(HIERARCHY_OP_TYPE_PENDING_INTENT in WindowOrganizerController)
If the intent creator doesn't have visible windows, e.g. launcher is
occluded by its another embedded of another package, then the background
launch policy will check whether the intent sender is allowed. But
system server also doesn't have visible windows, which causes
BackgroundActivityStartController#
checkBackgroundActivityStartAllowedBySender to return BalVerdict.BLOCK.
Which will set MOVE_TO_FRONT_AVOID_PI_ONLY_CREATOR_ALLOWS to disallow
moving the target task to front.
See I72a6c22a5fb27aeac52a4e5d46c6a16e28ee6757 for the block policy.
Although currently the recents activity can still move to front because
some places miss to check blocking the launch. Then it is like just
using a security hole.
By adding the background launch permission hint to ActivityOptions,
BackgroundActivityStartController#hasBalPermission will check if the
real caller has permission START_ACTIVITIES_FROM_BACKGROUND. Then
it will pass because the intent sender is system server.
Bug: 341618283
Flag: EXEMPT bugfix
Test: atest NexusLauncherTests: \
com.android.quickstep.TaskAnimationManagerTest
Test: Swipe to minus one screen. Click a news item to Launch chrome.
Swipe from bottom to return to home. There should not have an
error log:
"Without Android 15 BAL hardening this activity would be moved
to the foreground ... only the creator of the PendingIntent
allows BAL. realCallingPackage: android.uid.system:1000 ..."
(from ActivityStarter#logPIOnlyCreatorAllowsBAL)
Change-Id: I19153f6553c09421bca248d4ff9110d168b34f98
This CL makes changes to the "split divider placeholder view", which was intended to cover up the backdrop a little during the split confirm animation. The placeholder view is now larger (fullscreen) and fades in with the animation movement, so there is no longer a period of time when it looks like an awkward rectangle.
New timings and interpolators confirmed with UX. Also renamed some variables and added comments for clarity.
Fixes: 344573331
Test: Manually verified that the visual bug no longer happens on large and small screen, and from desktop and Overview.
Flag: EXEMPT bugfix
Change-Id: I3b37f2b0478035d7a3181ae7c23962fe75a13b2c
Merged-In: I3b37f2b0478035d7a3181ae7c23962fe75a13b2c
(cherry picked from commit 91fb2f2e5e)
When the app provided source rect hint does not match the aspect ratio,
by a certain threshold, we ignore that and in turn apply content overlay
during the enter animation, to avoid size change at the end.
In button-navigation mode, some special logical's applied as to crop the
content to its shorter edge for this case, which is inconsistent and we
will address that later in a separate change set.
Video: http://recall/-/aaaaaabFQoRHlzixHdtY/d4kLspMrqb7Xsc2JtkTW0m
Flag: NONE bug fix
Bug: 338616637
Test: Enter PiP from zoomed and non-zoomed video
Change-Id: I5059553cb9b6c02810e9638bfaf29dde9ab6140f
Added return statement if flag is set to false.
Bug: 335575529
Flag: com.android.wm.shell.animate_bubble_size_change
Test: BubbleBarViewAnimatorTest
Change-Id: I21aaee7b802ace87f68ba6ae84565f925010d673
Launcher has calculated it, so shell side can use it directly to
avoid inconsistency.
Bug: 331315278
Test: Assume the target app support auto-pip and it doesn't draw
under display cutout.
E.g. LAYOUT_IN_DISPLAY_CUTOUT_MODE_SHORT_EDGES
Enter PiP from 90 degrees to home with 0 degrees.
The left side of pip should not flicker.
Change-Id: Id09efc8a30eeef14a031d9db2ab1e00b6f3034bc
Added animation for the updates of bubble bar icon sizes and padding
Fixes: 335575529
Flag: com.android.wm.shell.enable_bubble_bar DEVELOPMENT
Test: BubbleBarViewAnimatorTest
Change-Id: I07d66b3a9d565f4fa6040c3c4bf4866e4d81a3a6
Verify the text after it's collected. I ran the test 20 times and
couldn't find the stale object exception being thrown.
Bug: 340341450
Bug: 339737008
Test: Manual
Flag: com.google.android.apps.nexuslauncher.enable_inject_private_space_tile
Change-Id: Ib153205db36cdd8b5fba4734b8b68930857659ff
This CL makes changes to the "split divider placeholder view", which was intended to cover up the backdrop a little during the split confirm animation. The placeholder view is now larger (fullscreen) and fades in with the animation movement, so there is no longer a period of time when it looks like an awkward rectangle.
New timings and interpolators confirmed with UX. Also renamed some variables and added comments for clarity.
Fixes: 344573331
Test: Manually verified that the visual bug no longer happens on large and small screen, and from desktop and Overview.
Flag: EXEMPT bugfix
Change-Id: I3b37f2b0478035d7a3181ae7c23962fe75a13b2c
- refactor FirstScreenBroadcast.java into FirstScreenBroadcastHelper.kt
- send Extras to include installed/archived items on first screen
- send Extras to include installed/archived widgets on all screens.
- truncate items to limit Broadcast size
Bug: 322314760
Test: unit testing and E2E test of B&R
Flag: launcher_broadcast_installed_apps
Change-Id: I214149ac0c63f177d3d1ca0b6d0cb11be37f4ae0
Bug: 302041971
Test: Manual checking of overlay refreshes in bug repro case - live tile and select
Test: Manual checking of no additional overlay refreshes on non-live tile select
Test: Manually ensured no additional overlay refreshes while scrolling
Test: presubmit
Flag: EXEMPT bugfix
Change-Id: I5d455560d0bf816f86042078a662f06f5d1397bb
Focus is not requested until the open animation finishes, so we need to
emulate the animation completing.
Test: TaskbarAllAppsControllerTest
Flag: TEST_ONLY
Fix: 346394798
Change-Id: I5ba57e9bb1813c159599b31404a28ef10c85e3ee
Flag: NONE - fixing tests
Test: built and ran locally, verified test pass in presubmit
Bug: 224595066
Change-Id: Ifefab1e1696853c5bd816a361314082073ba8a20
Flag: NONE - abstraction with no logic changes.
Test: Built and ran locally, for launcher3 and third party launchers
Bug: 224595066
Change-Id: I9da15bdd649d3a20e98c6552bb9e9abaec72f97f