Commit Graph

468 Commits

Author SHA1 Message Date
Matthew Mourgos 4ddf9f1df1 Merge "Disable swipe up on workspace when launcher is not the top task" into main 2025-05-28 14:26:33 -07:00
Treehugger Robot 6e3d6d0a69 Merge "Moving bottom sheet variables to their own class" into main 2025-05-28 11:11:40 -07:00
Matthew Mourgos eca91f8de6 Disable swipe up on workspace when launcher is not the top task
When freeform windows are shown on top of launcher, disable the swipe up
to open all apps, which would open behind these windows. This change is
inteded for the desktop form factor.

Bug: 419565477
Flag: com.android.window.flags.show_home_behind_desktop
Test: Manually swipe up on home screen with freeform windows shown.
Change-Id: I795e9e05fe39b0cf8033b51ce4369340d49ef812
2025-05-28 10:55:16 -07:00
Will Osborn fb1e460fa4 Merge "Only cleanup DEFAULT_DISPLAY WindowManager on new Intent" into main 2025-05-28 07:11:04 -07:00
Sebastian Franco 6dcdd67e23 Moving bottom sheet variables to their own class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: Ibaee4e94e54dbeb2f79ea5c1b6e73415ae219251
2025-05-28 13:48:44 +00:00
Will Osborn 20c8e17553 Only cleanup DEFAULT_DISPLAY WindowManager on new Intent
Bug: 418915817
Flag: com.android.launcher3.enable_overview_on_connected_displays
Test: locally tested on comet
Change-Id: Iea4f56de63736502b3c81d0e7867229fcf28b276
2025-05-28 09:43:10 +00:00
Tony Wickham 84cd5182ba Merge "Migrate some logs to OverviewCommandHelperProtoLogProxy" into main 2025-05-23 22:44:08 -07:00
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
Tony Wickham e9ef7ad43c Migrate some logs to OverviewCommandHelperProtoLogProxy
This will allow us to see the logs in Winscope, including frame by
frame to make debugging easier.

Also added a log for Launcher#onNewIntent to help with Home button.

Test: EXEMPT log only update
Bug: 417248321
Bug: 384423890
Flag: NONE log only update
Change-Id: Ib24aeb78e44ff29542eb25411c51f77dba299a2e
2025-05-21 15:32:03 -07:00
Andy Wickham dc681e83e7 Only update All Apps scrim (panel) when blur state changes.
Previously we updated many other things, such as the buttons and RV
decorators, but the latest UX guidance is to use the same colors
when blurs are enabled or disabled, other than the panel color.

Note: When Overview blur is enabled, the activity is recreated and
this change is redundant. So this is only done if that flag is off.

Demo with home and taskbar all apps (toggling blur with adb):
https://drive.google.com/file/d/1HzveExKpAERxMVdu7JXQSYeGRwaBNR4_/view?usp=sharing&resourcekey=0-l-dGWOS6aCQjj2KStvwySA

Fix: 413229346
Flag: com.android.launcher3.all_apps_blur
Test: Manual with battery saver and `adb shell wm disable-blur 1` / 0
Change-Id: I55c9b46f0999c574c29a6ac7ae557b1e30d91d15
2025-05-19 19:20:34 -07:00
Alex Chau 557d8e6d7f Reland "Recreate Launcher activity when blur enabled changes"
- When battery saver changes, WallpaperThemeManager always recreate activity to reapply theme base on wallpaper color hint changes
- Battery saver change can also result in light/dark theme changes, for which WallpaperThemeManager also recreate activity to apply theme changes
- As a result, it'll be much simpler to recreate activity whenever isBlurEnabled changes
- Exposed recreateToUpdateTheme API from WallpaperThemeManager to achieved this
- Greatly simplified Overview styling to read from styles

Reland fix:
- Removed mBlursEnabled in BaseDepthController, and only use `mCrossWindowBlursEnabled` to control swapping between blur style and fallback style
- Temporary variables like `mPauseBlurs` and `hasOpaqueBg` should only affect if blurs are applied, but not result in swapping of blur style, otherwise this cause unnecessary redraw or activity recreate

Reason for revert: reland
Reverted changes: /q/submissionid:33581402-revert-33554447-b/414789280-CTVRJLPLRT
Bug: 414789280
Test: manually toggling battery saver and light/dark theme and WallpaperThemeManagerTest
Test: PressBackFromLaunchedApp.testPressBackFromLaunchedApp
Flag: EXEMPT bugfix

