Commit Graph

31 Commits

Author SHA1 Message Date
Chris Li
9efcb0bd3f Merge "Allow non-resizable apps in split-screen (12/n)" into sc-dev 2021-02-22 18:32:20 +00:00
TreeHugger Robot
9801436e7f Merge "Fix The education UI above one-handed mode isn't localized and Display size changes" into sc-dev 2021-02-20 12:03:43 +00:00
Jason Chang
bd2e7aa6ae Fix The education UI above one-handed mode isn't localized
and Display size changes

Handling onConfigurationChanged() event to response system
configuraiton changes.

Bug: 177980234
Bug: 177222027
Bug: 177222126

Test: manual
Change-Id: I93dec3e83ae287c5dabc494625929c43f44a7037
2021-02-18 14:38:23 +08:00
Chris Li
de551ad9b6 Allow non-resizable apps in split-screen (12/n)
Before, the hint uses PopupWindow to be placed at the bottom right of the
Display, which can't be attached to Task. Now, render size compat button
 hint popup on Task surface with WindowlessWindowManager.

Fix: 178327644
Bug: 176061101
Test: atest WMShellUnitTests:SizeCompatUILayoutTest
Test: atest WMShellUnitTests:SizeCompatHintPopupTest
Change-Id: I6f8d7afc996d7f312516d85deb2bd113eae8bc3f
2021-02-17 20:57:15 -08:00
Hongwei Wang
1c2fd3aa7f Polish the PipMenuView when showing the controls
- Decreases the menu action size
- Wraps custom actions into PipMenuActionView and restricts the size
  to be identical to other PiP actions such as settings and dismiss
- Removed unused pip_menu_activity.xml layout

Screenshot: https://screenshot.googleplex.com/6LFk5WJFfC4FQyA.png
Bug: 179312210
Test: Enter PiP and tap to show controls, see screenshot
Change-Id: I9de63be60ff66ee5198785885a28d495f1fb7af3
2021-02-16 14:27:46 -08:00
Chris Li
85377a9785 Allow non-resizable apps in split-screen (10/n)
Render size compat restart button on Task surface with
WindowlessWindowManager.

Bug: 176061101
Bug: 178327644
Test: atest WMShellUnitTests:SizeCompatRestartButtonTest
Test: atest WMShellUnitTests:SizeCompatUIControllerTest
Test: atest WMShellUnitTests:SizeCompatUILayoutTest
Change-Id: I86912adca18a6a62265cd31585f2c7d612c90fd1
2021-02-15 14:05:01 -08:00
Hongwei Wang
f3e5e9cdee Merge "Revert "Add an invisible layer to trap focus"" into sc-dev 2021-02-08 22:36:14 +00:00
Hongwei Wang
f2fd0294a9 Revert "Add an invisible layer to trap focus"
This reverts commit cb98114abd.

Reason for revert: Not needed once ag/13507782 is merged

Bug: 169372603
Change-Id: I52d4344f6f2f3fb973f3f20e7d6f1ec2844d7567
Test: manually enter PiP
2021-02-08 18:43:30 +00:00
Hongwei Wang
58b9a4e48e Merge "Add an invisible layer to trap focus" into sc-dev 2021-02-03 01:22:03 +00:00
Chris Li
27d983a098 Allow non-resizable apps in split-screen (8/n)
Refactor SizeCompatModeActivityController to WM Shell. The old one will
be removed in separate cl as there are some dependencies in other
packages.

This cl is mainly for refactor. Major change will come after.
Besides refactor, also changed the mActiveButtons key to TaskId, because
launcher Task will also trigger onTaskInfoChanged, but should not remove
the restart button on the same display.

Bug: 176061101
Bug: 178327644
Test: manually verify that the size compat restart button works as usual
Test: atest WMShellUnitTests:SizeCompatUIControllerTest
Test: atest WmTests:SizeCompatTests
Change-Id: I9143e079a1a945b76c3c56596976dd6ad2802897
2021-02-02 12:54:40 -08:00
Hongwei Wang
cb98114abd Add an invisible layer to trap focus
This is a work around for b/169372603 where PiP menu defaults the focus
on expand button when being attached to system window.

