Commit Graph

83 Commits

Author SHA1 Message Date
Vinit Nayak 5424fca602 Rename split classes/variables for consistency
* Use "select" when in the split screen
invocation process
* Drop usage of "staged" except when defining
constants

Fixes: 233006032
Change-Id: I809f0e1e9742aa6b6b09ad8731896ad3f0c9deb0
2022-06-06 14:02:15 -07:00
Vinit Nayak 1eb79473aa Merge "Limit starting bounds of swipe to animation start rect" into tm-dev am: e8a4e0e2dc am: e9e0800fd7
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/18607508

Change-Id: I7b4afd0d4eae8853e15c06c8f7f6472ef5035bf0
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2022-05-27 03:29:15 +00:00
Vinit Nayak f7b4e7f497 Limit starting bounds of swipe to animation start rect
* If the starting point is greater than that of the current
device's width (in either positive or negative direction),
reset the starting rect to be fullscreen task bounds
* More details at b/228829958#comment12

Fixes: 228829958
Test: Reboot device and swipe up from home immediately,
app doesn't fling from the side.
Tested with portrait and landscape launcher.
Tested with fake landscape launcher.

Change-Id: I6ea24e30e9de5716b7830f487b2ed63f56598c50
2022-05-26 14:43:26 -07:00
Jeremy Sim b0cce86385 Implement non-disappearing View for split staging instructions
The instructions for how to perform a splitscreen operation, previously conveyed through a disappearing Toast, are now conveyed through a custom View object.

Fixes: 219987907
Test: Manual
Change-Id: Iff2bb6e334e0325e8a091d76a5f9b8767071365f
2022-05-23 21:23:22 +00:00
Jeremy Sim 5d2a1f47c0 Merge "Fix placement bug with split staging icon in RtL" into tm-dev 2022-04-10 01:48:53 +00:00
Jeremy Sim e15927eec7 Merge "Implement splitting from Taskbar long-press" into tm-dev 2022-04-09 01:21:14 +00:00
Jeremy Sim 43c79704ed Fix placement bug with split staging icon in RtL
Fixes a bug where switching the phone to RtL caused Overview's split staging icon to be placed incorrectly.

The bug was caused by the fact that FrameLayout margins were not working consistently in RtL. This may be another bug; more investigation required (b/201920967).

This fix makes it so that the icon is positioned using setX and setY rather than margins.

Fixes: 227372971
Test: Manual
Change-Id: I6e5371d20e8e2e4e6f41ba93d0dfa36ed085c103
2022-04-08 18:05:05 -07:00
Jeremy Sim abdf25d226 Implement splitting from Taskbar long-press
Implements the ability to split the screen by long-pressing a Taskbar icon.

Bug: 217964720
Test: Manual
Change-Id: I5d324d8ca912c10cc3c3de21cae98fad546b85ac
2022-04-08 12:15:16 -07:00
Vinit Nayak 1322fc3710 Fix translation for secondary split thumbnail in RTL
Fix: 225157531
Test: Swipe up in RTL shows both thumbnails
were expected.

Change-Id: I87d286b6ce6542c7cffadf86e3d4d99a3618f984
2022-03-30 10:32:51 -07:00
Jeremy Sim b8eeb41ee0 Fix issue with camera overlapping split staging UI
Fixes an issue on some devices where initiating a split in Overview would cause an icon to be placed partly under the camera cutout.

Fixed by adding some padding to FloatingTaskView#mSplitPlaceHolderView, so that it always respects the device's insets.

Fixes: 220997064
Test: Manual
Change-Id: I7270bde3320f562519ea8e36a38e49609e0d6cd7
2022-03-25 16:31:46 -07:00
Tracy Zhou 8d06bb8991 Merge "Update initial staged split UX." into tm-dev 2022-03-22 22:44:33 +00:00
Tracy Zhou 4ff3615b23 Update initial staged split UX.
- Introduce inset to the staged split view
- Update width of the staged split view
- Introduce rounded corners to staged split view. It's tricky to animate it in with smooth transition considering the rounded corners. The best way to handle it is to draw content as if part of it is off the screen, so that when it's animated in, the rounded corners can slide in onto the screen correctly.

