Commit Graph

421 Commits

Author SHA1 Message Date
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
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
Treehugger Robot 57cab7794a Merge "Simplifying some view iteration methods" into main 2025-03-04 18:42:06 -08:00
Sunny Goyal 476d926972 Simplifying some view iteration methods
Bug: 393703968
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: Ieffa3a66fbf8595d542995c348df578a3aec9083
2025-03-04 10:39:55 -08:00
Wen-chien Wang 8444f38c92 Merge "pin-shortcut: Tracks hotseat states and adds unpin option for taskbar" into main 2025-03-03 16:50:48 -08:00
Sukesh Ram f1ec7a7699 [CD Taskbar] Refactor TaskbarManager - Add Debugging Support for Stability.
Refactor TaskbarManager & add Debugging Support for Stability. Centralize all existing logging behind existing logging methods.

Bug: 398878697
Bug: 382378283
Bug: 391653300
Test: m
Flag: EXEMPT not adding new behavior
Change-Id: I3f131b5e9ce720140c1d3eb46a53a4763926df83
2025-02-25 02:52:48 -08:00
Wen-Chien Wang f77c3cac2b pin-shortcut: Tracks hotseat states and adds unpin option for taskbar
This cl adds the unpin option by tracking the hotseat/taskbar state. The
option shown is determined by the following conditions:

1. If the target non-predicted item is on the taskbar, shows
   "Unpin from taskbar"
2. If the taskbar is not full, that is, reaching the limit of the
   available spaces, and the target item is anywhere outside of the
   taskbar, including All apps, shows "Pin to taskbar".
3. If the taskbar is full, simply don't show any shortcut option.

This cl also removes the option that will be shown on Launcher
homescreen or hotseat, as further UX alignment is needed.

One note about why the pin shortcut is not implemented in the
getShortcuts(). The reason is that getShortcuts does not have the
ItemInfo of the triggered item, while the SystemShortcut.Factory doesn't
have the hotseat/taskbar information. The simplest way at this point is
to check all the conditions in the controller and then manually add the
shortcut into the list.

Bug: 375648361
Test: Manual, Recording uploaded to buganizer
Flag: com.android.launcher3.enable_pinning_app_with_context_menu
Change-Id: I7d048bcb1b00f78651e909fbfcd911052a4cd4ef
2025-02-25 00:10:59 +00:00
Sukesh Ram edec1fbbfd [CD Taskbar] Staging - Add/Remove Taskbars
Tablet to Monitor connection renders Extended Mode.

Test: Manual
Bug: 390426030
Flag: com.android.window.flags.enable_taskbar_connected_displays
Change-Id: I16e2e4911446c42d5351d7086154d6c720bca284
2025-02-14 01:50:33 -08:00
Ahmed Fakhry ad6fee6111 Implement isInDesktopMode*()
This CL does the following:
- Adds new methods `isInDesktopMode()` and
  `isInDesktopModeAndNotInOverview()` to `DesktopVisibilityController`.
- These two methods rely on the new multi-desks impl when the flags are
  enabled.
- Makes the existing `areDesktopTasksVisible()` and
  `areDesktopTasksVisibleAndNotInOverview()` private, and migrates all
  the usages to the new methods.
- The new methods uses the old methods if the flags are disabled.

A companion NexusLauncher CL is at ag/31601363.

Bug: 394182435
Test: m
Flag: com.android.window.flags.enable_multiple_desktops_frontend
Flag: com.android.window.flags.enable_multiple_desktops_backend
Change-Id: I29ff38f984bfe2f68a120f84e1a75fa36b739258
2025-02-12 21:18:51 +00:00
Sunny Goyal 1ada394e00 Simplifying some ActivityContext and StateManager methods
> Merging asContext and getContext meethod
> Simplifying some generic declaration in StateManager

