Commit Graph

34 Commits

Author SHA1 Message Date
Brandon Dayauon
dee687c33a Play original haptic when feature flag is off. Rename feature flag
- 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
2023-03-09 00:14:14 +00:00
Brandon Dayauon
12c193e6c5 Implement diff haptics going into all apps
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
2023-02-07 11:36:42 -08:00
Brandon Dayauon
5a31c9262e Move VibratorWrapper to AOSP
bug: 233751149
test: manually run and presubmit
Change-Id: I89ada0adf7254396238cb96d27bc265e28093f50
2022-12-20 10:27:21 -08:00
Sunny Goyal
6abdd5c735 Removing unnecessary event dispatching via touch-controller.
Instead using a poll method similar to other touch controllers

Bug: 259447608
Test: Verified on device
Change-Id: I5c29c7c1b87acb668ea93e9f44fb685379de54fb
2022-11-16 13:58:05 -08:00
Sunny Goyal
d6801af69a Inlining BaseQuickstepLauncher to QuickstepLauncher
Bug: 243022799
Test: Presubmit
Change-Id: I3706fc1f10d88ea73bd873c7e94c3e78795791eb
2022-08-24 12:51:21 -07:00
Tony Wickham
8d72018a87 Don't allow swiping to HintState if we're already in HintState
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
2022-06-03 14:56:04 -07:00
Alex Chau
f39cc126bf Tune AllApps dismiss animation
- 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
2022-04-29 20:31:26 +01:00
Tracy Zhou
bec00acf28 Delay showing task bar until the user releases their finger dragging from all apps to normal
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
2021-12-15 06:35:41 +08:00
Lais Andrade
cc5c8843df Introduces haptic feedback to launcher overview
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
2021-09-09 14:08:01 +01:00
Bill Lin
945bb34b5e 1/ Provides feasibility to adjust touch slop in TouchController
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
2021-06-04 01:44:50 +08:00
Sunny Goyal
01b32466c3 Revert "Revert "Exposing AnimatorListeners in StateManager to receive both success and failure callback""
This reverts commit d7f11d5fb9.

Reason for revert: Fixed initial error
Bug: 185554764

Change-Id: I32cc49f9b3820166736ceb347f33577939aa6efa
2021-05-13 10:23:35 -07:00
Winson Chung
d7f11d5fb9 Revert "Exposing AnimatorListeners in StateManager to receive both success and failure callback"
This reverts commit a75f576890.

Reason for revert: b/187887269
Bug: 187887269

Change-Id: I8a56ff7054e71cf30b113fdaa213397dae0c53cb
2021-05-12 21:25:22 +00:00
Sunny Goyal
a75f576890 Exposing AnimatorListeners in StateManager to receive both success and failure callback
Updating various callers to use onSuccess or onEnd appropriately

Test: Manual
Bug: 185554764
Change-Id: I357dd1fdbe111e7a30d4c8dee520fbd7d9956b7d
2021-05-11 13:53:14 -07:00
Tony Wickham
154b1c928b Cleanup/consolidate normal<->all apps interpolators
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
2021-05-03 21:07:24 -07:00
Zak Cohen
4d35ac3020 Allow Workspace Scrim to be colored per state
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
2021-04-27 14:04:46 -07:00
Sunny Goyal
35c7b19fa8 Using WindowContext for listening to configuration changes
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
2021-04-22 00:23:02 -07:00
TreeHugger Robot
63c169561c Merge "Some cleanup in RecentsView" into sc-dev 2021-04-07 21:06:55 +00:00
Sunny Goyal
c82916fecb Some cleanup in RecentsView
> Merging overview and all-apps scrims into a single View
> Decoupling TaskMenuView from taskView

Bug: 184676497
Test: Manual

Change-Id: I49f7249eaa2a800054385ab8e73a441d6a1b5e16
2021-04-06 15:47:33 -07:00
Tony Wickham
fbdb50aa48 Fix HINT_STATE not tracking the entire height of the screen
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
2021-04-06 10:09:44 -07:00
Samuel Fufa
ee9aff9b5b [Search][Motion] Normal<->AllApps transition revamp
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
2021-04-05 13:32:51 -05:00
Sunny Goyal
157a9ee7dd Removing some unused classes
Bug: 184183801
Test: Manual
Change-Id: I946b4b4d486d52e467bb3df7dcac65e534803b7d
2021-03-31 12:59:57 -07:00
Tony Wickham
7e7116278b Merge changes I2af1792e,Ice314d46,Ib17d4a5e into sc-dev
* 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
2021-03-30 22:27:07 +00:00
Tony Wickham
6cd95cd2d8 Remove Overview atomic animation support
- 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
2021-03-29 11:59:06 -07:00
Tony Wickham
b9bbe994eb Fix Home->Overview not being logged in 0 button mode
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
2021-03-25 15:11:57 -07:00
Sunny Goyal
c373e1c642 Adding an optional QSB in hotseat
Removing sections in all-apps during transition and treating
it as a single unit

Bug: 175137718
Test: Manual
Change-Id: I55a501d80b5903f1a9d92a26b3784784fd9e50fd
2021-03-17 12:21:44 -07:00
Sunny Goyal
9b1e77377b Removing shelf from 2-button gesture mode
Test: Manual
Bug: 175137718
Change-Id: Ifb64b4dcac53252aefa8ee0bd6434f90f1d868b7
2021-01-05 19:07:21 +00:00
vadimt
c610f26404 Removing unused tracing
Test: presubmit
Bug: 139891609
Change-Id: I30b432d329d6606b3d955409c167bddbacce8a37
2020-12-11 19:43:49 -08:00
Sunny Goyal
ff9e7d6aa9 Removing separate Cancel and End callbacks and using AnimationListener instead
This removes the additional step of invoking these callbacks separately

Change-Id: I0b60047a44f179ba725f15b1e791e336884869c9
2020-11-05 16:35:11 -08:00
Hyunyoung Song
95786e077d Good riddance UserEventDispatcher
Bug: 165675920
Bug: 161381246

TL;DR;;
- nano -> lite proto
- add all the missing logs to WW
- pin item related logging fix
- Removed logging for assistant

sgrep "com.android.launcher3.userevent.nano." | cut -f1 -d: | xargs sed -i -e 's/userevent\.nano\./userevent\./g'

Change-Id: Ie2a49fdd891cacbd7ef40a1dc9e41ff0574c7517
2020-09-27 13:41:49 -07:00
Tony Wickham
01e4070836 Standardize quickstep velocities
- 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
2020-09-03 10:52:34 -07:00
Tony Wickham
3a89e42237 Don't detach recents from app window after motion pause
- 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
2020-09-02 17:28:49 -07:00
Tony Wickham
532b962a03 resolve merge conflicts of 107fe60f6e to ub-launcher3-master
Change-Id: I9a1c52e66edd627fd54cc3cb423fa28a6175f8ac
2020-08-15 00:20:44 +00:00
Tony Wickham
d844fe758c Remove ENABLE_OVERVIEW_ACTIONS flag, defaulting to true
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
2020-08-14 15:58:29 -07:00
Sunny Goyal
5fb83a47f2 Removing icon recents version
Change-Id: Ibdc88715e38590cedf8a7b5174061bb2c6ef9533
2020-08-14 10:49:19 -07:00