There is another inconsistency observed regarding of touch feedback
which may not be related to b/169372603 but worth mentioning
- when entering PiP and close button is shown, tap on PiP window shows
  visual touch feedback
- when PiP menu in closed state, eg. nothing is shown in menu, tap on
  PiP window shows no visual touch feedback

Video: http://rcll/aaaaaabFQoRHlzixHdtY/cLwTz7ad7P9nrrqk1uPiRP
Bug: 169372603
Test: Enter PiP from YT, see video
Change-Id: Ief8976fac28a65ac35724adcad7f25e11f1876a5
2021-02-01 21:12:49 -08:00
Hongwei Wang
352f35ddaf New tap on PiP window behavior
PiP window stays same on tap if it's large enough to hold all the
actions within it. Ignore the artifacts in demo video such as the shift
of settings button and menu resize out of sync, they are tracked in
separate bugs.

Video: http://rcll/aaaaaabFQoRHlzixHdtY/hkQgdmbuBhNT0WdKW8aegL
Bug: 175055101
Test: See video
Change-Id: Ie19b30dd1e8ba716095b76a3f341b5ab2a51399b
2021-01-28 17:42:53 -08:00
Lucas Dupin
2107c5815f Make bubble scrim respect opacity flag
Test: atest ScrimControllerTes
Fixes: 173562716
Change-Id: If815eb75f63078741f2b1104938b223e0a99df31
2021-01-25 16:27:14 -08:00
Winson Chung
ebf6903682 Move the overflow ui to the bubble window
- An activity always runs on the main looper of the process
  and this simplifies threading since all bubble data will
  run on the shell thread
- The BubbleExpandedView will not initialize the task view
  when mIsOverflow is set.  We still snapshot the overflow
  view to keep the existing selection animation logic the
  same between overflow/task bubbles

Bug: 161979899
Test: atest WMShellUnitTests
Test: atest SytemUITests

Change-Id: If3632a3030c58c9ec334afcb06aac4c51e28938b
2021-01-19 14:39:39 -08:00
Sergey Nikolaienkov
1991120975 Fix and clean up Tv Pip Menu
Fix for Tv Pip Menu not properly setting custom actions provided by an
application.
Fix Pip Menu not closing on the Home button press.
Simply and revise Tv Pip Menu implementation which now consists of 3
classes:
- TvPipMenuController
- TvPipMenuView (formerly PipMenuView)
- TvPipMenuActionButton (formerly PipControlButtonView)
and thus spare
- PipControlsView
- PipControlsViewContoller

Bug: 174818743
Test: atest WMShellFlickerTests:TvPipBasicTest
Test: atest WMShellFlickerTests:TvPipMenuTests
Test: atest WMShellFlickerTests:TvPipNotificationTests
Change-Id: I9e08ca142e0407a4ede084323b0201194a7e89b8
2020-12-28 06:22:41 +00:00
Jerry Chang
2c8ea7b021 Fix showing black background when resizing the divider bar.
Reports resizing state to WM core so that app client could apply bigger
visible bounds while resizing splits. Also moves DividerHandleView to
more generic package.

Fix: 172704238
Test: manul check divider behavior
Test: atest WMShellUnitTests
Change-Id: I1656c86de9a0b5dfe5e6da57ccc9d5f6e467843a
2020-12-17 07:39:24 +08:00
Wale Ogunwale
062b17a171 Rename splitscreen package to legacysplitscreen
Split-screen implementations moving forward would be based on app-pairs
and main/side stage models. So, renaming existing package to avoid
confusion.

Bug: 175416931
Test: They pass!
Change-Id: I55ab1d27fb1c00ba7a58d685ea7eb2840efb9437
2020-12-14 12:13:11 -08:00
Jerry Chang
0c9c2cfac1 Support dragging divider bar of app-pair to resize the splits
Update SplitLayout and DividerView to support dragging divider bar and
make them more generic to be able to share among different split impl.

