Commit Graph

384 Commits

Author SHA1 Message Date
Tracy Zhou 9c9befae5f Use nearest region for all the nav buttons in 3-button folded mode
Bug: 230395757
Test: In 3-button folded mode, make sure that the touches that happen between nav buttons go to the nearest button. No regression in other modes.

Change-Id: Icb776a9a4ed4fc31d33dc3267c7053f2b0da0bfc
2024-01-24 11:06:01 -08:00
Tracy Zhou a009a5e82e Update task bar height update logic to consider screen rotation cases
When home screen rotation is enabled, instead of updating taskbar height (assuming that folded task bar is always on the bottom of screen display), we should update taskbar width instead.

Bug: 313371759
Test: try out both folded and unfolded 3-button and gesture nav modes, enable home rotation, make sure all the nav buttons are functional and visible when they should be.
Change-Id: I16f53d9e9c3cd0229fc50b73613b032a96322b97
2024-01-19 16:58:03 -08:00
Andy Wickham 32f2cae290 Merge "Allow stashed taskbar to be long pressed." into main 2024-01-17 21:09:15 +00:00
Andy Wickham caf0c35661 Allow stashed taskbar to be long pressed.
Bug: 319175012
Test: Manual and unit test
Flag: NA
(see other change)

Change-Id: Ic8ac68d21c64a909a1035339d36f9c3b50a8963c
2024-01-16 21:43:46 -08:00
Tracy Zhou cf5407dfc6 Hook up luma sampling state change from CommandQueue
Currently when swiping up from some apps (maps), the stashed task bar color changes. Instead, sampling should be disabled during the transition (with a signal from the frameworks).

Bug: 230395757
Test: Swipe up from maps. Make sure the bar color doesn't change during transition
 to overview
Change-Id: Ifc30f4067a0e4d134b422d152f5b5caee0a77a33
2024-01-09 21:56:58 -08:00
Jagrut Desai 21f3d770a0 Merge "Taskbar Pinning Animation Improvements" into main 2024-01-05 23:21:57 +00:00
Jagrut Desai a3d3c06967 Taskbar Pinning Animation Improvements
Test: Manual
Bug: 312178646
Flag: ACONFIG com.android.launcher3.enable_taskbar_pinning DISABLED

Change-Id: I708127be8301a61994168f780474c75be726815d
2024-01-05 12:12:12 -08:00
Liran Binyamin 40c1b93aee Add a test for stashed bubble bar
This change introduces a new test protocol event for unstashing the bubble bar.

It's not possible to do this via a UI event because the stashed handle is only visible when an app is in the foreground, but in that state none of the elements in TaskbarDragLayer are visible to accessbility.

Flag: LEGACY persist.wm.debug.bubble_bar DISABLED
Bug: 273994695
Test: atest PlatformScenarioTests:android.platform.test.scenario.sysui.bubble.BubbleBarTest
Change-Id: I4581bf95b07691429966ecbd573232047f820b69
2024-01-05 08:49:27 -05:00
Jeremy Sim 9a7b6f972b Ignore taskbar launch request if app(s) are already running
This CL fixes several issues:
- When launching an app pair on top of the exact same app pair, Overview no longer enters a broken state
- When launching another app quickly after launching an app pair, splitscreen no longer breaks

Fixes: 315190686
Test: Launch app pair and then launch same app pair again from Taskbar -- Overview does not break
Flag: ACONFIG com.android.wm.shell.enable_app_pairs DEVELOPMENT
Change-Id: I0d474dd89359e1a10a881c5cf8deee64754219c3
2023-12-21 10:13:20 +09:00
Himanshu Gupta ce2b013d31 Merge "Adding methods to access LauncherApps APIs." into main 2023-12-19 11:27:09 +00:00
Jeremy Sim 34aa1c5366 Merge "Fixes two bugs with findLastActiveTasksAndRunCallback()" into main 2023-12-19 02:08:54 +00:00
Himanshu Gupta 6c25654e84 Adding methods to access LauncherApps APIs.
These methods are added to ApiWrapper class
so that Launcher can acess these APIs.

