- Remove the Utilities.atLeast check since it's no longer relevant as there is no new haptics being played
in the original haptic..
When FeatureFlag is off, the haptic for all apps and qsb is played in one place. So when
FeatureFlag is on, we need to isolate where the haptic call gets played so we disable calling it from two places
and play the haptics at the respective areas.
flag: ENABLE_PREMIUM_HAPTICS_ALL_APPS=false
bug: 270634265
test: Manual
Change-Id: I7b92c427e880b196130270ed9709cf1ea0e19e0a
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
Instead using a poll method similar to other touch controllers
Bug: 259447608
Test: Verified on device
Change-Id: I5c29c7c1b87acb668ea93e9f44fb685379de54fb
Context: there was a bug where you could get stuck in HintState if you
did the following (timing is critical):
1. Short swipe from nav region towards HintState, but not far enough or
fast enough to commit before letting go; this cancels the state
animation, returning towards Normal (but, crucially, StateManager
still has state set as Hint)
2. While previous animation is animating back to Normal, swipe up again,
but this time faster/farther to actually reach Hint; this time, the
animation does go towards Hint, but gets stuck there. The reason it
gets stuck is because StateManager thinks we're already in Hint from
step 1, so doesn't call onStateTransitionEnd(Hint) in step 2. Thus,
we never get QuickstepLauncher#onStateSetEnd(Hint), which is what we
rely on to return to Normal.
The simple fix is to prevent the second swipe in the first place.
Test: short swipe followed immediately by fast fling from nav region on home successfully stays in Normal state intead of getting stuck in HintState
Test:
NexusLauncherOutOfProcTests: com.google.android.apps.nexuslauncher.TaplTestsNexus
Fixes: 228276181
Change-Id: I54c371c8518a9a220e75c98003331b552d8bf8af
- Avoid overriding interpolator in AllAppsTransitionController.setStateWithAnimation as it's no longer needed and it'll wrongly override interpolator for ANIM_ALL_APPS_FADE
- Override ANIM_ALL_APPS_FADE to FINAL_FRAME in QuickstepAtomicAnimationFactory for tap deadzone to dismiss animation, also added EMPHASIZED_ACCELERATE for the dismiss animation
- Tuned dismiss animation across form factors to 300ms
Fix: 220336617
Test: manual
Change-Id: I4b3e827b503dcb1dd39f0bd99d4c1dd5ffdba0f3
Fixes: 208802276
Test: drag from all apps to normal, and the task bar doesn't stash until the user releases their finger
Change-Id: I53133cc80749bdc62e77d858b5714ae32facbd1d
Haptics introduced at the key moments:
- Task scroll in overview or quick switch, trigger when a new task comes
to the center of the screen;
- Task scroll in overview when overscroll animation is triggered;
- Task dismissed in overview;
There is also a configured min gap between two scroll haptics set to
20ms to prevent fast scrolls from creating a chain of cancelled effects.
Fix: 182382085
Test: manual
Change-Id: I43c0f8c879a06f317e8a660240dafb7f7abe79f7
There is a case when one handed mode triggered(Activated), all apps
drawer is very easy to trigger while user swipe up around NavBar
region to exit one handed mode. Since System Gesture monitor regsion
is small on screen bottom, swipe-up gesture usually cross over NavBar
monitor region and invoke launcher touch controller intercept touch
event and introduce unexpectedly trigger all apps drawer.
Adding onOneHandedModeStateChanged(boolean activated) for controller
be able to adjust the touch slop by multiplier, we can set a larger
multiplier when the visible window size translate become smaller
and make swipe gesture not too sensitive.
Test: manual swipe up to swich "home <-> all apps" and monitor
minDisplacement of SingleAxisSwipeDetector
Test: Trigger one handed mode and swipe up to exit one handed mode
check the minDisplacement of SingleAxisSwipeDetector
Bug: 186235522
Change-Id: I9729cd408d85b2b22582bf800e28d1471fc06980
We no longer need to have a different behavior for no button mode,
so make PortraitStatesTouchController the source of truth
Also remove unused ANIM_ALL_APPS_HEADER_FADE & RECENTS_FADE_THRESHOLD
Test: manually in 0 button and 3 button modes
Bug: 183001675
Bug: 175137718
Change-Id: If0bc2a6d6d3bf1649fad45226a4e6055f30e4880
Make it possible to set the color of workspace scrim to a different color
per state. Motivated by making Overview Scrim and All Apps scrims different
colors.
Bug: 186253733
Test: Local build and flash
Change-Id: Id7c38ce3c9173308eedfcb7592ececa7bd6bf220
Pre-S: Continue to use config-changed broadcast for configuration changes
and display-changed event for rotation changes
S+: Use WindowContext#componentCallbacks for config and rotation changes, and
continue to use display listener for frame-rate changes
Bug: 179308296
Test: Manual and presubmit
Change-Id: I533e69068b5fa6c052a02759ef309dd075ee6a4b
> Merging overview and all-apps scrims into a single View
> Decoupling TaskMenuView from taskView
Bug: 184676497
Test: Manual
Change-Id: I49f7249eaa2a800054385ab8e73a441d6a1b5e16
Explicitly use DeviceProfile#heightPx instead of getShiftRange(),
which might be less depending on AllAppsTransitionController
Test: swipe up from bottom on home, ensure workspace scales down
as the gesture goes all the way to the top of the screen
Change-Id: I9c2988d361c22d437c7eb9bea8ed715d06054c59
Preview video attached to BR
Key changes:
- SearchUiManager#getScrollRangeDelta is removed. AllApps initial vertical offset is now controlled by deviceProfile.allAppsOpenVerticalTranslate.
- ShelfScrimView is renamed to AllAppsScrimView. Scrim no longer does vertical translate with AllApps open. Shelf/overview related code removed.
- Scrim and AllApps content transition are animated with different interpolators. Scrim color is a blend of accentColor and allAppsScrim with proportion determined by progress*TINT_DECAY_MULTIPLIER
Bug: 183001675
Test: Manual
Change-Id: Id6bde7ee65c55c83c2973fe41f458b9364d39ecd
* changes:
Invert StateAnimationConfig.PLAY_ANIMATION as SKIP_ALL_ANIMATIONS
Remove Overview atomic animation support
In 2 button mode, animate to HINT_STATE instead of OVERVIEW directly
- Remove PLAY_ATOMIC_OVERVIEW_SCALE and PLAY_ATOMIC_OVERVIEW_PEEK
- Remove complicated parallel atomic animation support from
AbstractStateChangeTouchController and subclasses
- Remove some code related to going between Overview <-> AllApps
Test: Swipe between states in all 3 navigation modes
Bug: 175137718
Change-Id: Ice314d46946c3a983cdc6ccf1a67effb5da9156e
At some point we made a change to clearState() from onDragEnd(),
which means the detector is in IDLE state instead of SETTLING. As
long as we aren't still in DRAGGING state, we should log.
Test: wwlogcat
Change-Id: I0f1098bd09cd1296b06f8cb3ebe400c2a25156ca
Removing sections in all-apps during transition and treating
it as a single unit
Bug: 175137718
Test: Manual
Change-Id: I55a501d80b5903f1a9d92a26b3784784fd9e50fd
- 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
- Update MotionPauseListener to have 2 methods: the existing
onMotionPauseChanged(isPaused) and onMotionPauseDetected()
- onMotionPauseDetected is the default as most listeners only
care about the first detected pause
- AbsSwipeUpHandler still listens to pause changes, to help
determine the end target at the end of the gesture
Bug: 159089437
Change-Id: I6d14f106cdcbe4e07d8dddba1cee909a963615b1
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