Commit Graph

51 Commits

Author SHA1 Message Date
Sebastián Franco e1d31e5406 Revert "Revert "Moving DeviceProfile properties into DevicePrope..."
Revert submission 33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Reason for revert: Error is fixed

Reverted changes: /q/submissionid:33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Change-Id: Ib86824134955903c11e51e52dbfd6368aba1cd50
2025-05-23 14:08:11 -07:00
Priyanka Advani (xWF) 7705e92d93 Revert "Moving DeviceProfile properties into DeviceProperties da..."
Revert submission 33672643-DataDeviceProfile1

Reason for revert: Droidmonitor created revert due to b/419867875. Will be verifying through ABTD before submission.

Fix: 419867875

Reverted changes: /q/submissionid:33672643-DataDeviceProfile1

Change-Id: Icb66aefbbcee24e05806b2139923e1f2ea1c65e3
2025-05-23 13:53:04 -07:00
Sebastian Franco e1111e28c2 Moving DeviceProfile properties into DeviceProperties data class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I638f88cd76b926917965dbf9e70b5bdfff5971e0
2025-05-23 10:42:26 -07:00
Sebastian Franco d94fa97779 Log which active controller is handling input in the BaseDragLayer
Bug: 405042311
Test: NA only adding logs
Flag: EXEMPT bug fix
Change-Id: Ibb7aac4b9baf30b7a7052180a1c4130f9d6b7cbe
2025-04-29 16:47:14 -07:00
ELIYAZ MOMIN (xWF) 31d6be8891 Revert "Moving TisBinder to its own class"
This reverts commit ce9ad064d6.

Reason for revert: <Potential culprit for  b/395855288  - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted>

Change-Id: I12d1eb66ae03e2638a503c103d0b1fa8a863b6b5
2025-02-11 08:18:42 -08:00
Sunny Goyal ce9ad064d6 Moving TisBinder to its own class
> Using callback patter for various change events instead of routing it
  via  TIS

Bug: 386288280
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I95577d6a1c17103cb947ef1200c1c22b68fd1d9c
2025-02-11 00:21:51 -08:00
Sunny Goyal 7a548377eb Remove obsolete features
Flag: EXEMPT legacy ENABLE_TWOLINE_DEVICESEARCH, ENABLE_ICON_IN_TEXT_HEADER, ENABLE_PREMIUM_HAPTICS_ALL_APPS
Bug: 270396358
Bug: 201388851
Bug: 270395143
Test: Verified manually
Change-Id: I88ca7b255d2ae4eba393c1aee52153ef0a459140
2024-08-30 13:04:08 -07:00
Tracy Zhou 8e56fe3912 Allow trackpad to tune RAPID_DECELERATION_FACTOR for gesture nav
- RAPID_DECELERATION_FACTOR determines whether swipe up from app takes the user to overview vs. home

Bug: 355457714
Test: adb shell setprop trackpad_in_app_swipe_up_deceleration_factor 0.6f
Flag: EXEMPT bugfix

Change-Id: I205e72c82dc08b9e542420ca1adc8f7c0eb0953d
2024-07-25 12:52:03 -07:00
Liam, Lee Pong Lam a457b0e016 [Launcher3] Hides AllApps education view for trackpad
Added an indicator `mShowAllAppsEducationView` to check if AllApps
education view should show.

Flag: EXEMPT bugfix
Bug: 342369675
Test: Manual with/without trackpad
Change-Id: Ib995c80467143dd73fe2cac0504dbe6d03834f25
2024-07-23 19:41:18 +00:00
Chris Göllner 0cd995e4ef Convert SysUiState flags from int to long
We already reached the limit of 32 flags for an int. To be able to have
more, changing from int to long.

This is needed, as new flags have to be added.

Flag: NONE
Test: Manually running SysUI and Launcher
Test: Unit tests in CL
Bug: 335625543
Change-Id: Iec1d40218264c7c64c50fd09764aa07c0caa7787
2024-05-13 14:47:33 +01:00
Andy Wickham 22dee942b5 Cancel manual animation if LauncherState changes during drag.
Previously, the following would cause the All Apps panel to appear
in NORMAL state:

