Commit Graph

111 Commits

Author SHA1 Message Date
Thales Lima e95664077c Use transient taskbar check in split screen
The space that should be removed in split screen should check if there is a taskbar or not. Adding the transient taskbar property to DeviceProfile solves that without having to pass context around.

Fix: 289769344
Test: manual
Flag: N/A
Change-Id: Id0c51c4ec9481d3c206eef52d44094ec7a8c98cf
2023-08-30 16:35:12 +01:00
Vinit Nayak 7a78147ba3 Use same calculation for portrait as fake landscape for layout of split thumbnails
* Partially revert ag/20330754, not entirely sure why we switched from
using dp.isLanscape to splitInfo.appsStackedVertically, since the two
represent different states (specifically for fake landscape)

Fixes: 280783620
Flag: None
Test: Tested on foldable, small + large screen.
Fake and real landscape on small screen.
Rotated while in overview.
Slight sliver of wallpaper shows on large screen, but that
issue has been there.

Change-Id: I13d834a31417751dd3b757344ec7b4d9a174090e
2023-05-12 10:40:59 -07:00
Thales Lima 6ca92a383c Merge "Fix TaskView cropping for transient taskbar" into udc-dev 2023-03-10 15:52:16 +00:00
Thales Lima 3a6193517d Fix TaskView cropping for transient taskbar
TaskView clipping is not necessary anymore because task in Overview will always be the same aspect ratio as the app when in fullscreen.

Fix: 268211636
Test: manual trigger of Overview (landscape, portrait, split screen)
Change-Id: Ib4faeda6f0cccef3b23fcbacb89c6d2832c0df59
Merged-In: Ib4faeda6f0cccef3b23fcbacb89c6d2832c0df59
2023-03-09 20:24:53 +00:00
Vinit Nayak aa7bf8b394 Add initial split from GroupedTaskView animation
* Created SplitAnimationController to prevent more
RecentsView bloat
* Extract SplitSelectSource attributes into separate class
* http://recall/-/cMb5xTTxhmZtFt04eYnmQj/eACJq1un8Ef91LgmQblpAw

Bug: 267370106
Change-Id: I5d430c091ac84bbbc30319e7b78711b610a21252
2023-03-08 15:17:57 -08:00
Alex Chau 8aa3f00238 Land ENABLE_TASKBAR_IN_OVERVIEW
Fix: 270393449
Test: manual
Change-Id: I731bfa8ee86154fd034781e27272abc81a6fe6c6
2023-02-28 20:18:32 +00:00
Vinit Nayak 5a6863f14a Unify split options into single option
* No more split left/right/top, only have
splitscreen and icon shows vertical or horizontal
split windows
* Replace existing split icon for FreeForm

Fixes: 264930810
Test: Tested landscape and portrait, workspace,
overview, allapps

Change-Id: I443f93b6b01760b726bf9f024fb1324fdf0ed03c
2023-02-01 17:27:57 -08:00
Jeremy Sim 8e8352e27e Fix juttering problem with split staging animation
This patch makes it so that app icons no longer jutter uncomfortably when staging and confirming a split from home.

The problem occurred because I used Math.round when calculating the position at which to center the app icon within the SplitPlaceholderView. When an inexact integer is used to calculate the x and y position on every frame, it creates juttering, especially when numerical values are small.

Solved by removing Math.round and using floats going forward.

Fixes: 262308025
Test: Manual
Change-Id: If91d1d3ee52652c155ed7e4e1d4f4620fdc41cc9
2022-12-12 18:18:20 -08:00
Vinit Nayak 29e71bdd72 Improve Split portrait gesture animation
* Crop out taskbar from bottom thumbnail for vertical split
* TODO: Need to re-calculate thumbnail sizes if taskbar
 is stashed. There's also a very slight rounding error
 somewhere even in the unstashed case that needs to be
 revisited

Bug: 219411750
Test: Start gesture animation in split in potrait
Change-Id: I35f2415e13af7467e0735ac8865cee0e3e3d27f8
2022-11-08 11:33:08 -08:00
Vinit Nayak b9b7c38d55 Merge "Improve TaskMenuView layouts for split pairs" into tm-qpr-dev 2022-10-21 00:07:53 +00:00
Jeremy Sim 8edca84cd5 Merge "Prevent doubling up on split placeholder insets" into tm-qpr-dev 2022-10-20 20:59:49 +00:00
Vinit Nayak 0f6526e0c4 Improve TaskMenuView layouts for split pairs
* Instead of basing calculations on the TaskView view,
use the TaskThumbnailView as the anchor.
This helps us prevent having to re-calculate positions
that were already done to layout the thumbnails
* TODO: Gracefully handle re-positioning task menu view
on rotation

Bug: 249693334
Test: Manual, opening task menu view in
land/seascape in portrait, w/ and w/o home rotation

Change-Id: I02da96d2735657d5340e23056de69392ff8452c4
2022-10-13 14:15:14 -07:00
Vinit Nayak 0bc70442d6 Merge "Fix casts to Math.round() in real landscape" into tm-qpr-dev 2022-10-13 20:02:05 +00:00
Vinit Nayak b26664800e Fix casts to Math.round() in real landscape
Fixes: 248575056
Test: Wallpaper no longer bleeds through on split
animation in real landscape.

Change-Id: Ia59efda737de94a4b64f9d0a1f84cd116539107b
2022-10-13 13:01:39 -07:00
Jeremy Sim 0ac4708396 Prevent doubling up on split placeholder insets
This patch makes it so that the split placeholder uses only one inset for buffering the top of the icon: either the default split placeholder inset, or the device's built-in screen inset.