Bug: 393703968
Flag: EXEMPT refactor
Test: Compilation
Change-Id: I679ac83e39b2a17f510698db15335aae8f735aad
2025-02-04 10:11:34 -08:00
Treehugger Robot d3b31eb20d Merge "Removing BaseDraggingActivity > Merging come methods to BaseActivtiy > Separating wallpaper theme implementation to an independent class" into main 2025-02-04 09:29:46 -08:00
Pat Manning 8e7130d364 Merge "Refactor TaskViewTouchController to separately handle dismiss and launch." into main 2025-02-04 03:47:03 -08:00
Sunny Goyal edc1453cf1 Removing BaseDraggingActivity
> Merging come methods to BaseActivtiy
> Separating wallpaper theme implementation to an independent class

Bug: 393703968
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: I8cdb6d1520beff3f8226b62c5b7eafd48b2c674f
2025-02-03 17:23:10 -08:00
Pat Manning c824545d07 Refactor TaskViewTouchController to separately handle dismiss and launch.
Remove use of PendingAnimation for task dismiss.

Fix: 389080698
Test: Manual.
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Ifdfd7d8ef78bba5d10ff6f157635430637805584
2025-02-03 19:46:52 +00:00
Ahmed Fakhry c590a62c80 Remove GroupTask.mSplitBounds
See go/refactor-group-task for details. This CL removes `mSplitBounds`
from `GroupTask` and adds `splitBounds` to `SplitTask`. This makes its
usages more intentional.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: I9a3e8ee2e96d46f9eb79a58ffcf5efc257615aac
2025-01-31 17:14:46 +00:00
Ahmed Fakhry b6ecf5889e Remove all external usages of GroupTask.task1/2 from Launcher3
See go/refactor-group-task for details. This CL removes all the usages
of `task1` and `task2` from `GroupTask` in Launcher3. Follow-up CLs will
remove it from NexusLauncher and remove the fields altogether.

Bug: 388593902
Test: m
Flag: EXEMPT pure refactor with no behavior change.
Change-Id: I902c8135b3a0aae95acf25267b3bcbf286bd4e7d
2025-01-31 17:14:44 +00:00
Treehugger Robot 4e09250fd5 Merge "Convert TaskViewTouchController to Kotlin." into main 2025-01-23 09:51:04 -08:00
Pat Manning b426809ced Convert TaskViewTouchController to Kotlin.
Flag the change to use the previous class.

Fix: 391107339
Test: Manual.
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Icf139fc0d6744766da548f2137597b2b020863c1
2025-01-23 10:57:17 +00:00
Liran Binyamin e96bd71f50 Merge "Pass the user id for intent app bubbles" into main 2025-01-17 12:29:50 -08:00
Liran Binyamin 96dc022401 Pass the user id for intent app bubbles
When creating a new app bubble by long pressing on launcher icons,
pass the user id to wm shell so the bubble is created for the correct
user context.

Bug: 361173339
Flag: com.android.wm.shell.enable_bubble_anything
Test: atest BubbleAnythingTest
Test: manual
       - create work profile
       - long press on a work profile app icon -> Bubble
       - observe new bubble opens in the work profile context
Change-Id: Idb980bc6f74e85e85a9777f0d39e772b84feeb9c
2025-01-15 21:35:54 -05:00
Mady Mellor 7d97e96550 Update code guarded by bubble anything flag to use the helper method
Also adds a dependency on shared shell lib so launcher can use this.

Flag: com.android.wm.shell.enable_create_any_bubble
Test: manual - enable the create flag and check that bubble anything still
               works; same with bubble anything flag
Bug: 389737359
Change-Id: I18322512c9d9883ee5cf473b72df565adea85879
2025-01-15 17:04:10 -08:00
Vinit Nayak 3815a095f1 Remove and cleanup splitContextual flag
Bug: 276361926
Flag: EXEMPT removing flag
Change-Id: I6f567a8aae5b962f36ec2bc96b7fb05906b4ff2f
2025-01-14 10:23:59 -05:00
Will Osborn 68ef02ca44 Merge "Move recents dependency destruction to onDestroy from onDetachedWindow" into main 2025-01-08 06:57:23 -08:00
Will Osborn 7fecb97dfb Move recents dependency destruction to onDestroy from onDetachedWindow
With Overview running in a window, this clearing up needs to move later in the  lifecycle.

