Commit Graph

77 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
Will Osborn 807d0f9ecf Better null handling for OverviewComponentObserver.getContainerInterface
Bug: 413634484
Test: local + unit tests
Flag: EXEMPT bugfix
Change-Id: I249cd1925ac416e9861be9d0c3c451e2b6cdff43
2025-05-13 09:28:29 +00:00
Alex Chau e4413f929d Clean-up enableDesktopWindowingCarouselDetach and refactor detachDesktopCarousel
- Removed enableDesktopWindowingCarouselDetach flag
- detachDesktopCarousel is now always false, except in home quick switch (QuickSwitchState)
- Updated home quick switch controller NoButtonQuickSwitchTouchController to apply DESKTOP_CAROUSEL_DETACH_PROGRESS

Fix: 411127271
Test: manual
Flag: EXEMPT flag cleanup and refactor
Change-Id: I1cbf0987b111d0111cb8b9b6c7994f4494780e1a
2025-04-17 05:08:41 -07:00
Vania Desmonda b8db0313bc Update usage of flags to dev options.
Bug: 361366053
Bug: 345296916
Bug: 381866902
Flag: EXEMPT refactoring flag
Test: presubmits
Change-Id: I7653ca4e7a2476402cfccbbc72194b14b10cb93f
2025-02-20 18:27:43 +00: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 1ada394e00 Simplifying some ActivityContext and StateManager methods
> Merging asContext and getContext meethod
> Simplifying some generic declaration in StateManager

Bug: 393703968
Flag: EXEMPT refactor
Test: Compilation
Change-Id: I679ac83e39b2a17f510698db15335aae8f735aad
2025-02-04 10:11:34 -08:00
Thales Lima c56864e3c5 Stop intercepting QuickSwitch gesture if there are no fullscreen apps open
Bug: 345296916
Test: Launcher tests
Flag: com.android.window.flags.enable_quickswitch_desktop_split_bugfix
Change-Id: I61cb2958bb4ce3234f9b2e50474e0dad906fe90d
2025-01-27 16:25:00 +00:00
minch 3695c7a64c Introduce hasTaskViews() to RecentsView
- This function is going to replace all the call sites that compares
  `getTaskVieCount()` and `0`.
- This is based on the fact that this count can not be a negative
  number.
- Introduce `getLastTaskView()` to get the last TaskView inside the
  RecentsView.

Flag: EXEMPT as no functionality changes
Bug: 379942019
Test: Manual
Change-Id: Iefb107d1aba61549a870f14c18e025c34b19a1b5
2024-12-11 23:44:16 +00:00
vinayjoglekar 88420d8636 Fix icon flicker from home-> overview when 3 button navigation is enabled in 3P launcher.
Flicker occurs due to calling fade for 0 to 1 twice which needed to be corrected.

Also renamed confusing terms for updating alpha of app icons.

Test: Manual. Install 3P launcher, 3 button navigation enabled, go to Overview.
Fix: 378419654
Flag: EXEMPT bug fix.
Change-Id: I46ff564712f5fd217c5992042ee441242159fe99
2024-12-06 14:25:34 +00:00
Schneider Victor-Tulias 5945b311e2 Remove unecessary uses of LauncherActivityInterface.INSTANCE
Using LauncherActivityInterface.INSTANCE directly causes easy-to-miss issues with 3P launcher support. Removing all unecessary uses.

Flag: EXEMPT code cleanup
Fixes: 365827636
Test: ran launcher on 1P and 3P launcher
Change-Id: Ief227a682db3dd8ad378273b76936b29ef51d017
2024-09-10 13:52:13 -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
Chris Göllner fa09b12443 Merge "Convert SysUiState flags from int to long" into main 2024-05-14 10:44:40 +00:00
Jeremy Sim 6198cf6544 Fix bug with flickering actions bar
This CL fixes a bug caused by ag/27148514. The bug occurred because:

1) The new way we use FloatProperty to set the alpha did not have a working `get()` function, so it just returned a junk value, set to `-1f` (I didn't think `get()` would ever be called meaningfully for this property).

2) However, during certain UI interactions, `RecentsView#updateActionsViewFocusedScroll()` is called many times in a loop, which repeatedly tries to re-start the fade-in animation for actions bar. Pre ag/27148514, even though the fade-in animation was called repeatedly, it would start and then immediately stop running because it realized that it was already set to the desired alpha. However now that we return a junk value for `get()`, it didn't know to skip and just ran the full fade-in animation again and again.