Change-Id: Iac2b0c00811e0e79684da0cf77df76a120c1272a
2025-05-16 12:33:44 +01:00
Priyanka Advani (xWF) 1f891a6b67 Revert "Recreate Launcher activity when blur enabled changes"
Revert submission 33554447-b/414789280

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

Fix: 417614196

Reverted changes: /q/submissionid:33554447-b/414789280

Change-Id: Idf349cd39a3f86910f597f0f9ab4d46fb03e945c
2025-05-15 11:12:05 -07:00
Alex Chau a6fa3db580 Recreate Launcher activity when blur enabled changes
- When battery saver changes, WallpaperThemeManager always recreate activity to reapply theme base on wallpaper color hint changes
- Battery saver change can also result in light/dark theme changes, for which WallpaperThemeManager also recreate activity to apply theme changes
- As a result, it'll be much simpler to recreate activity whenever isBlurEnabled changes
- Exposed recreateToUpdateTheme API from WallpaperThemeManager to achieved this
- Greatly simplified Overview styling to read from styles

Bug: 414789280
Test: manually toggling battery saver and light/dark theme and WallpaperThemeManagerTest
Flag: com.android.launcher3.enable_overview_background_wallpaper_blur
Change-Id: I90ad724867283fe3c62a9073a6e072491533f774
2025-05-14 17:45:04 +01:00
Vinay Joglekar 894224b3d2 Merge "Apply correct theme when launcher restarts" into main 2025-05-14 04:56:27 -07:00
vinayjoglekar d4bd12a763 Apply correct theme when launcher restarts
1. initialize DepthController before applyStyle()
2. initialize mBlurEnabled to correct value based on mCrossWindowBlursEnabled and mPauseBlurs.

Fix: 416687465
Test: Restart launcher and go to overview both from app and home.
Flag: com.android.launcher3.enable_overview_background_wallpaper_blur
Change-Id: I018d25b66d925f201449400fc6bbb6a238a0f531
2025-05-14 10:08:41 +01:00
Treehugger Robot 4457d427e7 Merge "Update StatusBarTouchController to work on external display" into main 2025-05-13 15:59:22 -07:00
Daniel Akinola 6efff5eeac Update StatusBarTouchController to work on external display
Dragging on launcher background on external display didn't do anything
because there was no StatusBarTouchController. Now by adding it to
SecondaryDragLayer, we can open the shade on external display via
launcher drag

Bug: 362719719
Bug: 416511740
Test: manual testing
Flag: EXEMPT refactor only
Change-Id: I1a587fe85bf2e7c6f212b3358646d5d282019eef
2025-05-13 13:26:41 -07:00
Helen Cheuk dda022a19b Merge "[Action Corner] Handle go home action" into main 2025-05-13 12:46:40 -07:00
Sunny Goyal 43841027b0 Merge "Removing some unnecessary launcher typecast" into main 2025-05-13 11:42:34 -07:00
helencheuk d681164fe3 [Action Corner] Handle go home action
Handle go home and go back to previous screen for overview, split and full screen task

Bug: 397182595
Test: ActionCornerHandlerTest
Flag: com.android.systemui.shared.cursor_hot_corner
Change-Id: Ia928f102df6908058c02949db02a73430cea5ef1
2025-05-13 17:03:12 +00:00
Sunny Goyal b2315b69c2 Removing some unnecessary launcher typecast
Bug: 417227133
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: Ie794e4855441f86441d869d315699bf46fce0db5
2025-05-13 08:26:25 -07:00
Treehugger Robot 61962ec222 Merge "Better null handling for OverviewComponentObserver.getContainerInterface" into main 2025-05-13 05:26:16 -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
Andy Wickham 359280ef2c Split BlurStyle and BlurFallbackStyle for All Apps and Overview.
Problem: We don't want to apply the blur style to All Apps if the
all_apps_blur flags are disabled. However, we want to still apply
the relevant colors for Overview when the Overview blur is enabled.

Solution: Split the styles into All Apps and Overview variants.
Unfortunately this creates quite a bit of extra code, but such is
the nature of flag permutations.

This is a more comprehensive color fix compared to ag/33356345,
which is reverted as part of this CL.

Note: enable_overview_background_wallpaper_blur is already broken
when disabled without this change (the live tile gets blurred),
presumably because it's already in nextfood and hasn't been tested
disabled. As such, I focused on testing All Apps blur flags both
enabled and both disabled, with the Overview flag always enabled.

