Commit Graph

267 Commits

Author SHA1 Message Date
Vinit Nayak 7c7ece3efe Rename isSplitSelectionEnabled() to isSplitSelectionActive()
Bug: 295467097
Change-Id: I5c518c3e7227c034956fb92590b7472ba4a71d39
2024-01-23 15:41:14 -08:00
Sunny Goyal 7ec2e11b0c Merge "Implementing an unfold animation using CannedAnimationController" into main 2024-01-22 19:06:41 +00:00
Anushree Ganjam b3bf0276e4 Pause the prediction update until the app launch transition ends.
b/319162661 issue is similar to hotseat updates on app click : b/148800229 and ag/10235572

So we will pause the prediction updates until the app launch transition is complete.

See https://b.corp.google.com/issues/319162661#comment9 and https://b.corp.google.com/issues/319162661#comment10 for bug report
analysis.

Before fix: https://b.corp.google.com/issues/319162661#comment11

After fix: https://b.corp.google.com/issues/319162661#comment12

Bug: 319162661
Test: Manual
Flag: NA
Change-Id: I797ce982569c7950628368b854fb3b6766f0fc28
2024-01-22 09:51:05 -08:00
Federico Baron 2b691f67b4 Merge "Add logs to debug b/318394698" into main 2024-01-19 22:38:23 +00:00
fbaron e5e37faa1f Add logs to debug b/318394698
Flag: NONE
Test: n/a
Bug: 318394698
Change-Id: I3142dafeae0ba31713f514e690c5b7bb730541b0
2024-01-19 13:24:18 -08:00
Sunny Goyal 2c206400a2 Implementing an unfold animation using CannedAnimationController
Bug: 297057373
Flag: aconfig enable_unfold_state_animation DISABLED
Test: Manual
Change-Id: Iaa352133ebf06ab74b9ba4b8c4d3523f27666089
2024-01-18 11:49:37 -08:00
Anushree Ganjam 5e9b71e055 Add "Don't suggest app" shortcut to suggested apps.
This works for suggested apps in both Home and AA+. When enable_shortcut_dont_suggest_app is true, the secondary drop target "Don't Suggest app" is removed instead "Don't suggest app" is added to shortcuts.

Video: https://b.corp.google.com/issues/319250810#comment5

Home: https://screenshot.googleplex.com/d7Wts48X6EmFAYg.png
Private space app suggested: https://screenshot.googleplex.com/BukzCRTvkzbpwQ3.png

AA+: https://screenshot.googleplex.com/ADMCHnQ378jvJEE.png
Private space app suggested : https://screenshot.googleplex.com/AYga8Km3646AqMt.png

Bug: 319250810
Flag: aconfig com.android.launcher.enable_shortcut_dont_suggest_app DEVELOPMENT
Test: Manual.

Change-Id: Ia7df749a1c7d806bd9d74124be138384c3050119
2024-01-12 10:33:24 -08:00
Anna Zhuravleva eb1966c278 Merge "Add shortcut to install an app to Private space" into main 2024-01-12 15:51:05 +00:00
Anna Zhuravleva 29a3139815 Add shortcut to install an app to Private space
Introduce long-press shortcut to install a copy
of the main user app to private space.

Test: manual, installed apps in different stores
and tried shortcut
https://screenshot.googleplex.com/6oAVamTytiYmvPC.png
Bug: 316118005
Flag: ACONFIG com.android.launcher3.Flags.enable_private_space_install_shortcut DEVELOPMENT

Change-Id: I702cd2a27388e3cc6e9e126308d5479836ba6655
2024-01-11 12:40:28 +00:00
Schneider Victor-tulias 5bc6a0aa1f Update KQS task launch animation
Updated the KQS app launch animation to match the spec: translate the launching app from the left (right in RTL) and translate the closing app to the right (left in RTL)

Flag: LEGACY ENABLE_KEYBOARD_QUICK_SWITCH ENABLED
Fixes: 313606549
Fixes: 313607264
Test: launched tasks from KQS from home and launched app
Change-Id: I0e903c741e4f930b377607b7eaf42a87177c3eb6
2024-01-08 16:19:17 -05:00
Vinit Nayak e363a611d2 Null out launcher reference to prevent leak
Bug: 314806687
Flag: None
Test: Enabled flag and played with taskbar/home transitions,
seemed fine

Change-Id: I86ab417eccf1fd6255195025890a1b93bf5d3bb4
2024-01-03 15:08:47 -08: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
Jon Miranda 20fdc7b508 Move taskbar clean up so that it only gets called when user swipes up to go home.
This fixes the bug where the flag gets set when user taps on nav handle, which
results in the taskbar animation playing.

Flag: N/A
Test: open app
      wait for taskbar to finish stashing*
      tap on nav handle
      nothing happens (desired affect)
      * I will address tapping on taskbar while its animating in a separate change