Fixed by refactoring FLOAT_SETTER (now ALPHA_PROPERTY) and creating a new data class, OverviewActionsAlphaProperty, that handles some of the intricacies of this increasingly complicated alpha system.

Fixes: 339545510
Test: Swipe to Overview, move tiles around, actions bar does not flicker.
Flag: ACONFIG com.android.wm.shell.enable_app_pairs NEXTFOOD
Change-Id: I1093363780db5e0780deda2ff14b4f7361d63940
2024-05-13 10:40:31 -07: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
Jeremy Sim 41eadd1a91 Fix bug with double-relayout of Overview Actions View
This CL refactors Overview Actions View so that a separate view, R.id.group_action_buttons, is used for buttons related to grouped tasks. This also changes the way visibility is handled with actions buttons -- instead of all buttons living on one bar and being toggled on and off, sometimes the whole bar is toggled on and off (to change from single task actions to group actions and vice versa).

This prevents the same view from having its visibility changed twice in in one layout and causing the wrong visibility to be rendered.

Fixes: 333844287
Test: Manual
Flag: ACONFIG com.android.wm.shell.enable_app_pairs NEXTFOOD
Change-Id: I1b6be4637ac8c8d424e7633c437fca376ecdd757
2024-05-07 11:18:24 -07: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
randypfohl 547d6fc472 abtracting Activity from recentsView through recentsviewcontainer and basecontainerinterface interfaces
This change will let us move from activity to other parent views for recent views.

Summary: In prep for new recentsview containers outside of activity we needed to decouple recentsview from activity and state.
This change will let us move from activity to other parent views for recent views.

Test: Built and tested locally for 1p and 3p launchers on tablet, and portrait modes. Verified working functionality.

Bug: 292269949

Flag: NONE

Change-Id: I5c72745f438d466362ece988c35a97d829e9c1b4
2024-04-10 09:14:28 -07:00
Eghosa Ewansiha-Vlachavas dc40eeae80 Merge "Disable quickswitch interactions with desktop mode" into main 2024-03-20 12:22:13 +00:00
Tony Wickham 77802d6da4 Cancel animations after reading MotionPauseDetector#isPaused()
Otherwise, it clears MotionPauseDetector so isPaused returns false.

Fixes: 330186943
Flag: none
Test: manual
Change-Id: I9e0982c18cc5264a1fab53077ac551d2880a6eae
2024-03-18 19:11:57 +00:00
Eghosa Ewansiha-Vlachavas 6faf846842 Disable quickswitch interactions with desktop mode
Disable quickswitch gestures when in desktop mode enviroment as well as
questures outside desktop mode that will result in the user entering
desktop mode.

Flag: NONE
Test: atest ShowImeOnAppStartWhenLaunchingAppFromQuickSwitchTest
      atest QuickSwitchBetweenTwoAppsForwardTest
      atest QuickSwitchBetweenTwoAppsBackTest
      atest QuickSwitchFromLauncherTest
      atest QuickswitchTest
      atest -c NexusLauncherTests:com.android.quickstep.TaplTestsQuickstep
      atest -c NexusLauncherTests:com.android.quickstep.TaplTestsTaskbar
      atest -c NexusLauncherTests:com.android.quickstep.TaplTestsTrackpad
      atest -c NexusLauncherTests:com.android.quickstep.TaplTestsTransientTaskbar
Fixes: 330148342
Change-Id: If11901e6642036f8b8dda38b3419f6c10980d902
2024-03-18 16:22:32 +00:00
Saumya Prakash 5983ac77d8 Fix jump in app launch when quick switching from Home
This change addresses a recent regression that caused quick switch to not scale up to full screen during the launch animation.

Fix: 326625526
Test: Launch quick switch from home and ensure it is a smooth transition
Flag: N/A
Change-Id: Id94d5d3eae0625225f880897e1e5f3cf9e4fea6c
2024-02-23 20:13:18 +00: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
Anushree Ganjam b8a71816e1 [Refactor] Use constants from Cuj.java instead of InteractionJankMonitorWrapper.
Bug: 303105164
Test: Manual
Flag: NA
Change-Id: I05a36fc0421502cd472dd79035b73a69d05592d2
2023-12-13 16:43:16 -08:00
Ats Jenk 5c25c3a19d Use aconfig flag for desktop mode
Refactors all flag access in Launcher to be from DesktopTaskView and using a method instead of a static field.
Also using static import for the method so if we need to move it, only imports needs to be updated.