Demo with All Apps flags disabled:
 - Blurs enabled (Overview should blur; All Apps unaffected):
   https://drive.google.com/file/d/1eb882JKSMF-Irc7Ls-iAClYfJIASzzXs/view?usp=drive_link&resourcekey=0-j5EafBfVHIh5oOSFzsYE4g
 - Blurs disabled (Overview should not blur; All Apps unaffected):
   https://drive.google.com/file/d/1toVHYUTj9FjpXCD7m8waeuFIwBbdy_Am/view?usp=drive_link&resourcekey=0-drqPVsELmgJVxhpgxLc-aQ

Demo with All Apps flags enabled:
 - Blurs enabled (Overview and All Apps should blur):
   https://drive.google.com/file/d/1se5yaPDYdDKcoBjZSjDSlqCiSfX0bmHv/view?usp=drive_link&resourcekey=0-U9fBJSVYY9na9r8J5xHXMw
 - Blurs disabled (Overview and All Apps should not blur):
   https://drive.google.com/file/d/1YmqlCdSJDZXGSgpeO5hk16V8Y-6tVpeW/view?usp=drive_link&resourcekey=0-rK4Zy7D8fFyPMA_1XXxwCQ
   (Note: All Apps fallback colors will change with ag/33405653)

Test: Above videos
Fix: 416248709
Flag: com.android.launcher3.all_apps_blur
Flag: com.android.launcher3.all_apps_sheet_for_handheld
Flag: com.android.launcher3.enable_overview_background_wallpaper_blur
Change-Id: I9b5cf6b0dce4014053b27ea95a91d047262427b2
2025-05-10 01:21:43 +00:00
vinayjoglekar 3997f6ce4a Separate blur/fallback styles for all apps and overview
Fix: 415233763
Test: Manual. go to overview/all apps enable/disable battery saver mode.
Flag: com.android.launcher3.all_apps_blur
Flag: com.android.launcher3.enable_overview_background_wallpaper_blur
Change-Id: I4fdb672feb34d4b4da74f430eb8ef9a86ec3adf2
2025-05-09 10:17:11 +01:00
Sunny Goyal aef6c7932e Moving predicted items to ItemIdMap instead of extraItems
> This allows the whole workspace model to be contained in itemIdMap instead of spread across multiple data containers
> Deprecating extraItems, all non-workspace data should use separate repositories
> Design: http://go/launchermodel-re-arch?#heading=h.5y8n4r164d5s

Bug: 390572144
Test: atest PredictionUpdateTaskTest
Flag: EXEMPT refactor
Change-Id: I886d0a8d5bbbf9f5c2054d4a2442bf03f9c4eab5
2025-05-05 15:52:37 -07:00
Schneider Victor-tulias a8053f8cba Merge "Support the gesture nav contract for recents in window" into main 2025-05-03 20:02:30 -07:00
Schneider Victor-Tulias 9118d87d84 Support the gesture nav contract for recents in window
- Support for the GNC allows for some additional animations and clean up. The missing clean up was causing test failures
- Also fixing broken GNC support for split apps. Swiping up from split apps caused consistent crashes, however since the current 1P swipe to home has no special animation, updating the recents window and 3P GNC to match this.

Flag: com.android.launcher3.enable_launcher_overview_in_window
Bug: 377678992
Test: pre/postsubmit; swipe home from 1P and 3P launcher
Change-Id: Idf24d7969e76a50ff656f6644c2b568c42e409d7
2025-05-02 15:32:51 -04:00
Andy Wickham 1e2e88a884 Update All Apps divider color.
Also update how theming is applied. We pass a ContextThemeWrapper
to relevant views to retrieve the updated colors.

Demos switching blur on and off with adb:
 - From top (QSB, handle, divider): https://drive.google.com/file/d/1FHNzp5bNbNtH8tM7rSjKELPr6hsETPST/view?usp=drive_link&resourcekey=0-JuiAUJoNh4Pe_xKa74h0-g
 - Scrolled down (header protection + private space): https://drive.google.com/file/d/1gb1GCH3tJHS7HzOjvXgrTxNQ9gfD59dw/view?usp=drive_link&resourcekey=0-AK58FpfN-sDfWhWkmqaEmA

