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
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
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
> Merging come methods to BaseActivtiy
> Separating wallpaper theme implementation to an independent class
Bug: 393703968
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: I8cdb6d1520beff3f8226b62c5b7eafd48b2c674f
Remove use of PendingAnimation for task dismiss.
Fix: 389080698
Test: Manual.
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Ifdfd7d8ef78bba5d10ff6f157635430637805584
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
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
Flag the change to use the previous class.
Fix: 391107339
Test: Manual.
Flag: com.android.launcher3.enable_expressive_dismiss_task_motion
Change-Id: Icf139fc0d6744766da548f2137597b2b020863c1
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
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
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
RotationTouchHelper is a singleton and can manage its lifecycle statically
Bug: 386288280
Test: Presubmit
Flag: EXEMPT refactor
Change-Id: I3e3105ac982ec716d5e2ee10f459d3e1cf55cd0d
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
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
Taskbar should be able to access TouchInteractionService directly
Bug: 384896306
Test: Presubmit
Flag: EXEMPT bugfix
Change-Id: I2a32d3a7a2b2071645abff72c62635c6575a48a1
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
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
- 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
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
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
Test: manual, open menu and go to split screen
Flag: com.android.window.flags.show_app_handle_large_screens
Bug: 377689543
Change-Id: Iaf8794abc1111c4ebce9254f6f5d1bada7f57dd5
- 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
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
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
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
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
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
- 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