Bug: 308054233
Test: Presubmit
Flag: ACONFIG com.android.launcher3.Flags.private_space_sys_apps_separation DEVELOPMENT
Change-Id: Ic2e64b38cc8b0d262d3f6e9614e2b3fceb9d82a0
2023-12-18 19:47:13 +00:00
Jeremy Sim 42a44d7984 Fixes two bugs with findLastActiveTasksAndRunCallback()
This CL changes findLastActiveTasksAndRunCallback to return a fixed array rather than an ArrayList.

1) This fixes a (minor) crash with app pairs, where we performed get(0) on an empty array when no running tasks were found.
2) This also fixes a live bug where app pairs would launch apps in the wrong order if app 1 was not found in running tasks, but app 2 was.

The function should be more robust now, preserving the indexing of the input keys.

Fixes: 316053131
Test: Clear all tasks from Overview, launch an app pair, launch succeeds
Flag: ACONFIG com.android.wm.shell.enable_app_pairs DEVELOPMENT
Change-Id: I51d8ba823a2ec57e9ecfeede956e0afce1d653f4
2023-12-18 11:39:33 +09:00
Tracy Zhou 95c4c8d268 Fix crash from folding/unfolding
This is fundamentally caused by the phone device profile not having task bar related attributes, which crashes in icon alignment animation. We had resolved it by skipping this animation based on isPhoneMode check. However, we passed in launcherDp instead of taskbarDp (from TaskbarActivityContext) which doesn't always have the most up to date information in race conditions (e.g. repetitively fold/unfold)

Fixes: 311431054
Test: repetively fold/unfold, make sure it doesn't crash
Change-Id: I65f600112da4123d337b3f59a2fe6dd13ac7af74
2023-12-14 18:39:42 -08:00
Tracy Zhou 9ccd5d4257 Introduce taskbar_phone_size
In small screen, we use 48dp for nav bar height, while it's 60dp for task bar.

Bug: 230395757
Test: manual
Change-Id: Ia7083a1b2246981466e1163404c63b645a6bf5b1
2023-12-13 00:38:15 -08:00
Jagrut Desai 2be2b93256 Merge "TaskbarPinningController Unit Tests" into main 2023-12-12 16:19:00 +00:00
Jeremy Sim 160225029d Merge "App Pairs: Launch animation" into main 2023-12-12 00:58:49 +00:00
Jagrut Desai 70de8a4823 TaskbarPinningController Unit Tests
Test: Presubmit
Bug: 265439107
Flag: NONE

Change-Id: I5da3558adf88126b07c5d6217ee4fbbcc1e2e348
2023-12-11 14:46:55 -08:00
Tracy Zhou 901b190153 Merge "Pass in navigation bar panel context created by task bar when taskbar navbar unification is on" into main 2023-12-11 21:47:59 +00:00
Jeremy Sim 23fcbf2f73 App Pairs: Launch animation
[App Pairs 7/?]

This patch implements the app pair launch animation from icon. Adds a new function, composeFadeInSplitLaunchAnimator(), in SplitAnimationController, that builds the combined launcher + shell animation.

Bug: 309618233
Flag: ACONFIG com.android.wm.shell.enable_app_pairs DEVELOPMENT
Test: Manual
Change-Id: I8e95f629ae2a71f1bd6cbb356f5e33233e5c2906
2023-12-11 13:09:06 +09:00
Jeremy Sim 2987d95ba4 App Pairs: Implement Taskbar functionality
[App Pairs 8/?]

This CL adds taskbar functionality for app pairs:
- Ability to drag an app pair icon to Taskbar
- App pair launch from Home Taskbar
- App pair launch from Overview Taskbar
- App pair launch from in-app Taskbar

KNOWN ISSUES:
- Bug (b/315190686): if user is inside a running split pair and attempts to launch the same pair from an app pair icon on taskbar, Overview tiles get temporarily messed up (recoverable by leaving Overview)
- User can attempt to split with an app pair icon on the Taskbar. This should result in a "can't split with this" bounce animation on the SplitInstructionsView (to be implemented). Currently does nothing.