Bug: 388232647
Test: ran locally on device
Flag: EXEMPT bugfix
Change-Id: Id35c7fce390c2874b453c8b14c4eb0e7220ccd94
2025-01-07 17:51:30 +00:00
Sunny Goyal 0e3948a5fd Removing RotationTouchHelper state management from RecentsAnimationDeviceState
RotationTouchHelper is a singleton and can manage its lifecycle statically

Bug: 386288280
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I3e3105ac982ec716d5e2ee10f459d3e1cf55cd0d
2025-01-06 16:33:35 -08:00
Sunny Goyal ad61173ca2 Converting DesktopVisibilityController to a singleton
This avoids a persistant connection to TouchInteractionService from WMProxy,
which keeps the service alive all the time

Bug: 384896306
Test: Presubmit
Flag: EXEMPT bugfix
Change-Id: Id6fe59471c8c3f9874514f71126631f217ab610c
2024-12-30 12:54:19 -08:00
Treehugger Robot ed7a726091 Merge "Removing state from TISBinder" into main 2024-12-19 18:53:35 -08:00
Sunny Goyal 64dcfcf0c7 Removing state from TISBinder
Making OverviewComponentObserver a singleton

Bug: 384896306
Bug: 337863494
Test: Presubmit
Flag: EXEMPT bugfix
Change-Id: Ic7805ee4f4eef25098ddec4025062135d03c1611
2024-12-19 13:05:42 -08:00
Jagrut Desai 636aba5acb Merge "Don't recreate taskbar in Overview" into main 2024-12-19 13:00:03 -08:00
Jagrut Desai 2f1c1e10de Don't recreate taskbar in Overview
This cl includes
	- when going to overview from Launcher or Desktop Mode don't recreate taskbar and keep it a same variant as the context user was in.
        - user will still be able to pin/unpin taskbar in overview, but it will be recreated to the launcher context.
	- opening app from taskbar context is now aware of if taskbar is in desktop mode and opens app in Desktop Mode when user oepn any app.
        - This cl will not include the animation when taskbar variant is changing between launcher and desktop mode.

Solution
    - if desktop tasks are visible we will open any app from taskbar context into Desktop windowing mode after launching the DesktopTaskView manually. We will launch desktop task from recentview first and upon end of recent animation we will launch the app.

Bug: 343882478
Test: Manual
Flag: com.android.window.flags.enable_desktop_windowing_mode
Change-Id: Ib67e1e7150670f901c07c2df188cde81e7d725dc
2024-12-19 10:50:20 -08:00
Sunny Goyal ddded547bb Removing TisHelper dependency in taskbar
Taskbar should be able to access TouchInteractionService directly

Bug: 384896306
Test: Presubmit
Flag: EXEMPT bugfix
Change-Id: I2a32d3a7a2b2071645abff72c62635c6575a48a1
2024-12-18 15:02:44 -08:00
Wen-Chien Wang 2badfc7ebc pin-shortcut: Add pin shortcut to the context menu
This cl adds the pin shortcut option to the context menu, where
it works on Home launcher, hotseat, and pinned apps on the
taskbar.
Currently the option is a no-op.

Bug: 375648361
Test: Manual. Recording uploaded to buganizer
Flag: com.android.launcher3.enable_pinning_app_with_context_menu
Change-Id: I5d1284a6e909fd75f14e81c3ae713da3cdc01ce3
2024-12-13 22:49:52 +00:00
mpodolian 3e419ebbf1 Remove usage of the enableBubbleBarInPersistentTaskBar flag.
Remove and merge the usage of the enableBubbleBarInPersistentTaskBar
flag to the enableBubbleBar flag.

