Commit Graph

132 Commits

Author SHA1 Message Date
Mateusz Cicheński 321127d14a Merge "Fix entry bounds for 3 button nav" into tm-qpr-dev 2023-03-08 23:52:41 +00:00
Mateusz Cicheński c5cbf0f326 Fix entry bounds for 3 button nav
The fix uses the similar approach to shelf height to ensure that the
keep clear area is being updated as soon as possible for quickstep.

Without this, the entry animation finishes before the actual keep
clear area from the view is registered, which causes the PiP to enter
lower right corner and then move up, which was the regression.

Bug: 260779127
Test: manually
Test: http://recall/-/g8x7ZkgdfbqscttAA9wzl9/72aNHwWH5wihwN4gf3mfj

Change-Id: Ide11a903558d7e6cb9e477abe12b81129a7f7afc
2023-03-07 07:50:06 +00:00
Charlie Anderson 52caf63404 Fixes several Visual issues with the app shortcut popup
- Fix system shortcut alignment and ordering.
- Replace horizontal split icon with correct size drawable.
- Remove popup shortcut reversing logic, and instead show same order of shortcuts regardless of orientation.

Test: tested manually on tablet and phone
Bug:269343928
Change-Id: I1700ad1ee04abf0820c87d89e1dc07d6880fd519
2023-03-06 16:40:51 -05:00
Hyunyoung Song eeee84efb6 Merge "Hide the splash icon when launching with no view and no item." into tm-qpr-dev 2023-03-06 18:23:32 +00:00
Nick Chameyev c7ab991818 Merge "Do not use private APIs in unfold module" into tm-qpr-dev 2023-03-03 13:22:03 +00:00
Luca Zuccarini f295e3a85a Hide the splash icon when launching with no view and no item.
This is achieved by instead creating an empty item info that only
specifies the splash type to be solid color.

Bug: 269343536
Test: manual
Change-Id: Ibf5c8f1c949e26af207b8c6e382f71677b9acc2d
2023-03-02 18:19:38 +00:00
Jeremy Sim e35d112693 Fix bug with Taskbar not differentiating between user profiles
This patch fixes a bug where Taskbar would not differentiate between user profiles when selecting an app to launch from Overview.

The bug occurred because findLastActiveTaskAndRunCallback(), which checks for already-running tasks when launching an app from the Taskbar, only checks for a ComponentName match and not a userId match.

Fixed by making the findLastActiveTaskAndRunCallback() also check for a userId match.

Fixes: 270456926
Test: Manual
Change-Id: I43ff06083a5dce775fdbd0b0ed951beaae34c0ab
2023-03-01 10:57:41 -08:00
TreeHugger Robot 01c1dff441 Merge "ENABLE_WIDGET_PICKER_DEPTH" into tm-qpr-dev 2023-02-23 13:22:15 +00:00
Alex Chau ce9766da2d ENABLE_WIDGET_PICKER_DEPTH
Fix: 270393895
Test: manual
Change-Id: I167354425e5469663c283919f84c8bdf664cceec
2023-02-22 20:18:39 +00:00
Vinit Nayak 4e3636e8d0 Refactor SplitSelectStateController to add testing
Bug: 266482558
Change-Id: I2d62a3a310043710d66a26bc533df2309084b81e
2023-02-22 10:51:49 -08:00
Vinit Nayak 54c262cd67 Merge "Move split functions from RecentsView to SplitSelectStateController" into tm-qpr-dev 2023-02-22 02:15:46 +00:00
Nick Chameyev dd2311e7f7 Do not use private APIs in unfold module
Removes usages of the private/hidden APIs
in unfold module so it could be easily
reused in 1p/3p apps.

Bug: 258828766
Test: manual fold/unfold with a full screen
 app and in split screen
Change-Id: I79618af5f1e4bd7da66b840e321403bb33cf7e95
2023-02-21 18:26:46 +00:00
Vinit Nayak c97bb4600f Move split functions from RecentsView to SplitSelectStateController
* Moving things out of RecentsView to avoid
dependency on a non-testable class
* Also helping prevent bloating RecentsView.java

