Commit Graph

334 Commits

Author SHA1 Message Date
Brian Isganitis
ae80cbfed3 Refactor test dagger graph to stub PerDisplayRepository instances.
These are not being used yet in Taskbar, but they are hardcoding
DEFAULT_DISPLAY for the primary ID. In tests, we want the primary to be
considered the ID of the virtual display tests are running on.

This change also moves dagger classes to its own file for organization.

Flag: TEST_ONLY
Bug: 415326979
Test: Taskbar multivalent tests
Change-Id: Ibd0cdf46bc53dbd7a3dd5f34d7171d9a6cdebb38
2025-05-12 17:10:57 -04:00
Wen-chien Wang
495fb1e9b4 Merge "pin-shortcut: Check desktop state for the feature" into main 2025-05-09 17:06:48 -07:00
Wen-Chien Wang
e6816545b6 pin-shortcut: Check desktop state for the feature
This feature aims to work only for desktop mode. Add a check to
the desktop state when checking the aconfig feature flag.

Bug: 375648361
Test: EXEMPT flag update
Flag: com.android.window.flags.enable_pinning_app_with_context_menu
Change-Id: I19eb17d756f17892637bd303464748b505c89190
2025-05-09 00:31:27 +00:00
Sunny Goyal
57a195b790 Making workspaceData immutable
BgDataModel holds a mutable handle of the data, which ensures that all edits go through this class and there is a single place to keep the repository updated

Bug: 390572144
Test: Updated existing model tests
Flag: EXEMPT refactor
Change-Id: I991b707dd21801d1abd00510f676549947285012
2025-05-07 13:21:21 -07: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
Treehugger Robot
1a597d619b Merge "Remove IME-specific touch passthrough for Taskbar" into main 2025-05-02 14:42:04 -07:00
Liran Binyamin
00dc879e2c Merge "Send bubble bar distance to shell" into main 2025-05-02 14:35:40 -07:00
Liran Binyamin
34024fe26a Send bubble bar distance to shell
We previously sent the top coordinate of the bubble bar to shell.
However when the screen height changes, launcher takes a bit longer
to update than shell. So instead of calculating the top coordinate
on the launcher side, we now send the amount of space between the
bubble bar and the bottom of the screen to shell, where we can offset
that as needed.

Bug: 392893178
Flag: com.android.wm.shell.enable_bubble_bar
Test: manual
       - send some bubbles
       - launch app
       - expand
       - swipe to home
       - fold and unfold
Change-Id: I57b96db49dab1e2304fde8dc55a99eaaf85e40f8
2025-05-02 10:54:39 -04:00
Ajinkya Chalke
98ce0f4ccb Ignore KeyboardQuickSwitchControllerTest to fix robo failure
Bug: 413540825
Flag: EXEMPT ignoring test
Test: atest
Change-Id: I75a15563fbc8cc500df73c9b1d1e9bf2e2d378b8
2025-05-01 16:16:19 -07:00
Tony Wickham
41b1c52c7f Remove IME-specific touch passthrough for Taskbar
It doesn't seem necessary anymore (and anyway, existing cases like
Taskbar being stashed while IME is showing handle this as well).
Removing the specific block fixes a bug where touches were going
to the underlying app even though Taskbar window is fullscreen
while editing a Folder name.

Fixes: 400859085
Test: TaskbarInsetsControllerTest
Flag: EXEMPT bugfix

Change-Id: If30acd0b3b9c3fd0b29b94ca963beb1c70162416
2025-05-01 16:43:31 +00:00
Jagrut Desai
f52ffc1232 Auto-Stashing Functionality for Pinned Taskbar
This cl includes :
- Refactor to remove unpinning/pinning in desktop mode with refactor of DisplayController, TaksbarPinningController, and its tests.
- Combined the auto stashing conditions under one method shouldAllowTaskbarToAutoStash() which takes in consideration isTransientTaskbar, isInDesktop, and Always Show Taskbar option is turned on/off in desktop mode.
- enabled taksbar divider popup support in desktop mode.
- Intorduced animation for pinned taksbar when autostadhing is enabled.
- Enable to onSwipeToUnstashTaskbar for TaskbarInputStashController for pinned taksbar in desktop mode.

