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
=> Using the drag slop (currently 10dp), which is the appropriate slop when comparing to the other gestures. Touch slop (which was being used for the Assistant) is only being used for gestures starting from the back button. This means that the delegate was getting triggered much too often (unfair slop competition). This prevents that.
=> Fixed additional bugs with the consumer delegate / sharedState; the shared state notion really only applies to the OtherActivityInputConumer, and it wasn't being propagated from the AssistantConsumer.In addition, the isActive() method is only being used as a proxy for whether or not to use the shared state, so clarified the naming. This fixes another case where touch could become completely stuck and you could no longer swipe up.
=> Modified the effective angle to be 90 degrees down to 20 above the horizontal.
=> Reduced the drag threshold to 55 dps.
=> Known issue: the time threshold requires motion events to be triggered. In practice, this works because the finger doesn't stay completely still, but we should add a timer to update the progress smoothly.
=> Removed pause detector.
Change-Id: Ie23e836c6d778914594774b830c3cd2e7b94eca4
=> bumping detectable region to 48 dp horizontal + vertical within corner
=> centering detectable angle; total 70 degrees (ie. btw 10 off the vertical and 10 off the horizontal)
=> pilfering touch events when slop is passed and assistant gesture is engaged
=> Fixing issue where we were incorrectly using “sharedState” causing incorrect handling of gestures subsequent to AssistantTouchConsumer being invoked (it was forgetting to clear it’s input state and hence reporting “active” when it wasn’t). The symptom was that gestures after the AssistantTouchConsumer would never actually move the active window even though state was being updated; you’d feel the Overview haptic.
=> Devices with large corner radii are still somewhat problematic as the initial touch down often lands high on the display (ie. above the 48 dp region).
Change-Id: I3d5761112f4cb8b7b1eee987de5afe9aee260304
More specifically, any window (e.g. qsb search) or AbstractFloatingView.
NavBarToHomeTouchController now implements TouchController directly instead
of AbstractStateChangeTouchController, as it not only dealing with
launcher states. This makes it easier to override intercept logic to
handle cases like not having window focus, for example.
AbstractFloatingViews can createHintCloseAnim() to play an animation
hinting that it is about to be closed by swiping up. Widgets sheets use
this to pull back similar to the all apps transition to home.
Bug: 129976669
Change-Id: Ie157b978d9f1ee36d5fd32cea72ec02ce40878c0
Add AnimationComponents.ATOMIC_OVERVIEW_PEEK_COMPONENT, and rename
previous ATOMIC_COMPONENT to ATOMIC_OVERVIEW_SCALE_COMPONENT.
When SWIPE_HOME is enabled:
- Overview lives to the left of Workspace, which is encoded in
LauncherState.NORMAL.getOverviewScaleAndTranslation().
- Create atomic animation based on ATOMIC_OVERVIEW_PEEK_COMPONENT
and OVERVIEW_PEEK state when swiping and holding from home screen.
Bug: 111926330
Change-Id: Iab6dbef7238dae15b3036d4b2a026b781eee6b4b
The reason is that there is no API that reports that an app is grayed.
Not showing DWB toast for apps that ran over their limit because they
shouldn't be in Overview.
Bug: 129067053
Change-Id: Ia04e17aa85ca015b7932496ad5e730fe61b4be69
The corners will be separated with quick switch by detecting at the slop
of the angle from touch down to that position. If over 30 deg then
assistant will be tracked otherwise quick switch while swipe up will not
be tracked at all.
Test: manual
Bug: 112934365
Change-Id: I6a3aeb1509d9706696a30ef1fba3ce7e3e5ec07c
- Orthogonal displacement now checks angle instead of fixed amount
- Only allow timeout when passed min primary displacement and not
orthogonal displacement
- Don't set timeout for !SWIPE_HOME, which should never detect pause
Change-Id: I3d810831316affff138968dfc62b921b20c752c5
- Add max orthogonal displacement to MotionPauseDetector to avoid
pausing when swiping left or right
- When gesture in ambiguous between swipe up for home or swipe over
for the new task, base the decision on the faster velocity component
- Disable recents freescroll mode when dispatching motion from the nav
bar. This way recents handles it naturally and we don't need custom
logic to snap to the next page at the end of the gesture.
- Fix a bug where you couldn't hook to start a new task when SWIPE_HOME
was disabled
Bug: 111926330
Change-Id: If63aa2bb32b57c3f401c5df8b3f6f4efec97b1fa
- Pause (swipe and hold) detection based on velocity and acceleration,
so it feels immediately responsive
- Don't show shelf during swipe; peek when swipe pauses
- Disallow long swipe
- If swiping to go home (we didn't detect a pause), animate window and
launcher together (not final animation, but mechanism is in place)
- Guarded by SWIPE_HOME flag
Bug: 111926330
Change-Id: Ie4af04517c6688e3d649c2971a1aad197837cb3b
Split LauncherAppTransitionManagerImpl common functionality into a base
quickstep app transition class and subclass for recents-specific
implementation. In addition, override the app transition manager to the
appropriate manager depending on the build.
Bug: 114136250
Test: Manual test NexusLauncher, Launcher3GoWithQuickstep
Test: Build Launcher3GoIconRecents
Change-Id: Iab1b5ae0c75af276879d5e12df95f62a514bf571
Test: Manualy launch an app
Test: Press home when activity is on top of the stack
Test: Quick scrub
Test: Swipe up on the home button, swipe down
Bug: 111514493
Fixes: 116745318
Change-Id: I66d25bc433061ede46107ea9651c198614306692
(cherry picked from commit faa443308e)
When the developer option for freeform is enabled, provides
a "Freeform" option in the recents task overlay menu. This
is sort-of an analog to the freeform option in N recents;
however, since recents now is part of home, there's no
straightforward way to have multiple freeforms at a time,
so this really is only useful for developers.
Bug: None
Test: manual - enable freeform in dev settings, then pick
Freeform from recent task overlay menu.
Change-Id: I5d8e95aaffb8fe43e655f705cacdd51859c95d3b
(cherry picked from commit 9beb6bf251)
Will transition to an API for opening settings if this CL lands:
ag/5338673.
Bug: 118319143
Test: manual test on a prototype
Change-Id: Ia40576e0cd6196bfb0a0e8657916bbadff4c0b59
- Clarify caching policy, we only cache the last N task snapshots
- Pull out necessary logic from RecentsTaskLoadPlan (deprecated) into
launcher class RecentTasksList which also manages the invalidation of
the last loaded list
- Pull out logic from task loading logic in the shared lib into separate
classes TaskThumbnailCache and TaskIconCache, and have each task view
manage the load request for data
Bug: 117603579
Test: Thumbnails still load
Change-Id: I938e4dea19e7f5d24724c32194d254ca003e89aa
There is also a deadzone area around the clear all button to tap easier.
Test: start overview click anywhere that is not the shelf or task
Change-Id: I187ff264444da542aca111b57d94c8199f5a0384
Fixes: 110232233
The "spring" is actually three sequential animations: 1) a slide,
2) an oscillation, and 3) a settle.
Bug: 109828964
Change-Id: I0a2c55f877446a6408952a1201636760283be57b
After a certain height, the self fades out, but keeps following the vertical progress.
Eventually the fade-out can be decoupled from vertical progress and tied to the state
Bug: 109829614
Change-Id: I9808ed3fa1730b938196bc6d3518a6d096a13f4c
When tapping the icon for each card in overview, the options will
overlay on top of the task view below the icon instead of popping up
above the task view.
Change-Id: I42746022432385d976134988262514a238a5066e
Fixes: 109676098
Test: go to overview, tap the icon for the task
> Caret is only visible when the accessibility is enabled
> It is visible in NOTMAL and OVERVIEW state and moves out of the
scrim along with the scrim.
> Acts as an accessible target for various options
Bug: 78172350
Bug: 79215734
Change-Id: I8a968b67e36901859649546295f6491d49cc9ce9
This will break the initial focus assignment. This should be later fixed
in Talkback.
Bug: 72409756
Test: Talkback reads pane title, even though at a wrong moment.
Change-Id: I38458ef7c3b5745169d7bc17ce8751f683ba9c71