Bug: 266482558
Test: Single Chrome instance in recents. Initiate split
with Chrome from workspace, tap on Chrome again in Taskbar,
ensure no crash.

Change-Id: I99ec704479ffaa860f4d80c2cb9f54182f31f41a
2023-02-17 17:28:08 -08:00
Schneider Victor-tulias 0bba3d6184 Keyboard quick switch polish
- Added support for escape(backtick on some keyboards) keyboard keys
- Added support for d-pad left and right keyboard keys
- Fixed janky behaviour when quick switching too quickly.
- Removed unused code

Bug: 269618928
Test: Tried quick switch very quickly, tried escape, d-pad left and right keys in RTL and LTR modes
Change-Id: Ie03207cb349891e9c2de18502f3f65b7c8f9c018
2023-02-17 15:44:04 -08:00
Schneider Victor-tulias f908729fa8 Add the KeyboardQuickSwitchView (1/2)
Preparatory change for adding the KeyboardQuickSwitchView and associated flows.

Test: Manually tested alt-tab and alt-shift-tab in and out of overview on a tablet and phone
Bug: 258854035
Change-Id: I468481a023e82d3ef7c7d4d44c5b9435173b49ae
2023-02-13 15:34:39 -08:00
Nicolò Mazzucato 5147b1d509 Merge "Drive Launcher unfold animation from System UI" into tm-qpr-dev 2023-02-11 09:24:42 +00:00
Nicolo' Mazzucato 8d9edd292b Drive Launcher unfold animation from System UI
Before this cl, both Launcher and System UI processes were registering for hinge angle and device state (e.g. folded/unfolded) change events to calculate the current unfold animation progress. In some cases, launcher ui thread was busy, delaying the progress calculation from the hinge angle value (that was received ~at the same time by both processes). This resulted in launcher and sysui unfold animation not being synchronized in some cases.

With this cl, System UI process uses OverviewProxyService to send the unfold events to Launcher. In this way, both process always have the exact same progress (+- 1 frame)

This is currently guarded by a launcher flag, by default with the new behaviour, to allow devs to compare the experience and easily debug potential regressions.

Bug: 268490854
Test: Analysed perfetto trace + RemoteUnfoldTransitionProgressProviderTest + manual
Change-Id: If15fd6fe39abb3d922c5fdb327100206dfa3665d
2023-02-10 22:04:19 +00:00
Lucas Silva bc333343ec Merge "Allow QuickstepTransitionManager to be overridden" into tm-qpr-dev 2023-02-10 20:47:27 +00:00
Lucas Silva 099341fa97 Allow QuickstepTransitionManager to be overridden
This allows for custom animations in classes inheriting from
QuickstepLauncher

Bug: 260637266
Test: flashed device and verified animation
Change-Id: I21fa112851e9ce43037151fc4c2fd21e90056712
2023-02-10 10:41:39 -05:00
Luca Zuccarini 527679d258 Merge "Disable splash icon when launching a search result." into tm-qpr-dev 2023-02-10 12:20:53 +00:00
Ats Jenk d9f6d4e31c Fix invoking transient taskbar in desktop windowing prototypes
When transient taskbar is invoked, it starts the recents animation.
Recents animation triggers the launch of launcher activity. We need to
ensure that after recents animation is cancelled (since the gesture was
only for taskbar), we bring the desktop tasks back to front.

When the transient taskbar gesture finishes, we need to ensure that
launcher state is restored to normal. With fullscreen tasks, launcher
activity in stopped after gesture finishes as a fullscreen task is on
top. This stop triggers the launcher state to return to normal.
When freeform tasks are visible on top of launcher, launcher activity is
not stopped. This means we have to manually move launcher to normal
state after transient taskbar gesture finishes.

Bug: 267364407
Test: enable proto 1, switch to desktop mode and open some tasks, swipe
  up for transient taskbar, swipe up to recents view
