Added a method to the device profile to calculate the vertical center of
the hotseat icons. Simplified the logic for positioning the bubble bar.
Test: TransientBubbleStashControllerTest
Test: PersistentBubbleStashControllerTest
Test: Visual. Go to home page, check that bubble bar is vertically
center aligned with the hotseat
Bug: 345491493
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I52f1b94de79f6c912f43a88fcc5c884e20e56310
* changes:
Set task properties to prevent the task being null. This behaviour is expected by existing callers and was likely broken by ag/28151977
TaskRepository performance improvement
This CL improves Overview's performance by preventing multiple thumbnail and icon fetches for visible tasks. It introduces manual cancellation and removal of tasks that are no longer visible to prevent fetching and listening to changes in such tasks.
- Renamed 'augmentedTasks' to 'tasks' and updated it to be a MutableStateFlow with a map of Task Id and Task.
- When a new task becomes visible, the task is added to a list of requests along with a Job that fetches the Thumbnail and Icon. Additionally, 'taskVisualChangesDelegated' is added and removed for that task per request.
- When a task becomes invisible, the Job is canceled to prevent fetching the Thumbnail and Icon. The thumbnail and icon are cleared from the list of tasks, and the listener from 'taskVisualChangesDelegated' is unregistered.
- The list of tasks is updated when the list of visible tasks changes and a new thumbnail or icon is updated. This list is also updated when a force fresh from getAllTaskData is requested.
Fix: 373361888
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Test: TasksRepositoryTest
Change-Id: Ifd9c54fdfcb85463c043c121fb829dec3e9faedc
When opening 5 instances of Chrome in Desktop Windowing, navigating back to Overview and trying to split a new Chrome instance from the Taskbar resulted in a crash.
This happened because SplitSelectStateController searches for the last active task of the app chosen to be in split. Then, it returns its taskId that is used in RecentsView to find the TaskView to be animated to split.
However, after the 5th Chrome instance in opened in Desktop Windowing, the last active taskId is no longer visible in Overview or Desktop Windowing. Then, RecentsView won't find any TaskView with that taskId and mSplitHiddenTaskView will be null. This will result in a crash because we have some if-else conditions assuming that is not null because of mSplitSelectStateController has a task to be dismissed during the split animation.
More info in the bug report.
Bug: 372400577
Flag: EXEMPT bugfix
Test: Manual. Steps in the bug report.
Test: Manual. Open 5 windows of Chrome in Desktop Windowing. Go Home. Open a Fullscreen App. Go Overview. Split a new Chrome instance from the Taskbar.
Change-Id: I0f3757e898b606b4e0a180f43c73f1e2d887e996
This CL didn't improve the performance metrics significantly enough to use Executors.MAIN. b/366077002#comment12
This reverts commit 7eae20bcb1.
Reason for revert: 366077002
Change-Id: Ic92b83a65aef7f8cd5c00110fb1ab7343d4b12b6
- Added comments to clarify pivot/drawBelowRecents is only needed if live tile isn't launching
- Otherwise TaskViewUtils.createRecentsWindowAnimator already take cares of the scrol offset and drawsBelowRecents.
Fix: 361744056
Test: manual
Flag: EXEMPT refactor
Change-Id: I10e7d72daaa13787a9fd19524f7f45c4b0d31642
The number of tasks to show should not be limited when KQS gets shown in
desktop windowing - instead of enforcing the limit on tasks shown in the
KQS view itself, trust the KeyboardQuickSwitchController to pass in
correctly sized list of tasks to show (KeyboardQuickSwitchController
does limit the task list size passed to the view).
Bug: 374329990
Test: Open 6+ tasks in fullscreen, and in desktop windowing. Verify that
the number of tasks shown in KQS is limited to 6 when shown from a
fullscreen app context, and not limited when shown when in desktop
windowing.
Flag: EXEMPT bugfix
Change-Id: I245d05239f2fc025ef40085aff4bece694e0f76c
When a bubble is created or updated we now animate the flyout view
as part of the bar animation.
Note that the flyout is not clickable yet, and that we're not yet
handling bubble notifications interrupting each other.
Flag: com.android.wm.shell.enable_bubble_bar
Bug: 277815200
Test: atest BubbleBarViewAnimatorTest
Test: atest BubbleBarFlyoutControllerTest
Test: manual
- verify flyout view is showing when creating bubble
- on home
- in app
- when bubble bar is empty
Change-Id: I315e46c89a4d20aaaa22972f0d71290a63481d9d
- If the TIS instance is destroyed, then we should remove any queued
user-unlocked runnables to ensure that they do not attempt to run
again
Flag: EXEMPT bugfix
Bug: 373671447
Test: atest NexusLauncherTests
Change-Id: I8ca3cdfa6f849bce5d347f14038e1ebd6bc6ff06
It depends on VibratorWrapper, ContextualSearchStateManager and LockedUserState
which needs to be migrated first
Bug: 373557167
Test: Manual (will merge automated tests once all culprits are resolved)
Flag: EXEMPT dagger
Change-Id: Ib078b89a541c179d105ddf8706edc94bcaf6066b
This CL handles both long-press and right-click events anywhere on
pinned taskbar and opens `TaskbarDividerPopupView` correctly
positioning it above the event coordinates.
Bug: 297325541
Flag: com.android.launcher3.show_taskbar_pinning_popup_from_anywhere
Test: manual for now, flip the flag, long-click or right-click
on empty space on the pinned taskbar
Change-Id: I1849db14f65bf9478ed9f4fd39f95d08987baf8d
Multiple singletons depend on Plugin which can cause deadlock
if PluginManager is initialized on main thread
Test: presubmit
Bug: 361850561
Bug: 373557167
Flag: EXEMPT dagger
Change-Id: I79f17ac6b78a2ce60df2d27a6e794b9e4eba1b51
This cl simply delays the taskbar icon alignment animation and stashing animation by duration of dream animation and plays it off screen with 0 duration.
Test: Manual, Presubmit
Bug: 333989177
Flag: EXEMPT bugfix
Change-Id: I35d26b0cf895f9990fcfd73ceebc15b0f9886476
SettingsChangeLogger depends on DisplayController which needs to be migrated
first. Otherwise it introduces a deadlock when initializing DisplayController
in constructor
Bug: 373557167
Test: Manual (will merge automated tests once all culprits are resolved)
Flag: EXEMPT dagger
Change-Id: I2386812693e470bcee1a64d5cec49c03fd36f230
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
After enabling large tile for desktop windowing, some animations and translations for dismiss were changed. The changes involved to translate the tasks when a large tile (i.e., focused task and desktop window) are dismissed and no other focusedTaskView is selected to replace the previous one. However, when we split a focused task, we don't replace it by another task in the grid. And also triggers the createTaskDismissAnimation, entering the same condition described before (focused task dismissed, nextFocusedTaskView = null), causing the weird and broken animation for split.
To fix this, we skip this animation when is dismissing a task for split selection.
Fix: 374104009
Flag: com.android.launcher3.enable_large_desktop_windowing_tile
Test: Manual. With flag enabled and multiple apps opened in Overview, split the focused task.
Change-Id: Ib79ad5abc0660a0b654f23b22b90f9889c6f7806
Flag: com.android.launcher3.enable_fallback_overview_in_window
Bug: 366022874
Test: Attempted gesture from home and launched app
Change-Id: I553ad200b291f7765bbb026c314ea6652a3b5542
A fix (see http://go/b320307512_problems) was put in to change layers
when swiping from Desktop Windowing to Overview, so that the blur effect
didn't apply to the live tile. The result of this change was that the
tasks now sat on top of Overview and if you didn't launch the task but
went back to Overview, then you could interact with them and do things
like resize the task and get into a very broken state.
This fix simply flips the layer ordering back after the animation
completes to ensure Overview sits on top.
Fix: 373400009
Flag: NONE bugfix
Test: Swipe from Desktop to Overview. Swipe down from Overview to launch
the live tile, but then swipe back to Overview i.e. don't launch
Desktop. Try to resize the DW window.
Change-Id: I80c8d72f76a8393eb8bd963df81723defd85ed97