1. Start dragging to all apps
2. During the drag, something sets Launcher to NORMAL
3. Release finger  -> animation to all apps completes, but state
   is still NORMAL

Side effects of this:
 - On large screens, All Apps draws its background on Launcher's
   ScrimView only if the current state is All Apps. So in this
   case, the apps just floated above the workspace.
 - On handheld, touches are handled by workspace even though you
   can see the All Apps list. So e.g. if you swipe down, the
   notification shade appears rather than all apps panel hiding
   (although it seems this touch issue was addressed separately).

I'm not sure if this is the main/only case of this state mismatch
happening, but verified with local async state changes that this
could in theory happen. We haven't been able to organically repro
the bug reliably. That being said, it feels plausible that a well
timed screen lock during the all apps transition could also hit
this case.

Demo videos with hard-coded state change to NORMAL 2 seconds after
you start swiping up to all apps (note I release my finger at the
end of each video):
https://drive.google.com/drive/folders/1ul8ep9N2M5oc6ZSbf_ZHQwp9IwTpz7GB?resourcekey=0-4LAufl0rkvtjvgZC0L-eMQ&usp=drive_link

Bug: 239394946
Bug: 331600490
Test: Manual with local async launcher state changes
Flag: NA
Change-Id: I6364dbde8aea67f5d1c525edf57ed7eb26096cf9
2024-04-11 16:00:34 -07:00
Vinit Nayak 9c29c1e1c4 Update animation timing for split dismiss animation
* We weren't specifying an animation duration for the
dismiss placeholder animation, and it wasn't inheriting
from the animatorSet since that didn't have any duration
set on it.
* Now we explicitly set a duration (usually matching that of
the current launcher state config) to the timings line up
well

Test: Repro steps don't show bug. Also tested on large screen dismissing
contextual split from overview and home, seems fine
Fixes: 314860754

Change-Id: I701e4f88c1ddd92561da4fb76715a859f587c91e
2024-02-27 12:10:44 -08:00
Tony Wickham 1a895f05c5 Add CUJ annotations for going to Recents from Home
Bug: 321756829
Flag: none
Test: switchToOverview, e.g. TaplTestsQuickstep
Test: Manually check traces for:
  - Home to quick switch to Overview
  - Home to quick switch to app
  - Home to Overview
  - Home to Overview to Home (one gesture)
Change-Id: I7e09957202b844d5db49f6c8545f864e7ace3522
2024-02-10 00:31:41 +00:00
Saumya Prakash c4cc4b13b1 Remove extraneous transition from Overview to Home screen
Previously, users used to be able to swipe down near the
bottom of the screen to leave overview. This was causing the taskbar to
animate to home while still in overview (and causing jank). Since this isn't expected behavior for
how to leave overview, this change removes that method.

Flag: N/A
Fix: 284416178
Test: Completed multiple transitions (ex. Overview to home) with 3
button nav and gesture nav. Ensured swiping down from below the recents
task does not go to the home screen while not affecting other
transitions.

Change-Id: I8cdfde71117dd947174d9c3c3a7f834fbeaddcca
2023-08-30 21:24:45 +00:00
Vinit Nayak 5e2a2564e8 Reset split selection state when swiping to home
Bug: 276361926
Fixes: 238651489
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE

Change-Id: Ic1439561f37b50ebf9dfb99edbeece21520798b1
2023-07-06 15:08:05 -07:00
Kateryna Ivanova 7120373bbc Migrate Interpolators from Launcher3 to the public animation library
Test: atest
Bug: 271850966
Change-Id: Iba999f2e753764a37d35e508e707df02388432e9
2023-05-30 07:20:38 +00:00
Tracy Zhou 6a71c2a6f5 [Trackpad] Gesture navigation in 3-button mode
Back gesture will be in a separate change

Bug: 279948218
Test: https://recall.googleplex.com/projects/3388b17c-d22f-46f8-b140-a102690377b4/sessions/0b8e838a-89b0-4451-ad44-df2916db877d
Change-Id: I1f14ca873efa33684e36ac1f0f72d766815752ae
2023-05-21 22:45:37 -07:00
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