Test: enable proto 2, move a task to desktop, swipe up for transient
  taskbar, swipe up to recents view
Change-Id: I712bc5086407c26779638d824f34674f7db1ff51
2023-02-08 15:16:43 -08:00
Luca Zuccarini 3be7449605 Disable splash icon when launching a search result.
Bug: 262751986
Test: manual, see videos in bug
Change-Id: I58888ee58f3e02541bcdf6b3e775a2dc077a30b7
2023-02-03 11:49:11 +00:00
Stefan Andonian 526e168906 Move ViewCapture On/Off controls to QuickSettings Tile.
Rather than use a feature flag for this feature, the on/off state will
be stored as a system setting and will be changed via a QuickSettings
tile.

Bug: b/264452057
Test: Verified that the new QuickSettings tile doesn't crash via normal
interactions (pressing, long-pressing, etc.). Also verified that
ViewCapture is turned on when the QuickSettings tile is in the enabled
state and is turned off when it is in the disabled state.

Change-Id: I90551511ac2766dc30c51a25aec2c96e3e552ce9
2023-01-30 22:51:26 +00:00
Vinit Nayak d710773889 Merge "Launch initial split from taskbar in overview app menu" into tm-qpr-dev 2023-01-28 05:25:12 +00:00
Vinit Nayak 49dc6d2712 Launch initial split from taskbar in overview app menu
* Consolidated init calls in SplitSelectStateController
* Also add support to launch from taskbar all apps
* Add logic in SplitSelectStateController to know whether
or not we need to dismiss existing TaskView vs relying
on mSplitHiddenTaskView null check
* Default click handling for SplitShortcut is to start
split selection mode

Bug: 251747761
Test: Initiated split from smart actions, thumbnail app
icon, home, taskbar in overview, all apps. Saw it choose
the latest thumbnail

Change-Id: Ib4f64e619c97615af458a19a9c0efd86c92979d9
2023-01-27 16:46:14 -08:00
Fengjiang Li 6bb8d79549 Predictive back: widget to all apps
This CL adds a layer of OnBackPressedHanlderRouter to Launcher:
1. 4 OnBackPressedHandler(s) are added in such order: auto cancel action mode handler, drag handler, view handler and state handler
2. first handler who can handle back will handle the entire back gesture
3. Let WidgetsFullSheet to handle widget to all apps transition

Bug: b/260956481
Test: manual
Change-Id: Idbce3dcec746226dd68aaabaddc8fe01334e9673
2023-01-24 15:51:46 -08:00
Sunny Goyal a992ac9e8d Moving all intent receiver register calls to a single place
This is eventually allow us to move all register to background thread
Also creating a single ScreenOn tracked which is used at multiple places

Bug: 264465756
Test: Verified on device
Change-Id: Ibadf9ca43218e578954420d97a733adfa0a94fc7
Merged-In: Ib410e5bf02773cefde5bf0a0a1f2f1c108718d24
2023-01-22 05:24:48 +00:00
Nicolo' Mazzucato 62fe4445c7 Add OPTIMIZE_MEASURE flag to QuickSteplauncher window
This flag allows to avoid an initial measure pass by getting the window size by the LayoutParams.

Test: Recorded a trace before and after this change and compared the doFrames
Bug: 265150323
Change-Id: I2c1e440b73437df9f328d64c98d160bed11282f3
2023-01-19 16:48:11 +00:00
Nicolo' Mazzucato cb7bd50247 Log device profile changes in perfetto traces
This is needed to easily spot unwanted DeviceProfile changes in perfetto traces, as each one causes many new inflation and slows down the ui thread considerably.

Test: recorded trace with this log
Bug: 258214245
Change-Id: I805d56d4dfe1c08d7f28215c0462d01fcaece84e
2023-01-17 14:54:11 +00:00
TreeHugger Robot 60c7dfec29 Merge "Provide single threaded executor to UnfoldUnfoldTransitionFactory" into tm-qpr-dev 2023-01-13 15:49:07 +00:00
Ats Jenk 1c28f290c1 Merge "Skip depth and scrim if freeform tasks are visible" into tm-qpr-dev 2023-01-12 22:39:57 +00:00
Ats Jenk ca009e4e93 Skip depth and scrim if freeform tasks are visible
If freeform tasks are shown, skip applying depth effect and scrim
changes. These cause the background to flicker while showing freeform
tasks and for example showing the transient taskbar.