Bug: 172704238
Test: manual check the behavior of divider bar
Test: atest WMShellUnitTests
Change-Id: I16ed1fd86bdff4d8544c5787c95315c59055ad04
2020-12-04 01:49:58 +08:00
Jerry Chang
0545edfa3d Add divider view support for app-pairs
Add divider bar for app-pairs. AppPairLayout and divide policy records
and handles the layout in pair.

Bug: 172704238
Bug: 172704672
Test: manul check the behavior of the splits and divider bar.
Test: AppPairTests, AppPairsPoolTests, AppPairsControllerTests

Change-Id: I688c7001d056fe8dd9a192885e1f9fd5f004dc11
2020-11-17 11:22:19 +08:00
Mady Mellor
ed1098532d Merge changes I36b9cedc,I79948a4b
* changes:
  Allow Bubble overflow to be opened without other active bubbles
  Flexible bubble sizing & fixed position
2020-11-12 00:26:43 +00:00
Mady Mellor
97fcd7a082 Flexible bubble sizing & fixed position
This will enable some stuff for taskbar & hopefully make customizations by
ARC++ easier??

- BubblePositioner now tracks the size of the bubble & bitmap within it.
  Have to use a multiplier to derive the size of a couple of things now
  (e.g. bitmap size)
- BubblePositioner now tracks the position of the bubble stack & allows
  a way to override / set a fixed position. If something is in fixed
  location, it is not draggable (however when expanded you can still
  drag individual bubbles to dismiss)
- BubblePositioner tracks some taskbar related info
- Rather than checking for "isLandscape" we want "showBubblesVertically"
  (e.g. device might not be landscape but should be vertical if taskbar)
- Fixes an animation issue where bubbles super-overshoot the y position
  when expanding vertically.

Bug: 167413172
Test: a lot of manual testing
Test: atest WMShellTest SystemUITests
Change-Id: I79948a4bd6b58fb3aa2f52e2553f3dfc31630cf1
2020-11-11 12:57:29 -08:00
Sergey Nikolaienkov
50118593eb Add TvPipMenuTests
Bug: 171520419
Test: atest WMShellFlickerTests:TvPipMenuTests
Change-Id: If74cb25f6c1c46704f35d2c8073c0fdb50c8d7eb
2020-11-06 10:56:31 +00:00
Tony Huang
eb01a25c87 Migrate Bubbles to wm-shell (5/n)
Move bubbles package and related resources to shell package,
also copied some used codes and resources.

Bug: 161980186
Test: atest SystemUITests
Test: atest WMShellUnitTests
Change-Id: Ia108bd4149b3c3bf86631ba1a7a6bce0e76af78f
2020-11-04 11:01:56 +08:00
Sergey Nikolaienkov
63a37a3a29 Use PipMediaController in .tv.PipController
Make .tv.PipController rely on PipMediaController for media session
monitoring and managering.
Refactor .tv.PipControlsViewController to use PipMediaController to
retrieve the media buttons.
Make .tv.PipNotification subscribe to PipMediaController to receive
callbacks about media metadata updates.

Bug: 169575409
Bug: 165795012
Test: make WindowManager-Shell; make SystemUI
Change-Id: I397f93eb4433116ba4f476bda7374b07d97e082d
2020-10-28 12:32:33 +00:00
Winson Chung
c932060175 1/ Add basic infra for global drag handling in the Shell
- Add private window flag INTERCEPT_GLOBAL_DRAG_AND_DROP (protected by
  MANAGE_ACTIVITY_STACKS permission) to be considered as a part of the
  normal flow for global drag and drops even if the window is not
  visible.  In addition, the window with the flag receives the clip
  data on DRAG_STARTED and the drag surface on DROP.  If the window
  consumes the drop, then it will relinquish cleanup of the drag surface
  from the system.
- Add MIMETYPE_APPLICATION_ACTIVITY for an app to report that they are
  starting a global drag of an activity. The associated data must
  include an intent with the pending intent and user to launch the
  activity for.
- Add a test drag handler on the shell end to receive the drag, setup a
  drag layout, and just launch the intent (for now).

