Commit Graph

222 Commits

Author SHA1 Message Date
Saumya Prakash
aabcfa27ae Avoid per task app icons in Taskbar for desktop mode
Until Taskbar multi instance support was in place, Taskbar would show
multiple icons for different instances of the same app in desktop mode.
Now this is no longer needed as taskbar has multi instance support, so
now there is only one icon per instance of an app of the same user.

Fix: 382589460
Test: Started several Chrome windows -> Taskbar has 1 icon for chrome
Flag: com.android.launcher3.enable_multi_instance_menu_taskbar
Change-Id: I2df4327dcdc9d221164055ebc33ff508273e7ef9
2025-01-13 22:37:25 +00:00
Liran Binyamin
0e767a2a87 Merge "Fix flake in BubbleBarViewAnimatorTest" into main 2024-12-26 08:37:31 -08:00
Treehugger Robot
64eb038059 Merge "Moving sysproxy to kotlin" into main 2024-12-20 11:44:23 -08:00
Brian Isganitis
1e6ffc8a08 Merge "Split up tests by actual hardware keyboard status." into main 2024-12-20 11:36:35 -08:00
Sunny Goyal
5df843476c Moving sysproxy to kotlin
Bug: 385171800
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I9db2d4a2f7ff6e739e389ce0e076d5ea88adad5c
2024-12-19 17:22:00 -08:00
Brian Isganitis
791944ff63 Merge "Disable model loading with Sandbox check instead of static boolean." into main 2024-12-19 15:32:56 -08:00
Liran Binyamin
11323f3b76 Fix flake in BubbleBarViewAnimatorTest
Tried scheduling ABTD multiple times but unfortunately ABTD failed
allocating resources.

Flag: EXEMPT test only
Bug: 384807919
Test: atest BubbleBarViewAnimatorTest

Change-Id: I4c48c034b1bd6c9e8f681fb72cc65a9e0aee2eb7
2024-12-19 12:52:30 -08:00
Liran Binyamin
8b102fe820 Merge "Fix handle color when interrupting the animation" into main 2024-12-19 10:04:52 -08:00
Sunny Goyal
60bad051c4 Fixing module inheritence when overriding Launcher component
Bug: 361850561
Flag: EXEMPT dagger migration
Test: Presubmit
Change-Id: I1f726e9895f6872d0294a11ab0c52c6c619c2a3f
2024-12-18 10:38:00 -08:00
Brian Isganitis
a481af5779 Split up tests by actual hardware keyboard status.
Flag: TEST_ONLY
Bug: 230027385
Test: TaskbarStashControllerTest
Change-Id: I63fc433810af3993db5655571a11887eb2c68422
2024-12-10 19:08:36 -05:00
Brian Isganitis
002ef1f550 Disable model loading with Sandbox check instead of static boolean.
The static boolean also affects Taskbar within the Launcher process. We
only want this disabled for the Taskbar test Sandbox.

Flag: TEST_ONLY
Bug: 230027385
Test: NexusLauncherTests:com.android.launcher3.taskbar
Change-Id: Ife12e95ab34755d1aec42d79188c15232d8da092
2024-12-10 23:31:36 +00:00
Brian Isganitis
9c0552e09d Merge changes from topic "taskbar-view-recents-changes" into main
* changes:
  Move recents divider if hotseat is set after recents.
  Animate out/in the correct task view when recents change.
  Implement initial LayoutTransition for Taskbar recents.
2024-12-10 02:18:53 +00:00
Treehugger Robot
9bb546953c Merge "Adapt TaskbarOverflow tests to check items added overflow view" into main 2024-12-10 00:21:18 +00:00
Brian Isganitis
c7f6cd6062 Move recents divider if hotseat is set after recents.
Fixes a bug where updateItems is first called with recents and then with hotseat. This causes the Taskbar to first be All Apps, Divider, and then Recents. The layout transition path assumes though that the Divider after All Apps is not for recents in this case, which is wrong. Due to this assumption, it skips over the divider and then adds the hotseat items after it (should be added before). Added a test for this case.