Fixes: 219085340
Test: https://recall.googleplex.com/projects/f46cfe9c-8076-4efe-bf8a-b1cc4f1f5e1b/sessions/09a99b75-3614-4d20-b6d4-a78108f769d8

Change-Id: I24d90cc9e2695d822cb2de8b21e2d5519f2e344d
2022-03-21 21:21:42 -07:00
Jeremy Sim c0422b8a48 Merge "Fix issue with split thumbnails overflowing during rotation" into tm-dev 2022-03-22 00:17:43 +00:00
Jeremy Sim 8746367f40 Merge "Fix paired icon placement in landscape/seascape" into tm-dev 2022-03-22 00:17:43 +00:00
Jeremy Sim bf6f171f84 Fix issue with split thumbnails overflowing during rotation
Fixes a set of issues in Overview where you could cause split thumbnails to overflow their contents into each other by rotating the phone in certain ways.

The issue occurred because StagedSplitBounds objects have their height and width assigned differently depending on if they were created while the phone was in portrait or landscape.

Fixed by adding a conditional check in PortraitPagedViewHandler#setSplitTaskSwipeRect and LandscapePagedViewHandler#setSplitTaskSwipeRect.

Fixes: 218784856
Fixes: 218779313

Test: Manual on local devices
Change-Id: I04b4f4344250da34616ab1744af22fa41b9aba9b
(cherry picked from commit 1d6b7f2abf)
2022-03-19 00:10:54 +00:00
Jeremy Sim b42345273c Fix paired icon placement in landscape/seascape
In grouped task view, paired icons will now align better with task thumbnails.

Fixes: 218783211

Test: Extensive manual testing on local device(s).
Change-Id: I372d2ee90302a8d96ace048ff4f82126d9b2b363
(cherry picked from commit d6826c74a4)
2022-03-19 00:10:16 +00:00
Jeremy Sim 3b687a5092 Fix small positioning bug with DWB banner in landscape
The DWB banner is now positioned correctly when the task thumbnail is set as a secondary split view.

Fixes: 220637396
Test: Manual testing on local Pixel 6
Change-Id: I3bcb0eb09d2a607b2891bc9f63f3a0b03668f48e
(cherry picked from commit 87fad7b984)
2022-03-19 00:09:22 +00:00
Sunny Goyal d4c4ad9212 Removing some unnecessary layout calls in TaskView
Bug: 221095750
Test: Presubmit
Change-Id: I277c1350109ce3bd0b29502c588482c737ab1e3d
2022-02-23 13:06:46 -08:00
Tracy Zhou 0551313a9b Correct order of split action buttons
Fixes: 219988163
Fixes: 217965089
Test: https://screenshot.googleplex.com/8LNMBeEQhMVnDSm
Change-Id: I760c0b8085069181d9a1cdc582ac7d58a08f4724
2022-02-17 00:14:50 -08:00
Jeremy Sim c78ac6277c Fix DWB placement in grouped task view
In grouped task view, DWB banners will now rotate properly when phone is
in landscape or seascape orientation. Also fixes a couple of minor
existing issues with the bottom task not displaying correctly in the
first place.

Fixes: 208357326
Fixes: 216218406

Test: Tested locally on Pixel 6, using landscape, seascape, and
portrait. Double-checked with task proportions changed, RtL/LtR, and
split top/split left/split right initialization.

Change-Id: I945f9937d2d4d784c0c74a006c7d0680daf628c2
2022-02-11 00:13:13 +00:00
Alex Chau 635b3abcf1 Remove ENABLE_OVERVIEW_GRID feature flag
- Use isTablet directly instead of overviewShowAsGrid
- Tablet/landscape resoruces can now be overriden via xml
- Use Landscape resources in tablet in additional to vertical bar layout
  - For resources overwritten in values-land that was intended for vertical bar layout, override them in sw600dp for tablet landscape