Bug: 304778354
Flag: ACONFIG com.android.wm.shell.enable_desktop_windowing TEAMFOOD
Test: enable the aconfig flag, check that desktop windowing is available

Change-Id: Ia2bdfd865802a635878d72cfb5a90c21dad6ed08
2023-10-27 10:58:07 -07:00
Tony Wickham 2ea942b813 Add jank monitor for CUJ_QUICK_SWITCH from home screen
Flag: None
Test: adb logcat -b events | grep jank_cuj_events
  - Verified quick switch from home gets begin and end
  - Verified quick switch then swipe back or up to home
    gets begin and cancel
  - Verified quick switch then swipe up to overview
    gets begin and cancel
Fixes: 290323639
Change-Id: I4f1991251b111c0531b30c48ba610ce85dcafdd3
2023-07-25 19:18:20 +00:00
Andy Wickham 88dd86bda9 Revert "Switch ScrimView to use view alpha"
This reverts commit 99c4becf24.

Reason for revert: b/287488354

Change-Id: Ic4db08ca771f1d744ba2c19eb55b9f2d277ad529
2023-06-15 22:27:28 +00:00
vadimt 99c4becf24 Switch ScrimView to use view alpha
Using view alpha instead of background paint’s color alpha component
will make ScrimView alpha and visibility available to View Capture and
any analysis tool that’s based on it.

The change makes ScimView background completely opaque, and makes Scrim
View use variable alpha instead of always-1.0 alpha.

Changes some code that depends on the old way of representing ScrimView
opacity.

Also moves “updateSysUiColors()” call in ScrimView#setBackgroundColor
below updating alpha and background color so the new values are used in
the calculations.

Bug: 282991128
Test: local, presubmit
Change-Id: I6ca089bae55adfb9c3140d06da4fbb3b08f2bf8b
2023-06-02 15:47:51 -07:00
Kateryna Ivanova 72fbdc7976 Merge "Migrate Interpolators from Launcher3 to the public animation library" into udc-qpr-dev 2023-05-31 15:25:40 +00: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 48ac5a0f74 Simplify trackpad multi-finger gesture recognition logic for gesture nav
Now we can use AXIS_GESTURE_SWIPE_FINGER_COUNT per ag/23288416

Test: swipe up to overview / home; workspace scroll 2-finger only / quick switch/ pull down notifications works
Bug: 284463803
Change-Id: Ie1c7d13f4683d3b9c8de6e5ea2821df73b97ca29
2023-05-27 21:16:25 -07: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
Tracy Zhou 7dc9e3a088 Support 4-finger gesture to quick switch
Fixes: 270610237
Test: 4-finger horizontal swipe -> quick switch
Change-Id: I981a7e93ecd07357c7a9cda075f476b397c448cc
2023-04-20 22:34:19 +00:00
Tracy Zhou 897e665852 Update home screen trackpad gesture behaviors
- 3-finger swipe up to go to overview
- 2-finger swipe down to pull down notifications
- 2-finger swipe up to open all apps

Fixes: 273972106
Test: manual
Change-Id: I61bd0ad98b21abeb5f9b00786fe358c03a49f539
2023-03-22 23:00:07 +00:00
Ats Jenk ce6cebd392 Disable quickswitch for desktop windowing
When desktop windowing prototypes are enabled, disable quickswitch for
now.
Quickswitch causes issues with how tasks are moved between desktop and
fullscreen in prototype 2. We are currently doing it based on shell
transitions. And whether there are desktop tasks visible or not.
Directly switching from a fullscreen task to desktop tasks does not fit
well into this model. And supporting this is not trivial.
As quickswitch is not a core user journey right now, will disable
quickswitch for the time being.
We can revisit this at a later date, when building out the production
version.

Bug: 268075592
Test: enable proto 1, try to quickswitch from home screen and from apps
Test: enable proto 2, try to quickswitch from home screen, from
  fullscreen app to desktop, fullscreen app to another fullscreen app,
  from desktop to fullscreen app
