Commit Graph

107 Commits

Author SHA1 Message Date
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
Sunny Goyal 3912808183 Merge "Merging MultiValueAlpha with MultiPropertyFactory" into tm-qpr-dev 2022-10-25 21:39:11 +00:00
Sihua Ma 4421353ce8 Merge "Get rid of setInteractionHandler call to the host in launcher" into tm-qpr-dev 2022-10-25 02:44:16 +00:00
Sihua Ma 8ca56fe1cd Get rid of setInteractionHandler call to the host in launcher
Bug: 235358918
Test: N/A
Change-Id: I0defac1831825bf0a13a601dd1502b4ca022bc2e
2022-10-24 14:56:11 -07:00
Sunny Goyal d859060860 Merging MultiValueAlpha with MultiPropertyFactory
Bug: 246644619
Test: Presubmi
Change-Id: Id5abc5f3169544656f1139ae17ca59e34ac65dac
2022-10-24 14:38:18 -07:00
TreeHugger Robot b9bced07c2 Merge "Removing unnecessary RemoteAnimationTargetCompat" into tm-qpr-dev 2022-10-24 21:32:34 +00:00
Sunny Goyal 8a11443333 Removing unnecessary RemoteAnimationTargetCompat
Merged-In: I12a4c29eaf9bd7d97d3c02074b4cc1ca452fc88a
Bug: 221961069
Test: Presubmit
Change-Id: I12a4c29eaf9bd7d97d3c02074b4cc1ca452fc88a
2022-10-24 17:17:36 +00:00
Mady Mellor 9a90c2d521 Hide launcher when freeform tasks are visible
This CL introduces a new controller to manage the visibility of the
launcher workspace when desktop mode is active and freeform tasks
are visible.

This controller will be notified when the sysui state flag related
to freeform task visibility is changed.

The controller will modify the workspace visibility as well as
the flags on the activity indicating if it's been paused / resumed
based on freeform tasks being visible or not.

Bug: 245569277
Test: manual -  enable desktop mode and open some freeform tasks
             => observe that the contents of launcher is hidden and
                taskbar shows
             -  remove all of the freeform tasks
             => observe that the contents of launcher reappears along
                with the hotseat.
Change-Id: I378ab97b40cbb954a06f4e2426b195efddad905c
2022-10-21 10:06:54 -07:00
Alex Chau 950a10738b Fix STATE_DEPTH stuck at 1 after setting wallpaper
- Made BaseDepthController.setDepth/mDepth private, all get/set should be done through STATE_DEPTH or WIDGET_DEPTH
- Generified ClampedDepthProperty into Utilities.ClampedProperty to apply on STATE_DEPTH

Bug: 240580498
Test: Go to walppaper&style, set new wallpaper, then go to widget picker, wallpaper depth should transition smoothly
Change-Id: I53cdedf970fd7ffba6a952c4edf4b34251b01f07
2022-10-18 17:07:17 +01:00
Nicolò Mazzucato 4afab0b210 Merge "Cancel unfold animation when rotation changes" into tm-qpr-dev 2022-10-13 23:06:50 +00:00
Nicolo' Mazzucato 74c3a0024b Cancel unfold animation when rotation changes
In DeviceFoldStateProvider.kt, FOLD_UPDATE_FINISH_HALF_OPEN is emitted if the rotation changes while the animation is in progress.

 This targets the case when the device goes to tabletop mode during the transition.

+ Using RotationChangeProvider to fix problems when the new orientation change was received in a background thread unexpectedly. This fixes: (1) wrong launcher icons movement after the rotation, and (2) wrong dark overlay scrim after rotation.

+ Minor formattig fixes by ktfmt

Bug: 241743859
Test: DeviceFoldStateProviderTest && NaturalRotationUnfoldProgressProviderTest && manual stress testing
Change-Id: Iee234e4b832cad8298b69356fce7c14d75e89ccc
2022-10-13 09:16:44 +00:00
Tracy Zhou c0095e81ae Remove ENABLE_QUICKSTEP_LIVE_TILE flag
Fixes: 249627137
Test: manual - (1) swipe up from app (2) swipe home (3) quick switch (4) split in overview
Change-Id: Ibe56ba3824b379b20fb3f0aa09be4d6bdb5abaa1
2022-09-29 04:58:52 +00:00
Vinit Nayak 5144be3903 Prevent taps on initial TaskView animated into split select
Fixes: 247843657
Test: Tapping on animating taskView as soon as
split top is selected from app menu doesn't result
in starting split prematurely.