Bug: 210597891
Test: manual
Change-Id: I19eac935a5fb1a420485408aa8b4774632726af1
2022-01-27 11:28:35 +00:00
Jeremy Sim 66a265c87c Center paired app icons
In splitscreen overview, the pair of app icons is now always centered at
the top of the view, rather than following the divider's position.

Test: Visually tested on local P6 device

Fixes: 208648221

Change-Id: I460d06047693c9376dab8215085d54aa4164d69f
2022-01-18 23:03:17 +00:00
Vinit Nayak ebf2cdd0f1 Show Digital Wellbeing Banners for split tasks
Fixes: 199936292
Change-Id: I38743d58f53a65ef717b1babc21ad1df2dc840a4
2021-12-15 22:19:02 -08:00
Alex Chau 86ef5e924a Handle split select rotation
- Update floatingTaskView, apply splitsSelectTranslation and splitPrimaryScorllOffest when rotating while in split select
- Moved getSplitSelectTranslation to RecentsView
- When in portrait, treat STAGE_POSITION_BOTTOM_OR_RIGHT as STAGE_POSITION_TOP_OR_LEFT in split translation calculation
- Apply splitsSelectTranslation for portrait grid too

Fix: 201721153
Test: manual
Change-Id: I768a3b15de4d434674058b274c368798f5852917
2021-12-08 11:35:02 +00:00
Alex Chau 4bdf8c1754 Use getMeasuredWidth instead of getWidth in setSplitIconParams
Fix: 208647202
Test: Enter overview with app pairs, rotate and rotate back, check the task icon
Change-Id: I14914258a2508cf3f399312f4c88574b27a5e9fa
2021-12-03 18:28:38 +00:00
Vinit Nayak 455197bf41 Add icons for staged split
Fixes: 208649953
Change-Id: I8b7bb3a650e836608ebe6aa50631026f5f6a7c63
2021-12-01 14:58:53 -08:00
Alex Chau 9a5f99bfe6 Resets taskSplitTranslation of inactive orientation
Fix: 204185003
Test: manual

Change-Id: I10e49994e8a9723f39d7f9159de7c1f8216ea77f
2021-11-26 12:04:47 +00:00
Alex Chau 6499e83c57 Consider launching task's position on screen in pivot calculation
- Instead of using RecentsViewScroll, put task's position offset versus current scroll as TaskRect calculation, so it's considered when calculating for putting task to full screen
- Revert back RecentsViewScroll to apply before RecentsViewScale
- Added new property in PagedOrientationHandler to apply both primary/secondary param without clearing the other, and renamed an existing method

Fix: 206972618
Test: Quick switching
Test: Launch task from grid, launch side task from carousel overview
Change-Id: I5977975ed1e930ad70b81d83513d8f3a00c0aed4
2021-11-19 14:42:20 +00:00
Vinit Nayak be7ce023de Use split thumbnail width/height directly
* When swiping to QS from home, the
bounds for the rect on screen are incorrect
because it's technically off-screen when
it's being queried

Fixes: 206155441
Change-Id: Ibb17f2ac291f867b6de06041c980e434ce92cf27
2021-11-17 19:05:29 -08:00
Winson Chung 9304879387 Fix issue with grouped task rects being calculated slightly off
- This was causing bleed through between split tasks and perhaps
  some rounded corners to be calculated incorrectly
- Also reset the translation after it is adjusted for dismissing
  in case the dismiss gesture is canceled.  This doesn't fix the
  issue with bleed through between the task views (to be fixed
  separately), but makes sure it isn't permanently set on the task

Bug: 206739664
Test: Split tasks, swipe up and check the bounds