Bug: 274835596
Flag: ACONFIG com.android.wm.shell.enable_app_pairs DEVELOPMENT
Test: Manual
Change-Id: I5256547af236fc2deeb192d60bfe1f2b7ddc5647
2023-12-08 15:07:45 -08:00
Saumya Prakash 55fdc45ecc Merge "Ensure Taskbar stashes when launching an app from folder" into main 2023-12-08 22:59:45 +00:00
Saumya Prakash 86285d477d Ensure Taskbar stashes when launching an app from folder
We use the folder closing callback to trigger a call to stash the
taskbar if an app was launched. We can check whether an app was launched
from a folder based on whether a folder's view is open when
an app is launched. This ensures that the taskbar only stashes after the
folder is done animating.

Flag: NA
Fix: 295296529
Test: Launched an app in a folder on taskbar. Also ensured that other
taskbar behavior remains unchanged.

Change-Id: Ib5a797186978ee960e44b6b62c833eead03bccd0
2023-12-08 20:16:15 +00:00
Tony Wickham 18551f29fe Remove ENABLE_TRANSIENT_TASKBAR and long-press stash support
Flag: NA
Test: manual, TaplTestsTaskbar, TaplTestsPersistent, TaplTestsTransient
Fixes: 270395798
Change-Id: I4ecf5ddcd1206e846538175c684043c5e065fd5d
2023-12-06 22:13:10 +00:00
Tracy Zhou 7fae462565 Pass in navigation bar panel context created by task bar when taskbar navbar unification is on
When the flag is on, task bar is created with window context navigation bar. The floating rotation button window context should be in navigation bar panel.

Fixes: 309930089
Test: N/A
Change-Id: I730a4b898d9fb65cc5d7544dcb37dfe32d49a632
2023-12-05 12:53:51 -08:00
Tracy Zhou ec26a138d5 Do not apply rounded corner background to task bar when it's in phone mode
Fixes: 311428370
Test: Make sure nav bar in landscape phone mode doesn't have weird clips
Change-Id: I0c402dd10a3bd39afd5692d21ef8adaad04646db
2023-12-04 22:07:04 -08:00
Jagrut Desai a5ad8bed64 Decreasing the intensity of haptic feedback for taskbar invocation
Test: Presubmit, Manual
Bug: 308496668
Flag: NONE
Change-Id: Ic8c28b8e84bf9f388a73c518c91840d958287546
2023-11-29 19:03:33 -08:00
Jagrut Desai 90dd098c85 Migrate ENABLE_TASKBAR_PINNING to aconfig flag
Test: Manual, Presubmit
Bug: 265437087
Flag: ACONFIG com.android.launcher3.enable_taskbar_pinning DISABLED

Change-Id: I4800230c04feceefa2398e189c493c8c4a7b2fe5
2023-11-09 23:20:03 +00:00
Tracy Zhou f2d7be1cec Make enableTaskbarNoRecreate() depend on ENABLE_TASKBAR_PINNING and ENABLE_TASKBAR_NAVBAR_UNIFICATION
We want to turn on the flag when either of the dependent features is on

Bug: 299193589
Test: N/A
Change-Id: I7b48ff2be0cf9da3b6bc00d75370fa585ce4140d
2023-11-08 14:52:58 -08:00
Tracy Zhou 6fe69f5a2a Migrate HIDE_NAVBAR_WINDOW to aconfig and rename is to enable_taskbar_navbar_unification
Bug: 309671494
Test: N/A
Change-Id: If35d807c17351146029498a876a055384eff3c2f
2023-11-07 13:51:38 -08:00
Jagrut Desai b10f2a3d03 Refactor TaskbarActivityContext#applyDeviceProfile
Test: presubmit
Bug: 308024141
Flag: LEGACY ENABLE_TASKBAR_PINNING DISABLED
Change-Id: Ic0ecc80f9b61910a917b93cbe62139e2c5d0d9d2
2023-10-26 16:12:12 -07:00
Jagrut Desai 24231d9994 Merge "Taskbar pinning animation with no recreate" into main 2023-10-26 21:33:41 +00:00
Jagrut Desai 631b284836 Taskbar pinning animation with no recreate
Test: Manual, Visual
Bug: 265436799
Flag: LEGACY ENABLE_TASKBAR_PINNING DISABLED