Flag: com.android.launcher3.taskbar_recents_layout_transition
Bug: 343521765
Test: go/testedequals
Change-Id: Ia690c71fe482709e35ab302a7b497bf547eb4478
2024-12-09 15:35:43 -05:00
Brian Isganitis
3c24c421f6 Animate out/in the correct task view when recents change.
Flag: com.android.launcher3.taskbar_recents_layout_transition
Bug: 343521765
Test: go/testedequals
Change-Id: I6c7708ed9f03eff8469b5f2e75ce00e545b03f54
2024-12-09 15:35:43 -05:00
Toni Barzic
7bea1821d4 Adapt TaskbarOverflow tests to check items added overflow view
Adds a step to verify that TaskbarOverflowView items get set to the list
of the least recent tasks. Adds test cases for an edge case where
taskbar hits max number of items event without recent tasks
(b/379774843).
Has a fix for a further edge case where taskbar overflow view could be
created with a single item (in which case we can just show that item
directly).

Bug: 379774843
Flag: com.android.launcher3.taskbar_overflow
Test: atest TaskbarOverflowTest

Change-Id: I004676da3e17f26b8110d14d39589c84a9f384d8
2024-12-06 19:39:47 +00:00
Liran Binyamin
b94fce457e Fix handle color when interrupting the animation
Pass the correct stash value to the controller after interrupting
an ongoing animation due to stash state changing. We previously
incorrectly passed a value that depended on the alpha value of the
bubble bar. This allows sampling to happen and for the handle to
have the correct color.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 377604151
Test: atest BubbleBarViewAnimatorTest
Test: manual
       1. Create 1+ bubble
       2. Receive new message and see the flyout
       3. Open an app immediately (Don't wait until the flyout disappear)
Change-Id: I739bcbd8fe4f7e02285244d78d7159c571be1ec2
2024-12-06 16:22:30 +00:00
Liran Binyamin
0e14bb8ef9 Merge "Fix bubble bar flicker in initial animation" into main 2024-12-05 22:22:07 +00:00
Liran Binyamin
77827d3167 Fix bubble bar flicker in initial animation
When the first bubble animates in we make the bubble bar visible
before translating it below the screen to prepare for the spring
animation. This change defers updating the visibility letting the
animator notify when it's safe to update visibility.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 382296842
Test: atest BubbleBarViewAnimatorTest
Test: manual
       - dismiss bubble bar
       - send new bubble
       - observe bubble bar does not flicker
Change-Id: Ib611771dd9f315ab57ef00f8f6cb982b8b88ea73
2024-12-04 15:05:22 -05:00
Liran Binyamin
3931b671b4 Reset the bubble bar scale when the animation is interrupted
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 381283214
Test: atest BubbleBarViewAnimatorTest
Test: manual
       - have a bubble in the bubble bar
       - launch an app
       - set animator scale to 5x to slow down animation
       - send a bubble
       - when the bubble bar animates interrupt the animation by
         touching the bubble bar
       - observe the bubble bar scale is reset correctly
Change-Id: I1abd81e3df987ba749a13eb1b7506d5c1d8fdddd
2024-12-02 11:23:35 -05:00
Liran Binyamin
495fe1d255 Merge "Animate the bubble bar on dismiss" into main 2024-12-02 14:28:30 +00:00
Liran Binyamin
7e387fa505 Animate the bubble bar on dismiss
When the last remaining bubble is dismissed by drag or from the menu
we now fade out the bubble bar.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 347062801
Test: manual
       - create a single bubble in the bar
       - expand
       - dismiss by drag or from menu
       - observe animation
Change-Id: I86fcaf04c6f5949126744b81e0042b0e58318a13
2024-11-27 16:23:26 -05:00
Mykola Podolian
400fc4ad98 Merge changes I239f9357,I57a32ac5 into main
* changes:
  Update setting taskbar window height
  Set bubble bar aligned to QSB
2024-11-27 20:44:53 +00:00
Treehugger Robot
d7b3369036 Merge "Ignore events that occur between app icons on the taskbar" into main 2024-11-27 20:22:17 +00:00
Liran Binyamin
ed249f0451 Merge "Show the bubble bar edu view" into main 2024-11-27 20:09:07 +00:00
mpodolian
3111daf2f1 Update setting taskbar window height
Updated the logic to set the taskbar window height to accommodate the
bubble bar with its maximum flyout height before the bubble bar
animation begins. The height is reverted to the default value once the
animation is completed.

Fixes: 378400160
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Set 3-button navigation mode and have the QSB placed
above the hotseat. Send a notification that will display a bubble, and
observe the bubble bar animation and final placement aligned with the
QSB.
Next, set gesture navigation mode and repeat the flow above. Observe
that the bubble bar is aligned with the hotseat icons.
Felix video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/gYMVt0sH4si0KOpaBxIPem
Tangor video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fz95MbjcjW3awStnuOl8BJ

Change-Id: I239f935743c3936fed44822c3c62652073ffefe2
2024-11-27 10:19:24 -08:00
mpodolian
28907bcbd6 Set bubble bar aligned to QSB
Change logic to updated bubble bar alignment with the QSB vertical
center for 3 buttons navigation mode.

Fixes: 378400160
Flag: com.android.wm.shell.enable_bubble_bar
Test: PersistentBubbleStashControllerTest
Test: TransientBubbleStashControllerTest
Test: Manual. Set the buttons navigation mode and observe that the
bubble bar is centered with the QSB when the QSB is not aligned with the
hotseat. Then, switch to gestures navigation mode and observe that the
bubble bar is centered with the hotseat when the QSB is not aligned with
the hotseat.

Change-Id: I57a32ac5bde7a7055b54a89727429424e5c0ca4f
2024-11-27 10:15:08 -08:00
Liran Binyamin
c48b4ed025 Fix flake in BubbleBarViewAnimatorTest
100x run: http://ab/I70900010339337557

Flag: EXEMPT test only
Fixes: 381093181
Test: http://ab/I70900010339337557
Change-Id: Ifd126156d6e69f885b37487743e06d482c2e3921
2024-11-26 13:44:25 -05:00
Liran Binyamin
16a604fe0c Show the bubble bar edu view
We now show the bubble bar edu view after a request from shell
to show it was received, and as soon as the user performs a touch
gesture on the bubble bar or flyout that causes the bar to be
expanded.

The click listener on the bubble bar is removed with this change
because the input consumer already handles taps. Removing the
listener avoids processing the tap twice which causes the edu view
to not be displayed. Removing the click listener solves the issue
but ideally we should move the edu view to launcher since that
would allow us to manage its state easily.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 374842575
Test: atest PersistentBubbleStashControllerTest
Test: atest BubbleBarSwipeControllerTest
Test: atest TransientBubbleStashControllerTest
Test: manual
       - force show the bar edu view
       - send a bubble
       - tap the bubble bar to expand
       - observe bubble bar edu is visible
       - repeat with swiping on the bar and tapping the flyout
       - launch an app
       - swipe up to show the taskbar
       - observe edu view not visible
       - send a bubble with auto expand
       - observe bubble bar expanded and edu view not visible
Change-Id: I98ec44e6edf6c69d6d47b5709140796c2ecab23e
2024-11-26 10:23:45 -05:00
Brian Isganitis
f04ae6b09f Fix LayoutTransition All Apps divider logic for RTL.
We were checking the wrong index (off by one), leading to a crash if the divider is already in the Taskbar at the correct index. However, we do need to add it after the expected index if the divider isn't there, otherwise it will push the icon that is at that position to the right of the divider (it should be to the left).

Flag: com.android.launcher3.taskbar_recents_layout_transition
Bug: 343521765
Bug: 368522274
Test: go/testedequals
Change-Id: I0263f704728286b53da5b45828784b20aaae31ce
2024-11-21 23:38:00 +00:00
Artsiom Mitrokhin
7205b24938 Ignore events that occur between app icons on the taskbar
Bug: 297325541
Flag: com.android.launcher3.show_taskbar_pinning_popup_from_anywhere
Test: manual, flip the flag, long-click between taskbar items
Change-Id: If2ee00f31fcd1788bac2c2c0cd78ba1eada86115
2024-11-21 16:38:32 -05:00
Brian Isganitis
c87f691e04 Prepare for LayoutTransition with RTL support.
Only remove divider when it needs to be removed or moved between All Apps and recents locations. Keep All Apps and QSB in Taskbar at all times. LayoutTransition does not work if views are being removed and then immediately readded (what current code branch does).
Overflow is not supported yet with the LayoutTransition flag.

Test: go/tested-equals
Flag: com.android.launcher3.taskbar_recents_layout_transition
Bug: 368522274, 343521765
Change-Id: I9ae1d7c52e853106cdf86329be6f221213e7cb86
2024-11-21 12:24:13 -05:00
Brian Isganitis
1782af7b6e Filter out unsupported items immediately when updating Taskbar.
Fixes an issue where hotseatItems may not reflect the number of hotseat views in Taskbar. Entries in the array can be null (e.g. no predictions but there is space in the hotseat for them). If these are filtered out immediately, hotseatItems.length will correspond to the number of hotseat views.

Test: go/testedequals
Flag: EXEMPT bugfix
Fix: 379704910
Change-Id: I375d8152fccb6df5a9b783842ecf5dcedf6894c1
2024-11-21 12:24:11 -05:00
Liran Binyamin
a673a1b456 Merge "Deflake BubbleBarViewAnimatorTest" into main 2024-11-21 14:53:22 +00:00
Treehugger Robot
ad43c3dbc9 Merge "Fix TaskbarNavButtonControllerTest failure" into main 2024-11-21 09:05:49 +00:00
Liran Binyamin
2ceb63a94d Deflake BubbleBarViewAnimatorTest
Add a semaphore to block the test until the bubble bar is expanded.

100x run: http://ab/I94900010337166460

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 380023942
Test: ab link above
Change-Id: I473208255ef658ee532f54c2665889ee5c24e39e
2024-11-20 15:52:52 -05:00
Liran Binyamin
d091b42778 Merge "Interrupt bubble animation when IME is visible" into main 2024-11-20 18:45:24 +00:00
Liran Binyamin
05eaeb29aa Interrupt bubble animation when IME is visible
When the IME becomes visible, interrupt the bubble animation if it's
running. This ensures that the flyout doesn't show over the IME and
is more consistent with the behavior of bubble notification when the
IME is visible.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 378404363
Test: atest BubbleBarViewAnimatorTest
Test: manual
       - launch app
       - send bubble
       - while bubble is animating launch IME
       - observe flyout not visible over IME
Change-Id: I28390982bb41d8cc9b494395418728ff5fb373b6
2024-11-20 10:36:22 -05:00
Johannes Gallmann
511f6d5778 Fix TaskbarNavButtonControllerTest failure
Bug: 380036619
Flag: com.android.window.flags.predictive_back_three_button_nav
Test: TaskbarNavButtonControllerTest
Change-Id: I1ef04d8ef17c2eacb6a6bc352a01ec3cbf3a10c4
2024-11-20 15:54:35 +01:00
Johannes Gallmann
8f8d29888a Merge "Disable 3-button-nav buttons during back button hold" into main 2024-11-20 08:39:42 +00:00
Toni Barzic
7a0191e753 Add unit tests for taskbar overflow
The tests verify that number of icons in the task bar does not go beyond
the intended max number, that the taskbar remains centered as it hits
max number of icons, and maintains a minimal margin to the display
edges.
Also, has a test that the max naumber of icons and the taskbar margins
adapt as bubble bar visibility chages.

Adds a TestRule to mock the recents model in the taskbar window sandbox.
The mocked recents model is used to add fake running app icons to the
taskbar.

Bug: 368119679
Test: atest TaskbarOverflowTest
Flag: EXEMPT test only

Change-Id: I8d033c3e95d7c0a4b139502cd7d70882482117c0
2024-11-20 01:48:54 +00:00
Johannes Gallmann
a4b56465ee Disable 3-button-nav buttons during back button hold
Bug: 373544911
Test: TaskbarNavButtonControllerTest
Test: Manual, i.e. verify that pressing buttons in 3-button-nav while the back button is pressed does not have any effect
Flag: com.android.window.flags.predictive_back_three_button_nav
Change-Id: I5abad5f2f74d09c790380a2eeb27aff3b780b925
2024-11-19 22:11:59 +00:00
Brian Isganitis
79809b448c Merge "Add annotation to simulate RTL in tests." into main 2024-11-19 16:30:34 +00:00
Brian Isganitis
01eb1e037b Add annotation to simulate RTL in tests.
Flag: TEST_ONLY
Bug: 230027385
Test: go/testedequals
Change-Id: Idc4ca404179359a6dc4fac160b7a865c5709f137
2024-11-15 15:09:37 -05:00
Jagrut Desai
596594c684 Fix launching app animation from launcher all apps.
This cl includes
	- making pinned taskbar animate slide in/out animation from bottom of screen.
        - no icon aligment with hotseat when taksbar is pinned

The solution
	- upon state change applied on TaskbarLauncherStateController. offset taskbar background and icons to bottom of screeen and animate with slide in/out effects.

Test: manual, presubmit
Bug: 314279101
Flag: EXEMPT bugfix

Change-Id: Ife336ebd57eb2f60c2bc33ed6a4527c42111808f
2024-11-14 15:51:50 -08:00
Liran Binyamin
12d34f8e2a Merge "Make the flyout color animation smooth" into main 2024-11-13 16:14:07 +00:00
Mykola Podolian
40cb4bf335 Merge "Fixed bubble bar size for the 3 buttons navigation mode." into main 2024-11-13 00:25:36 +00:00
Ats Jenk
d3a4f9f721 Merge "Fix bubble bar position on recreate" into main 2024-11-12 18:11:39 +00:00
Liran Binyamin
09403e7d9a Make the flyout color animation smooth
This change updates the flyout animation interpolator to an
emphasized curve and updates the color animation so that it completes
within a shorter period of time. Speeding up the color animation
makes the color transformation smooth.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 378077265
Test: atest BubbleBarViewAnimatorTest
Test: atest BubbleBarFlyoutControllerTest
Change-Id: Idd38fc71543f629aeb568d72386a9b9def51c307
2024-11-12 10:49:09 -05:00
Ats Jenk
5ad93d97fa Fix bubble bar position on recreate
When device is rotated, taskbar goes through recreate flow.
LauncherTaskbarUIController restores the state for taskbar in-app
display multiprop.
Ensure that bubble bar is positioned within the taskbar bounds.

The multiprop values in LauncherTaskbarUIController for taskbar in-app
display progress can be restored from shared state when the device
rotates. But this means when we receive updates to various indexes, the
progress for that index may not match what is the actual value of the
multiprop. As it relies on the max function.
Make sure we pass along the actual value for in-app display progress
when updating bubble bar and not the value for the index that got
updated.
Also make sure bubble bar translation always updates when updates are
received as this is the only path for bubble bar to receive updates.

Make sure that when we do override bubble bar translation using in-app
display progress, any existing animation for bubble bar translation y is
cancelled. Otherwise the unlock animation was animating the bubble bar
to the incorrect position after unlock.

Bug: 377621110
Flag: com.android.wm.shell.enable_bubble_bar
Test: atest PersistentBubbleStashControllerTest
Test: manual, have bubble bar with 3 button nav, swipe to -1 and rotate
  the device, observe that bubble bar is in the correct position
Test: manual, repeat same test with all apps open, observe that bubble
  bar has correct position after rotation
Test: manual, with gesture navigation, observe that bubble bar has
  correct position on home screen, -1 and all apps after rotation
Change-Id: I66138e003c4b371299e40558fdadc142fbdbbcd5
2024-11-11 23:21:30 -08:00