Change-Id: I34430e958ca7a75f48621bc27a281e93fdf97179
2021-11-17 17:40:58 +00:00
Vinit Nayak 4d57e7091f Shows AppPairs in previous tasks
Fixes: 203006080
Change-Id: I63912a61e7617ec41f229c19cc267dc5a1857bae
2021-11-09 13:47:18 -08:00
Tony Wickham 2fb815b2fd Cleanup split screen offset in TaskViewSimulator
- Removed mRunningTargetWindowPosition and mSplitOffset, as they countered each other out anyway
- Removed PagedOrientationHandler#setLeashSplitOffset() since it's no longer used

Test: Swipe up from split and non split apps in both orientations on large and small devices, with and without home rotation enabled
Bug: 200817624
Change-Id: I78a80cbc718ee38a8933fa323798fb436710d59f
2021-09-24 15:37:30 -07:00
Vinit Nayak 9e6a642d8b Shorten and center TaskMenuView for landscape
* The width of the task menu view for landscape
(both fake and real) is the same as the width
it would be in portrait.
* With the shorter width, we also center the
positioning of the TaskMenuView
* Note this is only for phone, large screen
changes TODO

Bug: 193432925
Test: Tested real/fake landscape + seascape,
view is centered. Portrait same as before.

Change-Id: Ide41e252a3c177c4a911aab544f78930fed2e76f
2021-09-22 14:55:29 -07:00
Vinit Nayak af6b85e3bc Show multiple icons for GroupedTaskView
* Hide all overview actions for GroupedTaskView
* Move some logic from TaskView into respective
PagedOrientationHandlers
* Remove unused methods from PagedOrientationHandler
* NOTE this is just visual changes. Properly showing
task menu's is still in-progress

Bug: 181704764
Test: Tested GroupedTaskView in portrait/landscape,
fake landscape in small screen, and real portrait/landscape
in large screen

Change-Id: I9c13ca114024db0a8e3fa5d295951696adb8516f
2021-09-17 10:16:56 -07:00
Vinit Nayak ca549695aa Merge "Set GroupedTaskView child thumbnails in onMeasure" into sc-v2-dev 2021-09-14 17:34:52 +00:00
Vinit Nayak e6abfca7ab Set GroupedTaskView child thumbnails in onMeasure
* Also add indicator if split was originally started
in portrait of landscape, so we know which dimension
of the divider bar to use if user goes to overview
and then rotates device (horizontal divider vs
vertical)

Fixes: 199461137
Test: Swipe to overview with staged split
Rotate device with and without live tile
Doesn't overlap with overview actions

Change-Id: I8b7f104f16d5b7265828f1b3d98ba3426b28d44f
2021-09-13 18:07:09 -07:00
Vinit Nayak 6835115c13 Explicitly set X and Y values when offsetting split tasks
* Race condition where DeviceProfile that gets set on
TaskViewSimulator initially has incorrect values
(dp.isLandscape is incorrect)
* The correct one eventually gets set, but in the meantime
we set the split offset assuming in incorrect value in
PagedOrientationHandler#setLeashSplitOffset()
* Once corrected, we weren't removing the old offset
that was set. Now we ensure only either an X or Y offset set.

Bug: 199376724
Test: Enter split, rotate device and quickswitch.
Both tasks should be visible throughout the gesture

Change-Id: I9fa44642ab440a0200c0b0eb9b37574e47b7100d
2021-09-09 16:27:59 -07:00
Vinit Nayak d1a70eeb75 Slight polish for split screen gesture animation
* Divider bar dimensions manually calculated since
the leash that is provided has bounds larger than
the space that is visually shown between the two split
apps

Bug: 181704764
Test: Swipe up on large and normal screen,
w/ and w/o home rotation enabled

Change-Id: I1fde053151d47c6ce3e11f16f8ae4a153d273871
2021-09-08 17:39:49 -07:00
Vinit Nayak cdcaf7a2ed Code cleanup from rebase
Bug: 195423591
Change-Id: I623d6ef46458a282e3c63cde0bdc457cb38e4d50
2021-08-27 16:28:12 -07:00
Vinit Nayak 6174106f68 Add Split button in OverviewActions
Shows up only for large screen devices, not phones.
Tested for NexusLauncher, general 3P launcher support
needed for staged split (TODO b/195607777)