Bug: 292108880
Change-Id: I75870050225bdd951c69224d272d0bd5a3d6d4ea
2023-12-13 02:51:28 +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
Schneider Victor-tulias dc4b61be59 Merge "Fix Keyboard quick switch screenshots and spliscreen launch" into main 2023-12-05 04:10:13 +00:00
Schneider Victor-tulias f67c54b48f Fix Keyboard quick switch screenshots and spliscreen launch
Flag: LEGACY ENABLE_KEYBOARD_QUICK_SWITCH ENABLED
Fixes: 312449590
Fixes: 292182490
Test: TaplTestsKeyboardQuickSwitch, keyboard quick switched with split app pairs
Change-Id: I0faf2f7d58b39270ad6e5a065cf59f48e0dd23f0
2023-11-29 15:59:04 -05:00
fbaron c04ad685f5 Fix activity leak in QuickstepLauncher
Fix: 312397873
Test: TaplAppIconMenuTest#testLaunchMenuItem
Flag: NONE
Change-Id: I63fe5fa5b3f2d301017dc6fb375e7a56e3e5fb4d
2023-11-27 18:10:45 +00:00
Sebastián Franco 5054899552 Merge "Moving some constants in Launcher.java to a separate file for ease of readability" into main 2023-11-07 21:22:11 +00:00
Sebastian Franco 974cc94839 Moving some constants in Launcher.java to a separate file for ease of readability
Part of  go/launcher_SoR

Flag: N/A
Bug: 306465626
Test: compiling, no-op change
Change-Id: I5ea40acb2ba1ea5840021e297516a511b032a043
2023-11-07 10:12:26 -06:00
Ats Jenk 866e77101c Merge "Use aconfig flag for desktop mode" into main 2023-10-31 05:07:02 +00:00
Sunny Goyal 24e738e872 Merge "Removing some dependencies on Activity" into main 2023-10-30 22:50:19 +00:00
Sunny Goyal e82a20a44d Removing some dependencies on Activity
> Removing activtiy from overlay callbacks
> Removing usage on activtiyLifecycleCallbacks and managing the callbacks ourselves

Bug: 306225896
Test: Existing tests cover the lifecycle changes
Flag: N/A
Change-Id: I79941e364328eecdc8a72cac4d35b75d50a25319
2023-10-30 08:23:15 -07:00
Ats Jenk 5c25c3a19d Use aconfig flag for desktop mode
Refactors all flag access in Launcher to be from DesktopTaskView and using a method instead of a static field.
Also using static import for the method so if we need to move it, only imports needs to be updated.

Bug: 304778354
Flag: ACONFIG com.android.wm.shell.enable_desktop_windowing TEAMFOOD
Test: enable the aconfig flag, check that desktop windowing is available

Change-Id: Ia2bdfd865802a635878d72cfb5a90c21dad6ed08
2023-10-27 10:58:07 -07:00
Jon Miranda 60ae29ef08 Migrate ENABLE_HOME_TRANSITION_LISTENER to launcher.aconfig
Also set flag to TEAMFOOD.

Flag: ACONFIG ENABLE_HOME_TRANSITION_LISTENER TEAMFOOD
Bug: 306053414
Test: manual
Change-Id: Icf3947e61fa9f20f5b6e5ca2af96e693b55d3edc
2023-10-27 16:43:01 +00:00
Vinit Nayak a1be4c1123 Use aconfig flag enable_split_contextual
Bug: 276361926
Test: Basic split contextual operations work
as expected

Change-Id: I7202654f8452a0c57e5e728c9baaadf85fa22a96
2023-10-25 01:37:17 +00:00
Jon @ b61dcac34e Merge "Add HomeTransitionListener to launcher." into main 2023-10-23 15:56:36 +00: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
Sunny Goyal 8bbd8d4c43 Remove RPC due to unnecessary permission check
Bug: 302400996
Test: Presubmit
Flag: N/A
Change-Id: I9c03e95f37e6e7be8a61ad6f5f7548b4860a1704
2023-10-18 10:52:17 -07:00
Sunny Goyal cd44740567 Moving onboarding prefs to use LauncherPrefs
Bug: 301661768
Test: Presubmit
Flag: N/A
Change-Id: Iec8a5e739f394a152d5ffc57b01e0449e94b4084
2023-10-10 11:47:33 -07:00
Vinit Nayak b95ee09a69 Merge "Dismiss split selection for workspace long-press" into main 2023-10-09 16:13:52 +00:00
Vinit Nayak 4f850a42a0 Merge changes I9e56ddbe,I8767deea into main
* changes:
  Disallow taskbar long click when in split selection state
  Add method to determine if launcher is in split selection state
2023-10-07 00:20:24 +00:00
Vinit Nayak d0fc718a0a Dismiss split selection for workspace long-press
Bug: 295426148
Test: Enter split contextual from homescreen,
long-press on empty space, split gets dismissed
Flag: ENABLE_SPLIT_WORKSPACE_TO_WORKSPACE

Change-Id: I3a893bea7b22645fe60c65c4c5ab8c2087d769da
2023-10-06 16:05:54 -07:00
Vinit Nayak 1525cd7269 Add method to determine if launcher is in split selection state
* Available for both launcher and taskbar via
ActivityContext