Currently, when we determine the size of the split placeholder, we add the placeholder's default inset to the device's built-in screen inset (camera cutouts, etc.). On some devices, this causes a very large combined inset, and it doesn't leave enough room for all the other UI elements, especially when 3-button mode is active. This patch cuts out one of the insets by selecting only one of the insets to respect (the larger one).

Fixes: 241164191
Test: Manual, checked all emulated inset types on a variety of screen sizes
Change-Id: Ica0e791bf4b8b757ad3fb87ab1cf3105b97a61dc
2022-10-11 21:26:43 -07:00
Alex Chau e2791f0cf6 Merge "Fix positioning of split instruction and share targets with taskbar in overview" into tm-qpr-dev 2022-10-11 14:04:57 +00:00
Alex Chau 8949c583ee Fix positioning of split instruction and share targets with taskbar in overview
- When taskbar is in overview, overview actions has dedicated space and no need to align to nav buttons
- Add a bottom margin to split instruction and share targetse that is equal to the space below overview actions

Bug: 245320601
Test: Test split select and share target with different screen sizes
Change-Id: I6aec325da9cc4c43c84ba8bed5f0e087c57d6925
2022-10-08 10:15:58 +01:00
Vinit Nayak 8f54d597bf Round split layout values instead of using int cast
* Silly us, we forgot that int casting always floors.
Math.round() does a mathematical round.

Fixes: 248575056
Test: Wallpaper no longer bleeds through on split
animation.

Change-Id: I068c030ce6b86fc12faee7778c0d87a0d5aea487
2022-10-07 14:46:25 -07:00
Vinit Nayak c7d676ce15 Improve splitscreen recents animation in seascape
* We need to swap the primary and secondary thumbnail
positions in fake seascape since the primary is the
visually left app (which is the bottom in portrait)

Bug: 249693334
Change-Id: I325133ab86e4fcd26c6162a3de007d68e9ba6bf1
2022-10-06 21:32:20 -07:00
Jeremy Sim 21a5b12b6f Update animations for TM-QPR: Overview > OverviewSplitSelect transition
This change updates the Overview > OverviewSplitSelect animation to the latest spec. This is a re-upload of a previous change, ag/19464657, but no longer will cause the b/241165022 issue.

Includes:
- New timings
- Task thumbnails slide in with an "overshoot" animation
- Icons fade out and fade in appropriately
- SplitInstructionsView has a new compound "unfold" animation

Bug: 236760307
Test: Manual on tablet. Made sure the b/241165022 issue is fixed.
Change-Id: Ia22f6b6d7b9474b782e693fae2320a34a2985b18
2022-09-14 18:06:05 -07:00
Vinit Nayak f5e5c8e1ce Merge "Place TaskMenuView aligned with secondary split thumbnail" into tm-qpr-dev 2022-09-12 18:29:22 +00:00
Vinit Nayak 2e4dcb16a7 Place TaskMenuView aligned with secondary split thumbnail
* Use consistent divider calculations in
different methods

Fixes: 245610772
Fixes: 218784487

Test: Open task menu view in split pair in landscape/
seascape/portrait, real and fake.

Change-Id: If1bbc7a0d4f1767584d0fc8cf549130f35b8e4a3
2022-09-09 11:25:08 -07:00
Alex Chau e818bcb997 Use real IDP in DeviceProfileTest
- Mock WindowManagerProxy instead of IDP in DeviceProfileTest
- Extracted NavigationMode to standalone class
- Moved parseNavigationMode to WindowManagerProxy so it can be mocked
- Moved DeviceProfileTest to internal repo

Bug: 242086027
Test: DeviceProfileTest
Change-Id: Ia5a43293b1380f04d786d2adf8503cfd10f7674a
2022-09-07 10:35:21 +01:00
Jeremy Sim 2fe7dd7306 Revert "Update animations for TM-QPR: Overview > OverviewSplitSelect transition"
This reverts commit a50bb39048.

Reason for revert: Causes a P1 bug (b/241165022).

Fixes: 241165022
Bug: 236760307
Change-Id: Icc080d9a37e26d70d0f4cf846a4fd39df3b71625
2022-08-18 21:28:54 +00:00
Jeremy Sim a50bb39048 Update animations for TM-QPR: Overview > OverviewSplitSelect transition
The animation from Overview to OverviewSplitSelect is now updated to the latest spec. See bug for details.
- New timings
- Task thumbnails slide in with a new spring animation
- Icons fade out and fade in appropriately
- SplitInstructionsView has a new compound "unfold" animation

Bug: 236760307
Test: Manual on tablet and phone. Looks good on both true and fake orientations.
Change-Id: If98d4464aa51c876d79bee9672279992a2cf9026
2022-08-14 10:34:51 -07:00
Jeremy Sim b7a781b599 Merge "Update animations for TM-QPR: OverviewSplitSelect > Home transition" into tm-qpr-dev 2022-07-29 18:57:00 +00:00
Jeremy Sim 1cfe6d490a Update calculation method for Overview UI placement on tablets
This update slightly changes the calculation method for Overview UI placement, in order to line up better with spec. (The previous calculation caused a small 30dp divergence on tablets.)

Bug: 236760307
Test: Manual by measuring pixels and comparing to spec
Change-Id: I94e9e7b5a6a24c37693425ac8ec71cd066003658
2022-07-28 14:05:24 -07:00
Jeremy Sim e5ba8fa7a5 Update animations for TM-QPR: OverviewSplitSelect > Home transition
The animation from OverviewSplitSelect to Home is now updated to the latest spec. See bug for details.
- New timings
- FloatingTaskView now translates out, instead of fading
- FloatingTaskView and SplitInstructionsView now disappear concurrently with the rest of Overview, instead of afterward

Fixes: 236761067
Test: Manual on tablet and phone
Change-Id: Iaa1c804a60859232f331950098b67968cc187e82
2022-07-21 20:46:43 -07:00
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