Bug: 383181643
Flag: com.android.wm.shell.enable_bubble_bar
Test: NONE - removed and merged flag usage.
Change-Id: I4f131e1ddf8367425b91c8fb597857ee222b75d8
2024-12-10 15:10:49 -08:00
minch 0933ba83d8 Introduce a function getFristTaskView()
- Introduce a function `getFirstTaskView()` in RecentsView to get the
  first TaskView inside RecentsView.
- Replace `getTaskViewAt(0)` with this newly introduced function.
- Let `RecentsView.isTaskInExpectedScrollPosition()` accept a TaskView
  instead of index of the TaskView. This can avoid using the index at
  the callsites of this function.
- Change `getTaskViews()` to be a public function, thus it can be
  used outside of the RecentsView.

Flag: EXEMPT as no functionality changes
Bug: 379942019
Test: Ensure the TaskViews required are correct in the following
      scrnarios:
      1. Swiping up from home screen to enter overview with empty or
         multiple tasks
      2. Swiping up from a fullscreen app to enter overview with
         one or multiple tasks
      3. Dimissing one or multiple tasks, exit and re-enter overview
         w/o newly opened tasks
      4. Remvoing all the tasks, re-enter overview w/o newly opened
         tasks
Change-Id: If63ad6dc9f5106be08d867090fdaf616117dcd82
2024-12-09 22:43:14 +00:00
Sukesh Ram 3cecfd077c Fix Taskbar 3 Button y position on launcher home pause/resume
When app launcher pauses (not on app entry, but whilst home), we want to move the taskbar buttons to 3-button mode to avoid overlap with any popup UI (usually in the form of bottom sheets). To avoid overriding existing app entry animations, this is only implemented for cases of launcher pause without a launcher stop.

Flag: EXEMPT bugfix
Bug: 373977342
Bug: 374058222
Test: Manual
Change-Id: I727173b0ae7f3f8e23b1da6755ceda6493b311cb
2024-11-28 00:27:42 +00:00
Johannes Gallmann 0610c625e0 Only register Launcher back-callback when ROLE_HOME is held.
When using a 3P Launcher, i.e. when the ROLE_HOME is not held by QuickstepLauncher, there should be no back callback registered with SystemUI.

Bug: 374882166
Flag: EXEMPT bugfix
Test: Manual, i.e. verified back-callback registration updates in SystemUI and also verified that back-to-home navigations in Nova Launcher are responsive.
Change-Id: I03187f80a4c3c893a6529f0a22613f6fdfe7b7b3
2024-11-22 13:49:00 +00:00
Marzia Favaro fadf3a891c Enable split screen from app handle also for non-desktop devices
Test: manual, open menu and go to split screen
Flag: com.android.window.flags.show_app_handle_large_screens
Bug: 377689543
Change-Id: Iaf8794abc1111c4ebce9254f6f5d1bada7f57dd5
2024-11-19 15:19:34 +00:00
Johannes Gallmann f47df1f60a Merge "Use FlingOnBackAnimationCallback for predictive back" into main 2024-11-11 08:29:47 +00:00
Tony Wickham 87455f28fc TaskbarManager now sets TaskbarUIController for RecentsWindowManager
- FallbackTaskbarUIController can take in a generic
  RecentsViewContainer parameter, i.e. RecentsActivity or
  RecentsWindowManager.
- When changing Overview targets to RecentsWindowManager, which is not
  an Activity, we still update the TaskbarUIController

Test: Switch between default Home activities with the flag on and off,
ensure Taskbar works as expected in each case (3P vs 1P launcher).
Flag: com.android.launcher3.enable_fallback_overview_in_window
Fixes: 368030750
Fixes: 365775636