Test: Presubmit, Unit, Manual
Bug: 381535785
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ie5ecf3a3c72bf8dfadf2d0c908269305fe5bad0b
2025-04-30 10:39:58 -07:00
Sunny Goyal
dd367a2218 Merge "Converting BgDataModel to Kotlin" into main 2025-04-30 10:19:46 -07:00
Sunny Goyal
036ced4703 Converting BgDataModel to Kotlin
This will allow the use of Flows in BgDataModel

Flag: EXEMPT refactor
Bug: 390572144
Test: Presubmit
Change-Id: I8fdd1635a19ae4d75260fb1ddb9cd7ab00cd0496
2025-04-29 15:37:11 -07:00
Ats Jenk
861f887dfe Merge changes I91a3b558,Ifc9c391a,I3da2bc22,Ied187c63,I859b7359 into main
* changes:
  Store bubble bar stashed state during rotation [6/N]
  Restore bubbles without affecting bar state [5/N]
  Do not animate bubbles from initial update [4/N]
  Store and restore selected bubble and expanded state [3/N]
  Do not animate bubble bar for initial state [2/N]
2025-04-29 13:17:42 -07:00
Ats Jenk
6c7cb1a5f0 Do not animate bubbles from initial update [4/N]
Bubbles that are restored with initial update should not be animated in.
If we restore the bubble bar after rotation, we need to show it
immediately. Attempting to animate the bubbles from initial update
causes the UI to flicker.

Bug: 357115534
Test: on home screen, have bubble bar expanded, rotate device, check
  bubble bar bubbles do not flicker after rotation
Test: have no bubbles in bubble bar, trigger a bubble, check it is
  animated
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I3da2bc22588c0f5d2dd9c7a3adfcd2c19c339809
2025-04-28 18:44:26 -07:00
Li Lin
6e718cffb1 Merge "Show Growth Framework nudge driven by nudge payload." into main 2025-04-28 17:01:20 -07:00
Li Lin
0f82810cdb Show Growth Framework nudge driven by nudge payload.
Current implementation of the nudge will show at default position
(bottom left corner) and may extended to other position in the future.
More detail at: go/al-growth-framework-nudge

Bug: 398033012
Test: NudgeControllerTest.*
Flag: com.android.launcher3.enable_growth_nudge
Change-Id: Idff9d62a5b1b26aa1cfbef5817f5425f8e94b7c9
2025-04-28 13:59:30 -07:00
Ats Jenk
416f80dc82 Rename method to set bubble bar expanded state [1/N]
Rename methods in BubbleBarViewController and BubbleBarView that set the
expanded state.
These will update the state using an animation.
Update the name to highlight this.
Enables us to create methods to set the state without animation.

Bug: 357115534
Test: refactor, presubmit
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I9d2c46ab1640ab0b19f54103ab8cdb37a5d19dbb
2025-04-25 10:20:41 -07:00
Jon Miranda
a19e4e2063 Switch taskbar overflow flag to lse_desktop_experience
Both flags are in Nextfood, so there will be no change to
user experience.

Bug: 368119679
Bug: 375627272
Test: TaskbarOverflowTest
Flag: com.android.window.flags.enable_taskbar_overflow
Change-Id: Ie3ef3bd49e078f5657bd069bc92c5a48a136e7cb
2025-04-23 15:20:04 -07:00
Treehugger Robot
59e208c28e Merge "Moving various launcher binding logic, outside LauncherModel" into main 2025-04-23 12:32:54 -07:00
Treehugger Robot
e7cb23a501 Merge "Fix TaskbarOverflorTest failures with multi-desks on" into main 2025-04-22 16:30:44 -07:00
Sunny Goyal
c078d6554c Moving various launcher binding logic, outside LauncherModel
This brings the BgCallbacks closer to a repository pattern making is easier to switch eventually