Change-Id: I06b3461f0134819cfa7c9e5f61df8ed84cc90eb8
2023-02-14 10:47:37 -08:00
Vinit Nayak 82b8aa561a Rename LauncherState QUICK_SWITCH to QUICK_SWITCH_FROM_HOME
Test: compiles
Bug: 265734073
Change-Id: I38e23c62b1eeae6a26db9c388655a8ffceb025b6
2023-02-03 10:38:21 -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
Federico Baron 47d81686e6 Move AnimatedFloat from quickstep to launcher
We are moving AnimatedFloat to launcher to be able to use this in class in launcher. Having it in launcher will allow us to do restore icon treatment animations to do with scaling the icon size

Bug: 254858049
Test: verified that the device still works
Change-Id: I1c4c47ab436c389a94abf7c910c1a44724efc955
2022-12-08 13:58:07 -08:00
Pat Manning b4a30ab955 Merge "Refactor overview progress as splash progress." into tm-qpr-dev 2022-08-30 13:29:53 +00:00
Pat Manning 81dc9ad131 Refactor overview progress as splash progress.
This also avoids showing splash in split select state

Fix: 242284413
Test: follow up after b/238405972
Change-Id: I2e83fa3d030e8a74edb4152c472dbf02ac5a80b1
2022-08-30 11:23:08 +01:00
Sunny Goyal d6801af69a Inlining BaseQuickstepLauncher to QuickstepLauncher
Bug: 243022799
Test: Presubmit
Change-Id: I3706fc1f10d88ea73bd873c7e94c3e78795791eb
2022-08-24 12:51:21 -07:00
Schneider Victor-tulias 1dbffe0af7 Remove unused logs
Fixes: 240173459
Test: Started launcher
Change-Id: I853d9a50a0c34a7fdda87ea20d46a9f7ac7542e3
2022-07-29 13:06:24 -07:00
vadimt f6ef879cf4 Moving all sources that are shared between Launcher and TAPL in one directory
This will help SysUI test team (who uses TAPL) to set up Gradle build for their tests.

Bug: 202567877, 234414088
Test: presubmit
Change-Id: I3d923ea4b54d1a4c3d2b345be09692727d30433e
2022-07-27 20:18:46 +00:00
Alex Chau 66bac181ac Merge "Revert "Move BaseActivityInterface task size methods to DevicePr..."" into tm-qpr-dev 2022-07-26 09:36:18 +00:00
Tony Wickham bbfbe60f72 Merge "Hide the task icon during quick switch from home" into tm-qpr-dev 2022-07-26 00:43:55 +00:00
Alex Chau 62572c04e2 Revert "Move BaseActivityInterface task size methods to DevicePr..."
Revert "Move BaseActivityInterface task size methods to DevicePr..."

Revert submission 19279487-baseactivityinterface

Reason for revert: As per discussion in ag/19341332, make sure DeviceProfile can properly react to inset changes before moving task size calculations there
Reverted Changes:
I30324d34c:Move BaseActivityInterface task size methods to De...
Ia9c1d0387:Move BaseActivityInterface task size methods to De...

Bug: 238593212
Change-Id: I0d40fdd4a5d4468494e30cef32a284479ddd2feb
2022-07-25 18:38:03 +00:00
Tony Wickham 355b66d1ab Hide the task icon during quick switch from home
Test: manual
Fixes: 238753582
Change-Id: Ic1badf4479c5273fd4d182ef7da04797885a6a36
2022-07-20 15:29:24 -07:00
Pat Manning 4e73e5e352 Move BaseActivityInterface task size methods to DeviceProfile.
Fix: 238593212
Test: DeviceProfilePhoneTest.kt
Test: DeviceProfileVerticalBarTest.kt
Test: DeviceProfilePhone3ButtonTest.kt
Test: DeviceProfileVerticalBar3ButtonTest.kt
Test: DeviceProfileTabletLandscapeTest.kt
Test: DeviceProfileTabletPortraitTest.kt
Test: DeviceProfileTabletLandscape3ButtonTest.kt
Test: DeviceProfileTabletPortrait3ButtonTest.kt
Test: DeviceProfileTwoPanelLandscapeTest.kt
Test: DeviceProfileTwoPanelPortraitTest.kt
Test: DeviceProfileTwoPanelLandscape3ButtonTest.kt
Test: DeviceProfileTwoPanelPortrait3ButtonTest.kt
Change-Id: I30324d34ca119a467f530b590949743c2ba7b91a
2022-07-18 16:35:02 +01:00