Test: Manual
Flag: com.android.launcher3.all_apps_blur
Fix: 413143411
Change-Id: I5da3b7c38ea4f81dec1011b6cc15ad8b591c761b
2025-05-01 02:25:02 +00:00
vinayjoglekar 45cb055158 Apply fallback overview scrim, overviewactions and clearall in battery saver mode.
1. BlurFallbackStyle/BlurStyle will now be applied in Launcher startup.
   When "updateBlurStyle" is called, individual element style's swap
   happens as per blur style.
2. "hasOpaqueBg" background will now be checked in "applyDepthAndBlur"
   for setting the "currentBlur" value.

Bug: 409758306
Test: Manual. go to overview, enable/disable battery saver mode.
Flag: com.android.launcher3.enable_overview_background_wallpaper_blur
Change-Id: Ic9030c2b267867b9124705426dd51deb1b30ca55
2025-04-30 17:23:42 +01:00
Treehugger Robot 3bde3a8331 Merge "Update blur style for more things." into main 2025-04-28 13:51:25 -07:00
Sunny Goyal 07cfe33533 Renaming CONTAINER_PREDICTION to CONTAINER_ALL_APPS_PREDICTION
This avoids confusion with CONTAINER_HOTSEAT_PREDICTION

Bug: 390572144
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: I0e110e2884dd0566bd2e621e60e7458605b9bad7
2025-04-28 09:30:12 -07:00
Andy Wickham 6610425a1d Update blur style for more things.
- Quick Launch highlight (focusHighlight)
 - Drag bar at top of All Apps
 - Divider inside Private Space

Demo (enabling blur via adb in the middle):
https://drive.google.com/file/d/1MjYn1c1mz3m1llmJ-J6kLHUa1j3biv_H/view?usp=drive_link&resourcekey=0-6d1yf_4zDL0W9nTYe6HLNQ

Fix: 413143411
Test: Manual
Flag: com.android.launcher3.all_apps_blur
Change-Id: I37340759867aba1460fb038269d21c86e8b3c4f6
2025-04-26 01:25:05 +00:00
Sunny Goyal 834e9c3bbe Not pausing hotseat predictions on app launch
We do not pause updates on tablets anyway, maintaining a separate behavior on phone is unnecessary

Bug: 339700174
Flag: EXEMPT bugfix
Test: Manually verify that the predictions update
Change-Id: Ia835e3c73dc536e0ff5b4c1f5120628a48f7723f
2025-04-25 12:39:13 -07:00
Will Osborn 50a1b9089c Pass display id to startRecentsAnimation
Test: local + unit
Bug: 392703464
Flag: com.android.launcher3.enable_overview_on_connected_displays
Change-Id: I7eb65a1d6b98703a19432b9fa24c3c4b262aa045
2025-04-22 17:46:01 +00:00
Anushree Ganjam f6d039c9ab Remove flag "enable_shortcut_dont_suggest_app" since it's eligible to be removed.
Bug: 409611054
Test: Presubmit, Verified "Don't suggest app" shortcut works fine for predicted apps.
Flag: EXEMPT Flag removal
Change-Id: Icb92f3519760ad0dc27e10d9690505c737b9dd25
2025-04-16 18:16:39 +00:00
Andy Wickham 16a024df71 Adds Blur and BlurFallback styles for All Apps.
Technically these styles can be used throughout Launcher, e.g.
Widget Picker and Folders, but this CL only applies it to All Apps.

At a high level, views wishing to apply transparency to show blur
should use these new attr values rather than colors directly.

When blur changes, e.g. starting or stopping battery saver, the
style is re-applied and revelant views are invalidated. For
Launcher, this is handled by DepthController, and for Taskbar it's
handled by a CrossWindowBlurListener.

Also updated the Private Space animation slightly to account for
the translucent decorators (specifically, we can't use the mask
view to cover them when blur is enabled).

Screenshots: https://drive.google.com/drive/folders/1tU472KHotgEBpT-Ec9VOBWPBf_YdVqv2?resourcekey=0-ebf7W8O6iDJ4UVMtRzTABg&usp=sharing
Private Space animations: https://drive.google.com/file/d/1h5pn8Xb17TPcbujr7uSAJNTq8kwNZoIp/view?usp=drive_link&resourcekey=0-TzpaJ16Gg8_QJctBx4oiIg
Private Space QS Tile animations: https://drive.google.com/file/d/1dCuqnqd5z2kSBEakGobMlEkMwFDBWRbJ/view?usp=drive_link&resourcekey=0-qRVFPb-a6OzaZQOf4x86Jw

