This is the first CL towards implementing the bar type caption which
will have a back button, a handle, and a close button. The caption will
also disappear when the attached task is not in focus.
Still to be implemented:
1: Windowing options appearing on handle click
2: Drag down in fullscreen to enter desktop mode
3: Caption display via hovering when cursor available
Bug: 239960071
Test: Manual: confirm new caption displays with the correct buttons/layout.
Confirm buttons work and focus change works with multiple tasks.
Test: Atest WindowDecorationTests
Change-Id: I2ebed76b803d1f337edc3e7340966909f63eaf40
Update task resizing logic for desktop mode.
Add a new 44x44dp touch region in each corner of the task that is
centered around the corner. This is only used when resizing via touch.
This simplifies task resizing with touches and ensures that task resize
and back gesture do not conflict.
New task resize regions:
- with touch: use 44x44dp rect in each corner
- with mouse: use 30dp wide task edges
TODO:
- investigate how to pass taps in touch corners through to app
Bug: 251270585
Test: using touches to resize task for corners, check that resizing from
edges no longer possible
Test: use mouse to resize task from edges
Change-Id: Ib1aaf69d2971c29a35200b0f3807871343aa1bf8
- Currently, the collection of binders to send to Launcher is inverted
and managed by OverviewProxyService which has to know about each
component directly (and a SysUI interface has to be created to support
this even if there are no other calls in SysUI to that component).
Instead, we should have each component register itself with the
ShellController for controllers which can be exposed to an external
process, and each product can customize which set of controllers it
needs to support.
- Add missing dump registration for ShellController
- Updating docs for creating remote callable controllers
Bug: 238217847
Test: atest WMShellUnitTests
Change-Id: Icd0ed33bdbd68b1dd9d782b9ba1f5b4a604479ba
Merged-In: Icd0ed33bdbd68b1dd9d782b9ba1f5b4a604479ba
There are some juggling between task listeners and the transition
observer of window decors because they are hosts together with its
corresponding task states. This change can remove those juggling by
putting all of them at one place.
Bug: 250622579
Test: atest WMShellUnitTests
Change-Id: Ic1db1633a5e79e2bcea5885b8fc2f345fa05fb1e
This enables the launcher to bring all desktop apps to the front when
launching a new app. This is only enabled when Desktop Mode feature flag
is enabled and Shell transition is enabled.
Bug: None
Test: Manual, launch new apps from launcher
Change-Id: I5ae3941c7d27db3180ea6725a37868416b6649fb
In this changeset topic
- Build WMShell with protolog viewer config
- it's built with SystemUI{,Google} packages and installed as
/system_ext/etc/wmshell.protolog.json.gz
- Deprecated the viewer configuration as a bundled resource
- The `required` keyword in Android.bp does not propagate, need to add
it in individual Android.bp file such as SystemUIGoogle/Android.bp
- Push the generated viewer config file onto device in makepush script
(in a separate CL)
Bug: 244642224
Test: mp sysuig
Change-Id: Ib7f37ec55d12493d6beec3aba66883415966b521
Add startIntentAndTask and startShortcutAndTask APIs to support starts a
pair of intent/shortcut and task to split with shell-transition.
Fix: 250875492
Test: atest WMShellFlickerTests
Test: manual check start tasks or start intent/shortcut with task flow
with shell-transition enabled
Change-Id: Ia79cf5e1990089f2a92895fd09b8f813d9381093
If the device is docked the letterbox edu should not be visible.
Fix: 215098637
Test: Run `atest WMShellUnitTests:LetterboxEduWindowManagerTest WMShellUnitTests:CompatUIControllerTest`
Change-Id: I9ad5274654ed827fc31800d9d6dae5be1fc4baa1
Since split screen has transferred from stage-based model to app-pair
model. Update to remove the stage concept from split screen APIs, so the
caller won't need to deal with stage concept.
Bug: 250875492
Test: atest WMShellFlickerTests
Test: manual check start tasks or start intent/shortcut with task flow
Change-Id: I42a491132052ed87f57ccba9e9ca99b8eddb13de
- Remove some pip methods that aren't used from SysUI
- Migrate an old ISystemUIProxy pip call to IPip
Bug: 238217847
Test: atest WMShellUnitTests
Change-Id: Iab57329a9d79704b0e35fdb22a36594aa4368141
- This should be temporary until we resolve b/238217847 to not
initialize base WM components unless requested to do so
Bug: 238217847
Test: Manual
Change-Id: I205a8e457f12924f797a5cd1a34e499e7efe5a04
Activity could call setTranslucent during a transition playing, if the
task of an activity was in transition and that activity should become
invisible, it would be defer until transition finish.
However, since the activity wasn't participant the running transition,
there won't do commitVisibility for it after transition finish.
To correct the visibility status, trigger another transition so the
activities which visibility changed can be collect and commit.
Bug: 246518648
Test: atest testConvertTranslucentOnTranslucentActivity
Test: atest testConvertTranslucentOnNonTopTranslucentActivity
Change-Id: Ic1cda79da37162cca2a1a3fbc73311cc325b3874
This CL is part of the effort to implement desktop mode changes based on
drag gestures.
Bug: 247551213
Test: Drag a freeform task to the status bar area, confirm it exits
desktop mode for all tasks.
Change-Id: I44c147a4187466f98ab8f15e0bb050a56fbbe415
This ensures we do not show caption bar for launcher or recents.
Test: enable desktop mode, observe no captions for launcher or recents
Bug: 249350122
Change-Id: Id026d73f8894b3fb1a1fed236ae9cd260fba7a70
Adds implementation of providers to get list of
recent tasks, recent task thumbnails and icons.
Adds a method to Shell's RecentTasks interface to
get a provider of recent tasks without using the IRecentTasks
binder object (which is used by Launcher) as we can
call it directly inside SystemUI.
Bug: 240924731
Test: atest com.android.wm.shell.recents.RecentTasksControllerTest
Test: atest com.android.systemui.mediaprojection.appselector.data.ShellRecentTaskListProviderTest
Change-Id: I89579fc8e4e07f6bf656d300ecdbb75bdcb91035
If shell is starting an existing transition, it doesn't need the
returned transition token so it can be an async call then it won't
block shell's thread to execute other operations.
If shell is starting a new transition, then use the new added 2-way
startNewTransition which is the same as the original path.
Bug: 248550757
Test: atest ShellTransitionTests
Test: CtsWindowManagerDeviceTestCases with shell transition
Change-Id: I5f64d19475d5b857a461775dd6f3002567e93ad8
Before, we only crop Task surface when rotate display which may result
janky animation. Now, we also crop other embedded split TaskFragments.
Bug: 207070762
Test: manually verify with rotate embedded split app
Change-Id: If955b7889b7951c7a06f046905d825f0f784e17b
This enabled launcher to show all desktop apps when user clicks on the
desktop tile in recents.
This is only enabled when Desktop Mode feature flag is enabled.
Bug: 244348395
Test: atest DesktopModeControllerTest
Change-Id: I3c89ef01fd7d1f457a7afabda94b481711c0a350
Refactor background color handling from DefaultTransitionHandler to a
helper class, so that we can reuse it for ActivityEmbedding as well.
Bug: 207070762
Test: manual
Change-Id: I6034ddd1928184a969848f0be496247032763b40
We used to only check title/contentDescription/actionIntent of
RemoteAction for uniqueness and ignore the isEnable/shouldShowIcon.
Bug: 234679022
Test: Verify the isEnabled change updates PiP menu
Change-Id: I769507253594b016802b71368ac4a9036f2ad21f
Special "app bubble" that is ordered at the front of the list unless
something else was selected. This is guarded behind the flag to
enable floating tasks, and a new flag to allow floating tasks to be
bubbles.
Test: manual - enable the flags and create a floating task
=> floating task appears in a bubble
Bug: 237678727
Change-Id: Ibf66e8bae07800b5f64598c9b50de7a7995d09e6