Bug: 195423591
Change-Id: I4d455769b17637174b590c640516b9fbb6352c3d
2021-08-26 11:49:38 -07:00
Vinit Nayak aa11976cc5 Fix public variables to not have 'm' prefix
Bug: 181704764
Change-Id: I89e43ce6cc74119514c8124e7cc61b11dc475f58
2021-08-25 11:59:43 -07:00
Vinit Nayak c35507dc29 Set thumbnails for GroupedTaskView based on split layout bounds
Bug: 181704764
Test: Go to stage split in landscape w/
home rotation on/off, swipe up.
Thumbnails aren't perfectly overlaid, polish needed

Change-Id: I54e39cc5a18f527e80a664d60aca72dfd706ebdc
2021-08-25 11:59:00 -07:00
Vinit Nayak 8b78c138d4 Implement swipe gesture for staged split in landscape
* Maintain task split percentages when swiping up.
* Split percentages not maintained in GroupedTaskView, however.
That is a TODO.

Bug: 181704764, 181705607
Test: Swiped up in landscape with home rotation on/off.
Portrait still works.

Change-Id: Iec62abae34f6ccadf98e2afdc9409cf3160f8223
2021-08-24 17:32:47 -07:00
Vinit Nayak 7903758d08 Animate SplitPlaceholderView when entering split from overview
Bugs tracked in b/181704764

Bug: 181704764
Test: Tested on phone and large screen in multiple orientations

Change-Id: I07509006ae3d1f4425dc5119d0c8ed52b41a3bc2
2021-07-22 20:12:26 +00:00
Vinit Nayak 837359b1ea Set correct divider dimension for task menu options
Previously divider drawable dimension was set on height,
which only works when things are divided vertically.
For horizontal layouts, we need to set divider width.

Bug: 192398954
Test: Tested portrait + fake/real landscape
+ tablet

Change-Id: I5a63df9749bf37c3a563e923a1b4724aa17d9409
2021-07-01 02:05:42 +00:00
Vinit Nayak 063cb2d892 TaskMenu in overview UI polish
Bug: 188168717
Test: TaskMenuLooks closer to mocks.
Change-Id: I1560b66a48c4c70c7c79f7307b2b76f22e30c653
2021-05-25 14:42:35 -07:00
TreeHugger Robot 46d420bf14 Merge "Add funtional animation for SplitSelect from Grid." into sc-dev 2021-05-05 19:03:47 +00:00
Vinit Nayak 2dbdddb4ba Add funtional animation for SplitSelect from Grid.
Long ways to go to final UI - TODO(b/186800707)
Add comments to grid layout code,
no functional changes at all.

Bug: 181705607
Test: Enter split screen from overview task menu
in grid and carousel. Able to select all items
and enter split.

Change-Id: Ib62f1b286acf0781ec47862fa31b670e6ff1892a
2021-05-05 09:38:42 -07:00
Vinit Nayak 1419d40f38 Set menu item to MATCH_PARENT for tap target
Fixes: 186922491
Test: portrait/landscape real and fake
Change-Id: If0247cf75b41374a489331d991a0c273aaf3efee
2021-05-04 19:36:05 -07:00
Vinit Nayak 4cc0dbb552 Change TaskIconMenu to lay out vertically
Still lays out horizontally when in phone
landscape.
TODO(b/186583656), need to center view.
Also have all layout be dynamic instead of having
some cases be in XML and some in code.

Bug: 181704764
Test: Task menu visible with all options in
portrait/landscape tablet
portrait phone
fake/real landscape phone

Change-Id: I3632eeb174f3e4baf2c9d69d51c1815c3c512e59
2021-04-28 11:47:08 -07:00