Bug: 371343636
Test: Manual
Flag: com.android.launcher3.all_apps_blur
Change-Id: Ia9f581f50d1adc0830569656bdeb751deb710a9c
2025-04-15 16:42:56 -07:00
Randy Pfohl 6abaca4e03 Moving RecentsWindowManager away from taskstackchangelistener
Test: Built and ran locally, tested against various cases, verified with
logs

Flag: com.android.launcher3.enable_fallback_overview_in_window
      com.android.launcher3.enable_launcher_overview_in_window

Bug: 292269949

Change-Id: If90b1f98ad18286fa0c9b9625077237823197967
2025-04-14 18:27:41 +00:00
Alex Chau 2c2088ed87 Migrate RecentsDisplayModel to PerDisplayRepository
- RecentsWindowManager/FallbackWindowInterface should be accessed through the respecitve REPOSITORY_INSTANCE or through Dagger
- RecentsDisplayModel is no longer needed as PerDisplayRepository manages lifecycle of all per-display objects

Fix: 410224937
Test: manual and presubmit
Flag: EXEMPT refactor
Change-Id: Iddfddbdcbe15be5075c038d98d02aa79ab55117b
2025-04-12 22:05:38 +01:00
minch 42efd0c6cc Let TaskView.bind take GroupTask instead of Task
1. Introduce a `groupTask` property to `TaskView` and let all the
   `bind` functions take a type of `GroupTask` as the parameter
   instead of a `Task`.
2. Then let `RecentsView.removeGroupTaskInternal` take the
   `GroupTask` as the parameter instead of a `TaskView`.
3. Caches the `groupTask` before `removeGroupTaskInternal` then
   we can avoid the corresponding `deskId` being set to invalid
   on `removeViewInLayout` in the main thread, which might happen
   before `removeGroupTaskInternal`.

Bug: 408032417
Test: m
Flag: EXEMPT refactor
Change-Id: I51c5b810eb63bc1267b90b915f90164f7ca3cba5
2025-04-08 17:16:08 +00:00
Schneider Victor-Tulias 848b743c20 Close the Recents window onNewIntent
Flag: com.android.launcher3.enable_launcher_overview_in_window
Bug: 377678992
Test: pre/postsubmit
Change-Id: Ied8a1ce6bb5b3a0c371ce857fe6df9d94fd04b40
2025-03-25 08:41:39 -07:00
Shamali Patwa bb04b1135f Merge "Revert "Improve reliability of cleanup done in onDestroy."" into main 2025-03-24 13:06:27 -07:00
Shamali Patwa cfcb27aa9d Revert "Improve reliability of cleanup done in onDestroy."
This reverts commit 9cf28d1772.

Reason for revert: Fix in ag/32425180

Change-Id: I714665944384db6f68634de529272e618bccdad9
2025-03-24 08:46:36 -07:00
Sunny Goyal 66916cda10 Moving LauncherAppWidgetHolder to dagger
This would allow customizing the widget holder in LauncherPreview

Bug: 361850561
Test: Updated tests and presubmit
Flag: EXEMPT dagger
Change-Id: I32491169188992453693048986c57cb780fdf1d8
2025-03-14 14:19:29 -07:00
Shamali Patwa a29ec52cce Merge changes from topic "prp-fix" into main
* changes:
  Improve reliability of cleanup done in onDestroy.
  Change the studio build specific onEndCallback exception to a log.e
2025-03-13 10:25:06 -07:00
Shamali P 9cf28d1772 Improve reliability of cleanup done in onDestroy.
As seen in the bug, an exception caused rest of onDestroy to not clean
up the other objects - which could cause other leaks.

So, for somewhat non-trivial clean ups, I've wrapped them in try-catch.
This way, with Log.e we still will know about them, but not crash
destruction of activity and other clean up.

Bug: 400793700
Flag: EXEMPT BUGFIX
Test: Leak canary and studio heap dump
Change-Id: I45e7298394eafff182a2c800eebfa5f772fbe2de
2025-03-13 14:26:55 +00:00
Sunny Goyal 018356d3c3 Introducing a wrapper over binder to simplify lifecycle management for IPC
Fix: 400733213
Flag: NONE - release code
Test: manual
Change-Id: I5e143fce6a4cbc1dbb246bc6e0141ebbbc8bd274
2025-03-10 10:27:58 -07:00
Treehugger Robot 57cab7794a Merge "Simplifying some view iteration methods" into main 2025-03-04 18:42:06 -08:00