* 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
High level:
- As you swipe up from an app (OtherActivityInputConsumer),
a state transition animation to All Apps is created in
AnimatorControllerWithResistance. The animation is played
alongside the Recents resistance animation (i.e. past the
settling point of Overview, which is at mCurrentShift 1).
- The actual state transition to All Apps only happens if you
release your finger in the "all apps region." This is set to
mCurrentShift 2, so double the distance that Overview rests.
- A haptic plays whenever you enter or exit this region, and
the all apps animation is set to 0 until the region is
active. This is so it's clear that something different is
happening.
- The panel that was previously used for tablets is now used
for phones during this transition. It comes in at full
opacity when you enter the region, and the contents (apps
and search suggestions) fade in as you continue swiping.
- The only gesture that is recognized in the all apps region
is a fling downwards, which will return you to the previous
app. Otherwise a left/right/up fling or slow release will
finish the all apps transition.
- The threshold is ignored if the flag is disabled (default)
or if FallbackActivityInterface is active.
Flag:
The threshold is ignored if ENABLE_ALL_APPS_FROM_OVERVIEW is
disabled (default).
Bug: 259619990
Bug: 275132633
Test: Manual with and without the flag enabled
Change-Id: Ie311b77252416d97677b2c56fad61dfd392b6fe8
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
* Created SplitAnimationController to prevent more
RecentsView bloat
* Extract SplitSelectSource attributes into separate class
* http://recall/-/cMb5xTTxhmZtFt04eYnmQj/eACJq1un8Ef91LgmQblpAw
Bug: 267370106
Change-Id: I5d430c091ac84bbbc30319e7b78711b610a21252
Notes:
* the reason why 0.6 -> 1 never happened was because of AllAppsSwipeController where
it had a clampToProgress. By changing lowerbound to 0 the progress actually shows fully 0->1
- composed the haptics in the constructor
- added new listener class in AATransitionController
Added featureflag
bug: 233751149
test: Manually - presubmit, ran “make -j7 Launcher3” from master branch photo: https://screenshot.googleplex.com/8r5FZh6buzkQMjk
Change-Id: I5e1a24170fdbfdd35b8d8f24af0ec5e8586641a2
* 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
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
Also updates some interpolators to make the manual and atomic
transitions more homogeneous.
Also also updates the commit point so it matches the transition point
between the two states exactly.
Note: the background scale is currently too much, and it needs to be 1/3
of the total distance to match the Workspace scaling. To do this, we
simply scale down the depth by a factor of 3 when calling the background
zoom-out API in the DepthController.
Bug: 254835725
Test: see videos in bug
Change-Id: I605546921e9ee4dfc852794c56495c72f0b916e1
> Instead introducing an interface for handling click events
> Linking this interface to other UI which handle clicks
Bug: 259733681
Test: Presubmit and verified manually
Change-Id: I9cbf2d009d64254f513deb909a151e46e860d039
* 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
* 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
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
- 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
* 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
* 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
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
> intrinsicIconScaleFactor is no longer read
> We no longer generatepreview outline for drag
Bug: 245997823
Test: Presubmit
Change-Id: I17ed25239d0affe89482da3406d529d323a426d9
* 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
- 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
- Cap AllApps wallpaper zoom to workspaceContentScale rather than all the way to max depth (config_wallpaperMaxScale)
- Changed both workspace scale and depth interpolator to correlate with AllApps threshold
Bug: 240580498
Test: manual
Change-Id: I0342a37c72206268dcffc5697a212704a41b020f
Currently the overshoot only works when you first open all apps and try
to extend the all apps to the top (making it overshoot). This pull works
when you go mFromState:Normal -> mToState:AllApps. However once the all
apps is set and you move the surface down then up..that overshoot
animation jumps AFTER your finger goes all the way up and off the
screen. At this point, once all apps is completely opened.. the states are
mFromState:AllApps -> mToState:Normal.
Now with this change, it addresses the jumpiness by considering the
current states (mFromState==AllApps) by
including the same onPull() but with different calculations
bug: 240669628
test: manual - videos included in bug thread
Change-Id: I7873f1ec22574f87fab3d2f11d1f5a5f81dfb5bc
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
The shortcut for a certain set of apps could have their component names set to null. In this case, if we still need the package name for the shortcut, we should use the package name from the intent, which is accomplished in getTargetPackage. Additionally, if the target package is still null, we are falling back to showing the Toast messages only.
Fix: 239685630
Test: Verified that the crash no longer happens after clicking on grayed out shortcuts
Change-Id: I4de68ea1a227032e16e5c00407f75159a7aba30f