Bug: 169894807
Test: atest DragDropControllerTest
Test: atest DragDropTest

Change-Id: I7f5cdca3cf515b693a8f1e507e90e22a670b5fa6
Merged-In: I7f5cdca3cf515b693a8f1e507e90e22a670b5fa6
Signed-off-by: Winson Chung <winsonc@google.com>
2020-10-23 20:00:19 +00:00
Bill Lin
2b3bd57805 Move Pip codes from SysUI to WMShell lib (9/N)
Bug: 161118569

Test: make SystemUI
Test: make ArcSystemUI
Test: make WMShellUnitTests
Test: lunch cf_x86_tv-userdebug & make
Test: atest CtsSystemUiTestCases:BasicPipTests
Test: atest CtsSystemUiTestCases:CustomPipActionsTests
Test: atest CtsSystemUiTestCases:FlickerPipTests
Test: atest CtsSystemUiTestCases:PipNotificationTests
Test: atest SystemUITests
Test: atest WMShellUnitTests
Test: manual test PIP demo AP
Test: manual test TV PIP function
Test: manual test disabled PIP
Test: adb shell input keyevent 171(KEYCODE_WINDOW)
Test: adb shell am start -n android.systemui.cts.tv.pip/.PipTestActivity
    -a android.systemui.cts.tv.pip.PipTestActivity.enter_pip
Test: adb root;adb shell am start \
    -n com.android.systemui/com.android.wm.shell.pip.tv.PipMenuActivity
Test: adb shell dumpsys activity service com.android.systemui
Change-Id: I0ec0e9b9bfc4795a10483acd225f14bde9c72407
2020-09-30 08:54:52 +08:00
Tony Huang
1ed148d3e7 Migrate OneHanded to WM shell (4/n)
Move OneHanded related codes, res and tests to WM shell.

Some tests add ignored currently due to permission issue.
Add another bug to trace it.

Also fix animation issue caused by wrong logic.

Bug: 161980408
Fix: 168074363
Test: manual check one handed function
Test: atest WMShellUnitTests
Test: atest SystemUITests
Test: make ArcSystemUI; make ArcSystemUITests
Test: make CarSystemUI; make CarSystemUITests
Change-Id: Ib25661d010278202ffe15fd9c4962e76e6698c21
2020-09-09 03:04:56 +00:00
Jerry Chang
10ec5e479e Migrate splitscreen to WM shell lib (4/n)
Moves systemui.stackdivider package to wm.shell.splitscreen package.

Bug: 161116823
Test: atest SystemUITests
Test: atest SystemUIGoogleTests
Test: atest CarSystemUITests
Test: manual verified split screen behavior
Change-Id: Ib62450b78da454a7dc93a88272c87b8c12fcc1d8
2020-09-02 13:12:54 +08:00
Ben Lin
abaefa0c67 Migrate from PipMenuActivity -> PipMenuView.
Bug: 161710689
Test: Build and run
Change-Id: I879502085daefd3dbfbe437410a29c3353c5cf1a
2020-08-24 15:42:56 -07:00
Ben Lin
be8b9eb16d Add ability to change PiP menu icon locations on the fly.
This CL does:
- Add a PipMenuIconsAlgorithm, allowing calculation on the fly for
correct locations of individual icons
- Make it so that when PIP changes its bounds, it updates the location
of the action items accordingly (if needed)

Bug: 160825579
Test: enter PIP, icons are still where they are
Change-Id: I8618f7c5c36c8e09613c126c1ebb20b60e95de58
2020-07-17 23:43:32 +00:00
Bill Lin
78c4babe4d Migrate PIP resources from SystemUI to WM shell lib (3/N)
Note: packages/SystemUI/res/values-sl/strings.xml contain blocked
      keywords, left the strings file unchanged
Test: make SystemUI
Test: make ArcSystemUI
Test: make WindowManager-Shell
Test: atest SystemUITests
Bug: 161118569
Change-Id: I1c70d4e92befdc2e53723eec66fe1e6477b9ea14
2020-07-17 11:33:39 +08:00