Bug: 263264985
Test: swipe up to show transient taskbar, observe launcher background
does not blur or flicker to black

Change-Id: I5b10d0f0c7065e903cb761488367c02d7e31d8b2
2023-01-12 10:15:30 -08:00
Nicolo' Mazzucato 696238e086 Provide single threaded executor to UnfoldUnfoldTransitionFactory
This fixes a concurrency issue where HingeSensorAngleProvider was being stopped and started at the same time in a thread-pool after a fast fold/unfold, despite not providing concurrency guarantees.

In sysui, the background executor provided was already single threaded, so no issue arisen. From Launcher, THREAD_POOL_EXECUTOR was provided.

In a follow up cl, I'll add a @SingleThreadBackground annotation to the executor used in the unfold lib.

Bug: 261320823
Test: manually stress tested fold/unfold.
Change-Id: Iccf1f1f7246d8592d4d80a032479aa75f0050655
2023-01-12 09:19:48 +00:00
Fengjiang Li e884c2c79f Support predictive back from all apps to home
bug: b/238475505
Test: manual

Change-Id: Ibf4f7f41a26b044a538e2cd566d2297ed88f1b99
2023-01-11 22:55:28 +00:00
Ats Jenk f6ba9499de Fixes to support transient taskbar in desktop mode
Track gesture progress in desktop visibility controller. We need to
allow launcher to resume when gesture is in progress and freeform tasks
are visible.
Update overview state handling in desktop visibility controller. When
overview is enabled, launcher should be made visible, regardless of
freeform state. When exiting overview state, check freeform state to see
what should be shown and enabled.

Bug: 263264985
Test: manual, enable transient taskbar, move app to desktop, invoke transient
taskbar
Test: manual, enable transient taskarb, enable desktop mode, invoke
transient taskbar
Test: manual, disable transient taskbar, move app to desktop, swipe up
to overview
Test: manual, disable transient taskbar, enable desktop mode, swipe up
to overview

Change-Id: I63000441d9cf72769e6efb9d247ab4112c01839d
2023-01-04 17:27:54 -08:00
Pat Manning eef0b1640b Merge "Do not animate moving to rest state on CHANGE_ACTIVE_SCREEN." into tm-qpr-dev 2022-12-22 17:47:57 +00:00
Pat Manning cc31ba5360 Do not animate moving to rest state on CHANGE_ACTIVE_SCREEN.
Fix: 259380717
Test: manual
Change-Id: Icec103b26603290c7998977fa9c4d89132620a9d
2022-12-21 11:37:47 +00:00
Ats Jenk ebfe6b6776 Merge "Taskbar fixes when apps move to desktop and back" into tm-qpr-dev 2022-12-20 23:29:26 +00:00
Ats Jenk 0ea4768a02 Taskbar fixes when apps move to desktop and back
Fixes to taskbar state when tasks are moved to desktop and fullscreen.

When freeform tasks are visible and we start a new task from taskbar, it
first launches in fullscreen. Transition handler in WMSHell switches it
to freeform as needed. This switch causes launcher activity to be paused
and then resumed. Resuming launcher activity while freeform tasks are
visible, puts the launcher into an incorrect state. (Launcher should
appear paused while freeform tasks are visible).

When a freeform task switches to fullscreen, freeform tasks are no
longer visible. This causes us to resume the launcher activity. We
should not do that if a fullscreen task is visible as it puts the
launcher into an incorrect state. It appears resumed even though the
activity is paused. Added a check to DesktopVisibilityController that
checks if the activity is actually resumed before marking it appear as
resumed.

Test: manual, switch a task to freeform, launch another freeform task
  from taskbar, taskbar should continue to be available