Bug: 390572144
Flag: EXEMPT refactor
Test: Updated AsyncBindingTest to use real ModelCalbacks
Change-Id: I9c932b00ea8ac7330473b9c0f5d778453fe7a390
2025-04-22 14:12:17 -07:00
minch
d5d15c493f Fix TaskbarOverflorTest failures with multi-desks on
Bug: 362720309
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Change-Id: I91621d4c71d1ab28fb4b17ab62ba6c8ff43cb7d2
2025-04-22 16:10:57 +00:00
Ajinkya Chalke
c96b9adf79 Add unit tests for KQS CD changes
Bug: 382762871
Bug: 382769617
Test: KeyboardQuickSwitchControllerTest and TaskbarOverflowTest
Flag: EXEMPT adding tests
Change-Id: I053af97774230a9bc3d21ff8e1e328344519f728
2025-04-22 15:07:37 +00:00
Wen-chien Wang
c496829044 Merge "pin-shortcut: Add tests to verify the behavior" into main 2025-04-22 03:56:09 -07:00
Wen-Chien Wang
ed04537faa pin-shortcut: Add tests to verify the behavior
Bug: 375648361
Test: This is the cl for tests
Flag: EXEMPT tests
Change-Id: I7209cebcc7e7c34d5f1362121fea5e062e3170de
2025-04-19 07:34:33 +00:00
Treehugger Robot
82f07a82ff Merge "Improve TaskbarRecentAppsController on multi-display" into main 2025-04-18 16:05:10 -07:00
Mykola Podolian
daf5d90a37 Merge "Stash the taskbar on every bubble bar expansion" into main 2025-04-18 14:51:36 -07:00
mpodolian
04bd5b49ea Stash the taskbar on every bubble bar expansion
Added logic to enable BubbleBarView to  notify BubbleBarViewController
of expanded state change. Also updated all the test that uses
BubbleBarView to pass empty Controller.

Fixes: 411304392
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Go to any app. Swipe up to show the taskbar. Trigger any
bubble. Observe taskbar is stashed on bubble bar expanded.

Change-Id: I88ad167eb0ed444629716df3672bbb06ca8adcc4
2025-04-18 11:16:40 -07:00
Toni Barzic
5207024240 Improve TaskbarRecentAppsController on multi-display
Fixes two issues:
1.  TaskbarRecentAppsController was reflecting tasks from the first
    DesktopTasks it found in the RecentsModel - this does not work in
    multi-display environemnt where each display may have a separate
    DesktopTask. The CL updates the logic to gather tasks from all
    available DesktopTasks.
2.  RecentsModel supported a single recent apps changed listener. In
    multi-display, each display has its own taskbar, and thus its own
    TaskbarRecentAppsController, each of which needs to listen for
    RecentsModel changes. This meant that second taskbar that registered
    a listener was clearing out the listener set by the first taskbar.

Bug: 406183146
Flag: com.android.window.flags.enable_taskbar_connected_displays
Test: On multidisplay, open apps on different displays. Taskbar reflects
      all running desktop tasks regardless of the display on which
      they're open.
Change-Id: I1dd750e5bcd58d8d90b7b859053e2616c7d18441
2025-04-17 16:32:12 -07:00
Fengjiang Li
d952514e04 [Taskbar] Add taskbar root view on per-window-thread
1. Add LooperExecutor in TaskbarManager
2. Add taskbar root view to window in that LooperThread if flag is on

Bug: 404636836
Test: presubmit
Flag: com.android.launcher3.enable_taskbar_ui_thread
Change-Id: I45c6db760b1aafbd186d433ae6f15292f7fe5b43
2025-04-16 19:03:53 -07:00
Alex Chau
62658b9d1b Merge "Migrate RecentsDisplayModel to PerDisplayRepository" into main 2025-04-14 06:13:57 -07: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
Treehugger Robot
08a65bfd06 Merge "Use shell's SplitBounds class instead of our own" into main 2025-04-11 17:16:27 -07:00
Brandon Dayauon
b570514ee0 Merge "Add nudgeView to Taskbar.xml" into main 2025-04-11 16:28:59 -07:00
Brandon Dayauon
1fc6f916d3 Add nudgeView to Taskbar.xml
Aiai will send a broadcast to Launcher and will animate the stashHandleView and nudgeView accordingly.
Verified on large screen device that transient taskbar is not affected as its not in scope at the moment.

bug:409121556
Test: manual - video in bug
Flag: com.android.launcher3.nudge_pill

Change-Id: I740e5d81dd008a230aa089f311d38bac665fc227
2025-04-11 13:24:22 -07:00
Vinit Nayak
fdcfb61f1b Use shell's SplitBounds class instead of our own
* Previously we had duplicated classes because of some
launcher3 and quickstep package separation. That got refactored
so now we can conslidate to only use one class. Yay!