Change-Id: I84a4d1efdb0bd4a0f856fa1f46b6489ef54a3841
2023-10-26 10:36:48 -07:00
Tracy Zhou f767c86896 Add task bar window of TYPE_NAVIGATION_BAR when FLAG_HIDE_NAVBAR_WINDOW is on
Bug: 304426019
Test: manual
Change-Id: I0c09e57db5a9bf6391605d5ec667cf12c96a2042
2023-10-25 14:54:01 -07:00
Tracy Zhou 00f9e52575 Migrate ENABLE_TASKBAR_NO_RECREATION to launcher.aconfig
Bug: 274517647
Test: manual
Change-Id: I29fe58691440ee757c9f391bd574ef80eefb5ae6
2023-10-24 18:42:15 -07:00
Pat Manning 1eb8bd8735 Merge "Increase pinned taskbar height to fit tooltips." into main 2023-10-23 16:13:03 +00:00
Pat Manning 5643e7c047 Increase pinned taskbar height to fit tooltips.
Fix: 305706286
Flag: ACONFIG com.android.launcher3.enable_cursor_hover_states TRUNKFOOD
Test: TaskbarHoverToolTipControllerTest

Change-Id: I767947a752eae7a928d59fe332bc62b9fd5b5f37
2023-10-23 15:52:48 +01:00
Jon Miranda 00c3d78191 Add HomeTransitionListener to launcher.
Fixes: 279514548
Bug: 284474103
Bug: 306053414

Flag: LEGACY ENABLE_HOME_TRANSITION_LISTENER DISABLED
Test: App launch -> Hotseat -> Taskbar stashes
      Transluscent app launch and launcher still visible -> No change
      Going home -> Hotseat visible

Change-Id: I6db5253ada3e3b37dfae124f3ee88a9805804fb8
2023-10-20 15:46:11 -07:00
Jagrut Desai f56bfabaa4 Merge "Change Taskbar Window height logic for taskbar pinning." into main 2023-10-06 23:33:30 +00:00
Jagrut Desai 0dce287a6c Change Taskbar Window height logic for taskbar pinning.
- Breakout CL part 6
- This is a breakout cl from ag/24272821 to make it more readable and atomic.
- This cl makes default taskbar window height to be transient when the taskbar pinning flag is on, so we don't see taskbar window cutoff during animation.

Test: Manual, Visual
Bug: 265170176
Flag: ENABLE_TASKBAR_PINNING
Change-Id: I37e8ad0f2c4d144476828f101019dcacdea7acb2
2023-10-03 16:53:32 -07:00
Liran Binyamin e41e6185e4 Make the bubble bar flag dynamic in Launcher.
Changing the flag currently requires a reboot, because it is read once when the process starts and never changes.
This change triggers a re-read of the flag value from SystemProperties whenever Taskbar is recreated.
This allows setting the flag as part of integration tests for bubble bar.

Bug: 273994695
Test: Manual:
       - turn flag off
       - create bubbles
       - observe floating bubbles are added
       - turn flag on
       - change navigation mode to gesture navigation
       - observe bubble bar becomes visible
Change-Id: I277ea6aa2c8d3ab04094537bf4cd31630310dfec
2023-10-03 10:49:30 -04:00
Vinit Nayak dd96f79b36 Merge "Provide bgExecutor for RotationButtonController" into udc-qpr-dev am: 8ad9393213 am: a6f66eeba7
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24761312

Change-Id: I3f6610ca6dd3087298e84d24ceb0570d3d2749ee
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-09-16 02:45:25 +00:00
Vinit Nayak 9b3598f154 Provide bgExecutor for RotationButtonController
Bug: 289341065
Test: Unfolded, checked perfetto trace, it
shows up not on UI thread