Test: manual, switch a task to freeform, switch the task back to
  fullscreen, taskbar should continue to be available
Bug: 261234278

Change-Id: Ia8d208619fabfcc9bffff6d8d227b236cb62a00c
2022-12-20 10:34:07 -08:00
Sihua Ma 04c89fe38e Merge "Add QuickstepWidgetHolder for widget handling" into tm-qpr-dev 2022-12-19 18:22:38 +00:00
Sihua Ma 1db8bc2467 Add QuickstepWidgetHolder for widget handling
Fix: 235358918
Test: Manual
1. Rebooted the device and verified that widgets are still updating properly
2. Changed the theme from dark to daylight, then from daylight back to dark and verified that widgets are working
3. Kept the device on for several days and verified that widgets are still updating
4. Turn on auto-rotate for the launcher, open any app then exit, verified that widgets will not vanish and reappear
5. Add & remove widgets from the screen, added widgets are still updating

Change-Id: I98ee902f7d16b47bd77626201a4fefc897ba17a0
2022-12-16 11:56:36 -08:00
Nicolo' Mazzucato 1ee66e943a Add logs to aid missing unfold animation on launcher investigation
Bug: 261320823
Test: Manual
Change-Id: If714750c85ee49e66e21462ab9d2675ab0be8b55
2022-12-06 13:06:01 +00:00
Tracy Zhou a71d353ff8 Merge "Implement split from workspace to workspace" into tm-qpr-dev 2022-11-17 07:04:48 +00:00
Sihua Ma 8bbfcb6581 Move LauncherWidgetHolder to widget package
Making LauncherAppWidgetHost package-private as well

Bug: 235358918
Test: N/A
Change-Id: If022ec8d429579a972991872b2dc11db76719341
2022-11-16 14:31:14 -08:00
Tracy Zhou 7e0f5d8a57 Implement split from workspace to workspace
Fixes: 239824922
Test: https://recall.googleplex.com/projects/f46cfe9c-8076-4efe-bf8a-b1cc4f1f5e1b/sessions/b745433d-cba7-4f7a-a28d-4223d9950c0b
Change-Id: I9bfd5844bb9ccb6e65e77fedb7fbccb37692f812
2022-11-15 22:11:28 -08:00
Sunny Goyal 82379187ea Adding support for multiple overlay callbacks
Bug: 193244407
Test: Presubmit
Change-Id: Ic345972056752238e7e46226533fd8f33d664213
2022-11-03 14:37:40 -07:00
Tracy Zhou ba0b5952c8 Support split from fullscreen with shortcuts
Recording: https://recall.googleplex.com/projects/f46cfe9c-8076-4efe-bf8a-b1cc4f1f5e1b/sessions/978a3a55-2982-4026-9726-2a73cb694258

TODO: improve transition animation

Bug: 246661484
Test: manual
Change-Id: Id0d1aec0685bc18f4b273f8e466996efc1d9a3d8
Merged-In: Id0d1aec0685bc18f4b273f8e466996efc1d9a3d8
2022-11-01 04:30:39 +00:00
Sihua Ma 17137e8bce Merge "Created LauncherWidgetHolder as a wrapper for LauncherAppWidgetHost" into tm-qpr-dev 2022-10-27 17:53:28 +00:00
Sihua Ma 0593a0d3ec Created LauncherWidgetHolder as a wrapper for LauncherAppWidgetHost
The wrapper class is created for further changes that will run the wrapped host in the background.

Test: N/A
Bug: 235358918
Change-Id: I9bd6fc2749c5d4a4d3391fb75d0c3ff1e13d17bf
2022-10-26 10:57:13 -07:00
Johannes Gallmann 6518efce73 Extracting ViewCapture into common Library
The ViewCapture functionality is extracted into a common Library accessible to the Launcher and SystemUi modules.

Test: None yet
Change-Id: I4be394ed8dc86e30f6b8c69c438b8bc943e7907c
2022-10-26 12:29:30 +00:00