Change-Id: Ife775e8c226f8c73ec9e1f97b4a6f2972f6c905f
2024-10-30 20:21:26 +00:00
Johannes Gallmann 600c1af779 Use FlingOnBackAnimationCallback for predictive back
Use FlingOnBackAnimationCallback to get automatically interpolated progress and out-of-the-box support for back gesture flings.

Bug: 362938401
Test: Manual, i.e. testing launcher predictive back cases (all apps, widget-picker)
Flag: com.android.window.flags.predictive_back_timestamp_api
Change-Id: I35806dbf005eb6fce97327d26c1e75bca60c2c77
2024-10-30 13:32:15 +00:00
Sukesh Ram 4781b26bf4 Merge "Revert "Fix Taskbar Y-Translation with Visible Bottom Sheet"" into main 2024-10-28 21:42:54 +00:00
Sukesh Ram 99c442b015 Revert "Fix Taskbar Y-Translation with Visible Bottom Sheet"
This reverts commit d82503fc42.

Reason for revert: Introduced crashes

Change-Id: I0956f746e25ccfe655169580fd802d33f99c0652
2024-10-28 17:26:47 +00:00
mpodolian 1d4e75c777 Refactored hotseat translation X logic
Made retrieval of the hotseat translation X easier to use.

Test: Manual. Set the navigation mode to 3-button. Moved the bubble bar
from one side to the other. Switched the navigation mode to gestures.
Moved the bubble bar from one side to the other again.
Bug: 373422448
Flag: EXEMPT refactoring

Change-Id: Ie69f1ecf178244008e5c752882c4b91a30928756
2024-10-17 09:46:47 -07:00
Mykola Podolian 79032facbf Merge "Created a helper method that calculates the hotseat icons shift X." into main 2024-10-16 00:12:44 +00:00
Sukesh Ram d82503fc42 Fix Taskbar Y-Translation with Visible Bottom Sheet
When bottom sheet is visible, such as in SUW or when app launcher pauses, the taskbar three buttons are translated upwards clashing with SUW UI.

Flag: EXEMPT bugfix
Bug: 358532768
Test: Manual
Change-Id: I0d18bda5cb7aeae894f5058df89cc413e34c00fc
2024-10-14 23:41:38 +00:00
mpodolian 51e2bb31ed Created a helper method that calculates the hotseat icons shift X.
Moved out logic that computes the translation X for the hotseat icons.

Fixes: 368379159
Test: Manual. Have the hotseat adjusted. Open any application from the
hotseat bar. Go back to home.
Flag: EXEMPT refactoring

Change-Id: If9dfa70be537f87b075bd865e7f9c5cd1ae78f00
2024-10-09 12:17:01 -07:00
Alina Zaidi 90f9700b4d Merge "[dev_option] Move DestopModeFlags out of android.windows.flags" into main 2024-10-08 20:24:06 +00:00
Alina Zaidi 8c0dc4c655 [dev_option] Move DestopModeFlags out of android.windows.flags
This is to maintain separation of non-generated files from generated flag values.

Test: Current tests pass
Flag: EXEMPT refactoring
Bug: 370777204
Change-Id: If9ca76cbf084da7a37241216f41319610adc52b0
2024-10-08 17:51:23 +00:00
Jagrut Desai d37759429b Merge "Fix Taskbar to Hotseat Animation for Non-Predective back apps" into main 2024-10-08 16:08:09 +00:00
Jagrut Desai 0a65c5bd72 Fix Taskbar to Hotseat Animation for Non-Predective back apps
- Refactored Taskbar animation duration to under one method and added logic to sync animation duration according to enableScalingRevealHomeAnimation.
- Change the interpolator for TaskbarLauncherStateController based on enableScalingRevealHomeAnimation.

Test: Presubmit, Manual
Bug: 369378541
Flag: EXEMPT Bug Fix
Change-Id: I942829b475f91e9102801b758eb7ee0d27eee912
2024-10-07 17:01:00 -07:00