Removes recents-related code including the divider between it and
hotseat.
Test: manually on device
Fixes: 184366189
Bug: 184789479
Bug: 171917176
Change-Id: I7776c98659ded70f53a49befddcd23c8353c6440
- calculateTaskSize now returns the Rect for focused task
- Introduced calculateGridTaskSize for non-focused task, and translate non-focused tasks to fit the grid
- As Task Rect is now vertically centered, removed ClearAllButton's grid vertical translation
- When ClearAllButton is not shown (e.g. quickswitch), make sure ClearAllButton's scroll won't be used when page snapping. This happens when page scrolls are translated so they're negative.
- Added back ActionsView when task is focused below the TaskView, which become invisible as you scroll
- In Modal state, move the ActionsView down so it won't cover the TaskView
Bug: 175939487
Test: manual
Change-Id: Idfa94a51f856418adc0503cf04211dcb4b1814fe
- Grid scaling has problem that scales task icon and menu, which makes it hard to control icon size and text size in the manula
- Replaced the whole concept with dedicated Task size calculation in grid layout
- Support different icon size in TaskView in grid and removed task_thumbnail_top_margin
- Removed grid progress in TaskViewSimulator as well
- Refactored how ClearAllButton scroll and translations are calcualted to align clear all properly in grid
- Make page center calculation aware of PagedView pivot and scaling
Bug: 174464863
Test: Manual on two screens
Change-Id: I47b13ef6e55c6e16c52ea04225f5bde02ed82fc2
Adds dynamic sizing to margins around task view, also creates space in the
overview actions view in landscape to make space for the proactive chips if
needed.
Bug: 182529089
Test: Local build and run on two devices
Change-Id: I447de3564a3249ede4e8e8a4d3e5d1c177f6be61
TODO:
* Extract out common elements in TaskShortcutFactory.MultiWindowFactory
for commonalities between new and old way of
invoking split screen
* Integrate with WM APIs (b/182002789)
* Write tests for SplitSelectStateController
Bug: 181704764
Change-Id: Ice35adb4ea82897f5e2433dc9b93a549f3d511b5
This change spaces out app icon and proactive row as well as removing
the clipping from task snapshots.
Bug: 179922117
Test: Local on two devices
Change-Id: I5075b6dd7895cb40cdd59495fd27e4153c9cc2ea
- Add translation to align task into top right/left corner of grid rect
- Also updated grid padding according to mocks
Bug: 174464863
Test: Launch overview, launch overview from app, launch into app
Change-Id: Ie856f9c43ebf35f5e58b5d125ff1754ad7bc0160
- Introduced gridProgress to RecentsView/TaskView ofr animating into grid
- Introduced gridProgress dependant translation and scale properties in TaskView
- Animate running task into grid with TaskViewSimulator
- Remove overview actions (for now) but keep clear all button in large screens
- Adjust ClearAllButton translation to acoomodate for grid
- Use screen width +-50% to calculate task visibility
- Use the position where TaskView is on screenEnd as pageScroll
- TODO: Handle separate recents activity
Doc: go/foldables-launcher-overview
Video: http://dr/file/d/107Aydii1LoFCwP63nWG3Twr2PBDE5ZgD/view?resourcekey=0-aUjdnx8ezimS9tmAgao9ag
Test: Test Launchering overview and launching overview from apps with folloiwng combination:
- large / small screen sizes
- portrait / landscape
- thumbnails from different screen sizes / orientations
Bug: 174464863
Fixes: 181509346
Change-Id: I4b691cde774f2e37532b68ba83c6eed399f2332e
- Add TaskbarActivityContext which allows shared Launcher elements to
"just work" using existing generic ActivityContext.
- TaskbarContainerView extends BaseDragLayer<TaskbarActivityContext>.
- Inflate FolderIcon and Folder using TaskbarActivityContext to be
shown in TaskbarContainerView.
- Use TaskbarActivityContext's DeviceProfile to determine icon size
instead of overriding in styles. This also ensures that normal
BubbleTextView icons have the same size as FolderIcons.
Test: Place a folder in home screen hotseat, ensure it shows up in
taskbar and can be opened, and that apps inside it can be launched
or dragged.
Bug: 171917176
Change-Id: Ic25d2f84bcd7e3399c88989305ea565497c030d9
New mocks have increased padding between the tasks.
I think we might need to fold some of these size calculations together
eventually, but this should be ok for the moment.
Bug: 179922117
Test: Local build and run
Change-Id: I4b5186d36012e80d55fae791e0c151c3112eecd1
- Also adds a divider between Hotseat and Recents
- Dedupes Recents from Hotseat
Test: Open some recent tasks, ensure they are deduped
from Hotseat and also handle < 2 tasks.
Bug: 171917176
Change-Id: Ia782c6ccbcda94cfd844aad04dc3d25a3f072c2b
- Long clicking a BubbleTextView in Taskbar will start a system drag
and drop operation, setting the original view invisible meanwhile.
- Defer gesture navigation when starting over a Taskbar item, and
cancel any started gesture if a Taskbar drag and drop starts.
Bug: 171917176
Change-Id: If5049071fbf1755f545ee937daa4edabd869f00d
In TaskbarView#onTouchEvent(), which is only reached if a Taskbar
icon didn't already consuem the event, check each child to see if
the event occurs within a 48x48dp bounding box, and delegate the
event and subsequent events to it until UP or CANCEL.
Bug: 171917176
Change-Id: I7afafe0835828ab9213ec6abfe4e88ad7b9af3c4
- Currently supports WorkspaceItemInfo (e.g. normal app icons
including hotseat predictions and pinned deep shortcuts).
- Currently doesn't support Folders, Notification dots, or
long press.
Some technical details:
- Always allow HotseatPredictionController updates given the
Hotseat is always showing even when Launcher is stopped.
- Represent Taskbar Hotseat items as BubbleTextViews, to
allow for normal click handling etc. When the hotseat is
updated, we reuse the same BubbleTextViews that were
initially inflated, and just reapply the new info.
- Add new BubbleTextView iconDisplay for Taskbar, to allow
for different treatment such as icon size.
Bug: 171917176
Change-Id: I325eb39051f2dc69228b39b5c40ed0cbdad8e200
Move all the logic that calculate the app open float properties
to a separate class.
This is in preparation for the new app launch properties.
Change-Id: I1a008b2ea1379cbf667c5ad3ad58ece04bd88185
- Compute velocities as px/ms from VelocityTracker, instead of
computing px/s and dividing by 1000 in various places
- Use quickstep_fling_threshold_speed in TriggerSwipeUpTouchTracker
instead of ViewConfiguration#getScaledMinimumFlingVelocity
- Check MotionPauseDetector to determine whether a fling is
sufficient to escape after pause, in additon to above threshold
Bug: 159089437
Change-Id: Ib0fae7804e1f008f3b6ab37d6c463352c224b0e4
We no longer support the "peeking" model where the shelf would
peek on motion pause from an app and overview would peek on motion
pause from home. Thus, removed/inlined the following:
- FlingAndHoldTouchController (merged into its sole subclass
NoButtonNavbarToOverviewTouchController)
- ShelfPeekAnim
- OverviewPeekState
Change-Id: I066a3ad2636fde4786089c922b896bf1e03361fd
Handling swipe-down/swipe-up gestural in device bottom area
for one-handed mode
1) The regsion is larger than gesture navigationbar view
2) One handed gestural in quickstep only active on NO_BUTTON, TWO_BUTTONS mode
3) One handed gestural only support on portrait mode
Bug: 150747547
Bug: 154189137
Bug: 156988988
Test: make and install
Test: manual enable one handed mode and swipe down to trigger
Test: manual start one handed and rotate device
Change-Id: I7b2447bfb2fe4082c95176b62934b98077b84920
(cherry picked from commit 7d375e31fe)
* Added FeatureFlag.ENABLE_ALL_APPS_EDU
* When user swipes up on nav bar three times and goes to hint state
consecutively, we show the new All Apps education tutorial.
* For now we block interaction while the animation is playing,
and we remove the view when the animation is done.
* Future CL will leave view up until user successfully reaches All Apps state.
Bug: 151768994
Change-Id: I903e0a3914d0558950ecb8cd714d97ddc10ca06b
- Support dismissing Compose via the reverse gesture from the appear
gesture
- Use Tony Wickham's ag/10204761 with some glue code to enable the
app below Compose panning in the same direction as the gesture as
Compose peeks in
- Add feature flag to use Compose hosted in a window (permits underlying
app panning)
- Use InterpolatingVelocityTracker to fix OtherActivityInputConsumer
processing swipes in the wrong direction ~20% of the time due to a bug
in VelocityTracker (see go/quirky-bubbles)
Change-Id: I3adbaee1763f21557fb628b60d03b0a03e7079ab
- This activity would create another task (no longer in the same
stack since we don't have activity type stacks) which was causing
the camera to be occluded sometimes, which then cancels the recents
animation
- Tweaking the animation slightly to match the movement of the closing
the activity back to the lockscreen
Bug: 156514461
Test: Launch camera on the lockscreen and swipe up to dismiss (repeatedly)
Change-Id: I8aaac22767288d7fbf183683276c50acaaf831d2
It will have a 30dp horizontal paddings and vertically in the middle of the screen.
Test: local
Bug: 155444014
Change-Id: I4f3d627008b2c114cc4921bf683919c6044926e4
Using horizontal padding 48dp to adjust the scale of the taskview and put it in the middle of the vertical space.
Test: local
Bug: 155444014
Change-Id: Iee6096baf18ae1106c24c83b4675abd4d3ff4d4f
Revert "Compose gesture integrated fully into Nexus Launcher"
Revert submission 11035205-compose_gesture_fully_integrated_launcher
Reason for revert: Broke Launcher Android Studio build, quick switch, and home gesture doesn't work if Compose is open.
Reverted Changes:
I2d97b22d5:OverscrollPlugin refactored to use onTouchEvent
Ia19a55f65:Compose gesture integrated fully into Nexus Launch...
I65aa07ac1:Compose gesture integrated fully into Launcher
Change-Id: Ic05c47eb686b3942ba519e76db32977fc568844b
- Support dismissing Compose via the reverse gesture from the appear
gesture
- Use Tony Wickham's ag/10204761 with some glue code to enable the
app below Compose panning in the same direction as the gesture as
Compose peeks in
- Add feature flag to use Compose hosted in a window (permits underlying
app panning)
- Use InterpolatingVelocityTracker to fix OtherActivityInputConsumer
processing swipes in the wrong direction ~20% of the time due to a bug
in VelocityTracker (see go/quirky-bubbles)
Change-Id: I65aa07ac112db8bd89cec9acfa0ce2b6ebacd43f
- Extracts abstract classes for common functionality
- Renames some layouts, etc. to not be back-specific
- Consolidates more logic in the controllers rather
than classes like BackGestureTutorialTypeInfo
- Removes redundant TutorialStep enum (combining it
with TutorialType)
Still considering removing additional layers of
abstraction like the Fragment itself (instead
keeping UI within the Activity, which would still
be controlled by a TutorialController).
Test: Built and went through the Back tutorial to
confirm existing funcitonality was not disrupted.
Bug: 148542211
Merged-In: Id893869cb59609141dcdbdca01744d0f5952b546
Change-Id: Id893869cb59609141dcdbdca01744d0f5952b546
Make the overview actions container not limited by the taskview any more, and add left and right margin as 16dp to it.
Screenshot: https://hsv.googleplex.com/5938979251683328
Test: local
Bug: 153591867
Change-Id: I8056105fe4c03311e473bb317cba345048ec2203
- Change drawable to match specs, using ShadowDrawable to
add shadow when necessary based on workspace theme.
- New drawable is 18dp by 6dp; add support for different
width vs height, and decouple from workspace page
indicator (which is still 24dp tall).
Bug: 151768994
Change-Id: Icfd0eac197ebc4d1f5bb799f8538c4bd99d800cd
import various resources from tips gesture tutorial
Bug: 146173041
Test: build and verify it passes
Change-Id: Iacea7ba1f2d15452e7442f2976633da7012fab35
Two changes for the latest Compose prototype:
1. Pass the identity of the underlying app to the Overscroll plugin.
2. Enable the Compose gesture over an app when there's a Recents extra
card plugin active (otherwise the current app won't count as the
rightmost one).
Some changes to the gesture:
- Angle decreased from 35° to 25° to remove overlap with
Assistant gesture
- Distance increased from 8 to 110 dp. 110 dp is 2x the Assistant
gesture and roughly the same as scrubbing into an app from Home.
- Fling detection added; uses same distance threshold, 110 dp.
- If a touch was recognized as another gesture, the touch will not be
reinterpreted as a Compose gesture, no matter what touch movement occurs
- Fixes issue where Assistant + Compose could both be triggered
- Fixes issue where scrubbing apps to the left, then back to the right,
would bring in Compose. i.e. if a touch down + touch movement starts
bringing in Assistant UI elements, then, the user moves their touch
below the Assistant angle, the Compose gesture will not start
being recognized
- Gesture length required for fling lowered from 110 dp to 40 dp, per
tuning with PM.
Bug: b/146508473
Change-Id: I414573d1a92684d1d992837a5f1df522346ec211
Adds ENABLE_OVERVIEW_ACTIONS feature flag and base factory. Requires an
implementation in overlay to show any actions.
Test: run locally with flag on and off.
Bug: 145628186
Change-Id: I1c36330464cc01e1e987ebfea1a9f451067598a5
It was possible to invoke the assistant accidentally. This change
adds a minimum distance threshold before we register a fling (the
same distance as used for drag, 55dp).
Bug: 137106918
Test: manual; tested that accidental flings were much more difficult,
but intentional invocations were still easy to register
Change-Id: I40c8bd43c1a28c7b161467804a1e44746b8e92ef
- Peek in overview further, and with more overshoot
- Fade out and scale down workspace faster while swiping up
- Scale and translate workspace slower when letting go to enter
overview (so it doesn't zoom out at warp speed)
- Fade in all apps shelf sooner
Bug: 132455160
Change-Id: Ieafad0ccf9bb587889bc35d536627661db10e358
There are 2 conditions that we force the MotionPauseDetector to treat
the motion as not paused:
1. If we haven't passed a small displacement (48dp before, 36dp now)
2. If we have moved mostly orthogonally
These existed soley for the OtherActivityInputConsumer case, because
1. We only need the displacement requirement to make room for the
peeking shelf, which doesn't exist in other cases (it's already there on
home for example)
2. We can only move orthogonally for quick switch, which again doesn't
exist for other users of MotionPauseDetector.
So now instead of checking min displacement and orthogonal distance
inside MotionPauseDetector, we let callers setDisallowPause()
before adding positions to their MotionPauseDetector.
The only user visible change is that you no longer have to swipe up 48dp
before we allow pause to overview from home. This also paves the way to
using the same logic that determines to disallowPause to also detach
recents from the window while swiping up from an app.
Bug: 129985827
Change-Id: Ie690aa314da3260aff2209341a29638604f9501c