Change-Id: I94455d9bab381e5223f70cab981830d51a8fad6b
2022-09-21 16:57:53 -07:00
TreeHugger Robot af2fe7fd12 Merge "Turn off changing depth in wallpaper picker" into tm-qpr-dev 2022-09-16 16:50:04 +00:00
Alex Chau fa83199e62 Turn off changing depth in wallpaper picker
Fix: 246845529
Bug: 240580498
Test: manual
Change-Id: Ib8fd624c518fb4c26d2598137d056b196a0ddeb7
2022-09-16 16:39:47 +08:00
TreeHugger Robot 9fb4802a67 Merge "Moving ViewCapture to Quickstep level to use hidden apis." into tm-qpr-dev 2022-09-16 06:23:07 +00:00
Stefan Andonian 5df305fed6 Moving ViewCapture to Quickstep level to use hidden apis.
Bug: 242867462
Test: Compilation succeeded while using private flags.
Change-Id: I9b15967b594963c5573ea1a0000b60f7c705da95
2022-09-16 03:36:15 +00:00
TreeHugger Robot e58e123bd7 Merge "Add metrics sources for split invocation" into tm-qpr-dev 2022-09-15 09:35:12 +00:00
Vinit Nayak 7fb4f997c4 Add metrics sources for split invocation
* See design doc in bug description for
usage/details

Bug: 231369744
Change-Id: I0c0ec11e924e387c523b5ac5feb7cabf78eaa748
2022-09-14 11:58:03 -07:00
Winson Chung 3f649ef892 Update Launcher for removed shared wrappers
- Launcher can reference system code directly now

Bug: 219861883
Test: Builds/Presubmit
Change-Id: I3f656b6c7fce93243ccb7591e52441e99137dec6
Merged-In: I3f656b6c7fce93243ccb7591e52441e99137dec6
2022-09-14 17:14:32 +00:00
TreeHugger Robot 3ded296cee Merge "Change wallpaper depth in widget picker" into tm-qpr-dev 2022-09-13 18:46:53 +00:00
Alex Chau 3d2c062567 Change wallpaper depth in widget picker
- Also changed widget picker open/close duration, refactored the values into DeviceProfile
- Generalized MultiAdditivePropertyFactory to accept aggregator as parameter

Bug: 240580498
Test: manual
Change-Id: I6886ca514593e404b8d7b0e8ed44f20ec2b77c73
2022-09-13 12:20:56 +08:00
Sunny Goyal 42beb544e9 Removing UiThreadHelper and moving code to corresponding classes
This allows for better code organization based on the code logic

Bug: 246382466
Test: Presubmit
Change-Id: I6148143a60afdd917a11587e327f5e8a4d7def9e
2022-09-12 22:14:15 +00:00
Sunny Goyal 1eb1124d82 Removing back-button alpha animation code
Back button is only animation in 2-button UI which is not supported anymore

Bug: 246006580
Test: Presubmit
Change-Id: I7385b07272e44c1f9f0488c158e1b4ee67060120
2022-09-09 17:15:24 -07:00
Alex Chau 0f1001c7b1 Merge "Use real IDP in DeviceProfileTest" into tm-qpr-dev 2022-09-07 13:45:16 +00:00
Alex Chau e818bcb997 Use real IDP in DeviceProfileTest
- Mock WindowManagerProxy instead of IDP in DeviceProfileTest
- Extracted NavigationMode to standalone class
- Moved parseNavigationMode to WindowManagerProxy so it can be mocked
- Moved DeviceProfileTest to internal repo

Bug: 242086027
Test: DeviceProfileTest
Change-Id: Ia5a43293b1380f04d786d2adf8503cfd10f7674a
2022-09-07 10:35:21 +01:00