Bug: 254378592
Test: Compiles, manual
Flag: EXEMPT refactor

Change-Id: Ifea3358ac38c1d2881cb19bb88cf14ef9c0aaa29
2025-04-10 15:18:24 -04:00
Treehugger Robot
a2b5b589dc Merge "Register all apps key gesture event in quickstep launcher" into main 2025-04-10 09:57:21 -07:00
Steven Ng
28d37181eb Register all apps key gesture event in quickstep launcher
Bug: 406452076
Test: atest NexusLauncherTests:QuickstepKeyGestureEventsHandlerTest
Test: atest NexusLauncherTests:AllAppsActionManagerTest
Test: atest NexusLauncherOutOfProcTests:com.google.android.apps.nexuslauncher.TaplTestsNexus
Test: Verfiy manually that meta key event triggered all apps if the display focused is the default display.
Flag: com.android.window.flags.enable_key_gesture_handler_for_recents
Change-Id: I654cdf527670fddc0bd6eb4d8cab18a9e1206ec1
2025-04-10 15:14:09 +01:00
Graciela Wissen Putri
b6488e052c Add displayId to back event
This will allow core to determine which display the back event was
started from.

Flag: com.android.window.flags.enable_independent_back_in_projected
Bug: 401530192
Test: atest TaskbarNavButtonControllerTest
Change-Id: I181aae3e9f5009f99e6ce21092dd45caeeae20cc
2025-04-08 13:28:02 +00:00
Will Osborn
90ac376da8 Taskbar nav per-display
Test: local + unit
Bug: 402364626
Flag: com.android.launcher3.enable_overview_on_connected_displays

Change-Id: I9643367e19b107a2811e93db4e3dd32e9355da71
2025-04-04 10:32:46 +00:00
Wen-Chien Wang
9d962c8c3e pin-shortcut: Move flag to lse
Bug: 375648361
Test: EXEMPT changing flag
Flag: EXEMPT moving flag
Change-Id: I13065db6dcf42e26e87aba27f395e4345c569d6f
2025-04-01 18:29:59 +00:00
Wen-chien Wang
edf603cf95 Merge "pin-shortcut: Make single recent task pinnable from taskbar" into main 2025-03-31 14:12:43 -07:00
Treehugger Robot
d81b43802a Merge "Add showPinningView to TaskbarPinningControllerTest." into main 2025-03-27 14:45:20 -07:00
Sunny Goyal
3b307455a0 Revert^2 "Simplifying model testing rules"
35b6d322ab

Change-Id: I3ed574a517dbe350b6dfe5b1d3ed198203d22f44
2025-03-26 23:08:55 -07:00
Treehugger Robot
b932dea54e Merge "Implement spring animations for running state changes." into main 2025-03-26 21:06:14 -07:00
Jon Miranda
e6d41c9b2f Add showPinningView to TaskbarPinningControllerTest.
Simple test that checks long pressing on the divider icon shows the
pinning view.

Bug: 402671805
Bug: 346394250
Test: TaskbarPinningControllerTest
Flag: TEST_ONLY
Change-Id: I435be4d7a12b0a92432cba49e57b6cef46e9679d
2025-03-26 19:05:03 -07:00
Priyanka Advani (xWF)
35b6d322ab Revert "Simplifying model testing rules"
Revert submission 32704934-model-test-cleanup

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

Reverted changes: /q/submissionid:32704934-model-test-cleanup

Change-Id: Ieeb7f5b5699afeae27f946f060147bb68afc36e5
2025-03-26 16:12:16 -07:00
Sunny Goyal
cb84230913 Simplifying model testing rules
> Using Sandbox application everywhere to avoid test leaks
> Removing LauncherModelHelper and moving some utility methods to rules and extensions

Bug: 406521480
Flag: EXEMPT test only
Test: Presubmit

Change-Id: I17bd5ec2bdb0fc0cbe02be9c8ee76595effe3f11
2025-03-26 11:34:15 -07:00
Jagrut Desai
7a6b2a39f6 Merge "Fix Taskbar Flicker with Recents or Running Apps Present" into main 2025-03-26 08:59:05 -07:00