Bug: 295981634
Change-Id: I8767deea0b2432da3047209037874c966b83c3b3
2023-10-06 14:40:49 -07:00
Sunny Goyal b34296face Merge "Making AsyncClockEventDelegate a singleton" into main 2023-10-06 16:58:41 +00:00
Sunny Goyal df178f5320 Making AsyncClockEventDelegate a singleton
RemoteViews can get inflated after the activity is destroyed during
async inflation. This can cause the delegate to loose the destroy event.

Bug: 303686041
Test: Presubmit
Flag: N/A
Change-Id: Iecb9d69d95b2c924e1189ac15515fac327d8f44d
2023-10-05 13:23:58 -07:00
Vinit Nayak ae3c5749ef Support fullscreen split selection launch for contextual
* Migrate animating split placeholder to fullscreen into
SplitAnimationController from RecentsView to consolidate
* Reset state from RecentsView via a callback

Fixes: 295457117
Test: Tapping on placeholder in overview and home works
as expected

Change-Id: Id9a74eddc134a0470110845b90729c05193a1f93
2023-10-04 16:05:03 -07:00
Ats Jenk a54772832b Merge "Animate launching desktop from overview" into main 2023-09-26 23:20:46 +00:00
Ats Jenk a24b63d644 Animate launching desktop from overview
Create a new controller that handles launching desktop from recents. It
creates a remote transition runner. Then notifies wmshell to show
desktop apps and use this remote runner to run the animation.

TODO:
- there are flickers in the animation

Bug: 297590571
Test: open an app on desktop, swipe up to overview, click on desktop
      tile
      open multiple apps on desktop, swipe up to overview, click on
      desktop tile

Change-Id: Ie8c9189bace77ba80e6be90222b3f786dfe5bb15
2023-09-26 10:39:49 -07:00
Jeremy Sim da230cf526 Request split launches using a new enum, snapPosition, rather than a float splitRatio
Split ratios are now stored as an int enum rather than float values. Previously, split ratios were stored as floats, which needed to be recalculated frequently and differed depending on device screen size. Now Shell to store and launch split screen setups using an enum rather than floats.

Bug: 274835596
Bug: 182839788
Test: Existing tests still pass
Change-Id: Iebb8d3c7e8f9d597a59b677e48072300ddea458f
2023-09-21 11:34:07 -07:00
Schneider Victor-tulias f5099749be Merge changes I26080534,Iede0881b into main
* changes:
  Send ACTION_CANCEL motion event to TIS instead of finishing the recents animation on screen off
  Replace all uses of string concatenation with CompoundString in ActiveGestureLog
2023-09-19 12:59:35 +00:00
Sunny Goyal 10c14c297d Merge "Overriding the default TextClock and AnalogClock behavior to avoid RPCs on main thread during onAttachToWindow" into main 2023-09-18 22:55:26 +00:00
Vinit Nayak 3a57263a7d Merge "Exit split selection state if launcher interrupted" into main 2023-09-18 21:56:07 +00:00
Schneider Victor-tulias 44de9caaeb Send ACTION_CANCEL motion event to TIS instead of finishing the recents animation on screen off
Finishing the recents animation on screen off callback did not necessarily stop touch tracking, which would allow the user to double press the power button, but create a broken experience.

Sending ACTION_DOWN instead stops touch tracking and runs the proper clean up methods.

Flag: not needed
Fixes: 299235099
Test: single-pressed and double-pressed the power button mid-gesture
Change-Id: I2608053460f43703613bd6caead91ccb4ce08ceb
2023-09-18 16:28:43 -04:00
Sunny Goyal 140883e599 Overriding the default TextClock and AnalogClock behavior to avoid RPCs on main thread
during onAttachToWindow

Bug: 294352799
Test: Verified on device
Flag: N/A
Change-Id: I3cce6900cd62a6e9a57c155b74c15c2340c6011b
2023-09-18 13:26:31 -07:00
Liran Binyamin 070be25853 Merge "Adjust the hotseat when the bubble bar becomes visible" into main 2023-09-15 17:48:41 +00:00
Vinit Nayak d91f811ab6 Exit split selection state if launcher interrupted
* Launcher gets paused as a natural part of
confirming a split, so only cancel when 1 app is
confirmed

Test: Start split from workspace, then go to
* double tap camera
* settings via notification drawer
* mic icon on QSB
Bug: 276361926

Change-Id: I048964403303defe35035ee24950cfbbfc201afd
2023-09-15 17:19:13 +00:00
Federico Baron 099f7f936e Merge "Ensure PauseUIUpdate always ends up getting set to false" into udc-qpr-dev am: 15b81093d7 am: f3a2082285
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24749997

Change-Id: I8183be8017e43d588b5baed2b80bed70aca7a728
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-09-14 16:53:40 +00:00
fbaron a101ac696f Ensure PauseUIUpdate always ends up getting set to false
when result was null but getTaskbarUIController() is not null, we don't setPauseUIUpdate to false. This CL ensure we always end up setting pauseUIUpdate to false so that the hotseat suggested apps show up.

Fix: 295892343
Flag: no flag
Test: verify hotseat icons don't disappear
Change-Id: Id872f3174df276cb7a4ed7f6672523d0851a11dd
2023-09-13 16:56:02 -07: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