Change-Id: I9a080c9a5c3c57f38eb6719ed73952dde4f6bba1
2023-09-15 10:46:00 -04:00
Liran Binyamin a833af316b Adjust the hotseat when the bubble bar becomes visible
When the bubble bar becomes visible the space between icons in the
hotseat is now adjusted. This change only does it when the QSB is
above the icons, but this will be changed in the future to be based
on the amount of space between the hotseat and the edge of the screen.

When the hotseat is adjusted, the new width is smaller by the size of
2 icons. The icons are then translated to be evenly spaced within the
boundaries of the new width.

Since the adjustment is only applied when the QSB is above the icons,
it is resized accordingly to the new width.

All visual updates currently snap to the new position, but will be animated
in a follow up.

Demo: https://recall.googleplex.com/projects/3391fc5c-599d-4827-b6f8-d2deb160aa99/sessions/fad1a5c5-e9cf-4586-92e4-1e92df3b002e

Bug: 280494203
Test: Manual (on tangor)
      - Set device to landscape
      - Make the bubble bar visible by adding a bubble
      - Rotate to portrait mode
      - Observe that the hotseat is adjusted
      - Rotate to landscape
      - Observe that the hotseat adjustment is removed
      - Rotate back to portrait
      - Observe that the hotseat is adjusted again
      - Dismiss the bubble to hide he bubble bar
      - Observe the hotseat adjustment is removed

Change-Id: I5b02a60b6cb301ffa2507a6d825c748a782cca18
2023-09-13 17:08:42 -04:00
Brian Isganitis 3c0303b6ac Focus Taskbar search EditText and show IME on meta key toggle.
Test: adb shell input keyevent 117
Fix: 300116542
Flag: ENABLE_ALL_APPS_SEARCH_IN_TASKBAR
Change-Id: Iaf15240f49e978078cd586169be1665e1a86eda5
2023-09-12 20:23:47 +00:00
Tracy Zhou ca9b884118 Merge "Always recreate TaskbarActivityContext" into main 2023-09-12 02:24:45 +00:00
Jagrut Desai fb4694d51e Merge "Apply ForciblyShown WindowLayoutParam flags for Transient Taskbar" into udc-qpr-dev am: 733d440ac1 am: a1e8f327ff
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24709295

Change-Id: Id84c65adba08bae631cccfd6792c6a90b6992637
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-09-11 23:47:46 +00:00
Jagrut Desai 6472119d4b Apply ForciblyShown WindowLayoutParam flags for Transient Taskbar
Test: Manual
Bug: 278078311
Flag: Not needed
Change-Id: Ia963e45b3b4e6d928b6292b80b73394e76fe2325
2023-09-11 09:39:23 -07:00
Tracy Zhou 01cc856157 Always recreate TaskbarActivityContext
- Add ENABLE_TASKBAR_NO_RECREATION flag
  When the flag is turned on,
  * Always destroy and recreate
  * Move task bar drag layer lifecycle from TaskbarActivityContext to TaskbarManager
  * Wrap the drag layer into a fullscreen root view

Note that in order to preserve the window across multiple TaskbarActivityContext creations, the inset types and ids must stay the same, so it's extracted out.

Bug: 274517647
Test: Fold and unfold a few times. Use a few applications. Make sure the task bar is visible and in the right place (tested with ENABLE_TASKBAR_NO_RECREATION and FLAG_HIDE_NAVBAR_WINDOW both on, both off, and one on and one off)
Change-Id: Ic3f0aa3d056fe178a53b76b2ad6cc6b9bffd5898
2023-09-10 22:43:47 -07:00
Jagrut Desai 54677143b1 Add haptic feeback for Transient Taskbar
Bug: 264851582
Test: Manual
Flag: Not needed
Change-Id: Id5f0e386968291f4c4a897bebf40c59aba33c3d4
2023-09-08 15:39:12 -07:00