This will allow Hotseat to handle the touch during the transition.
Test: manually touch Hotseat in pinned/transient/3-button taskbar during
the transition to home, ensure Hotseat handles it in all cases
Flag: EXEMPT bug fix
Fixes: 368419997
Change-Id: I3d998876ed4d8423bdb4fd48fa0d55f719da8d01
Tap down action in swipe up start zone may or may not be start of a
navigation gesture - for example, it may be start of a tab on an icon in
the task bar. If the user taps on the taskbar overflow button, closing
the KQS on tap down produces unintended behavior (KQS is closed on tap
down, and reopened on tap up). Additionally, this produces inconsistent
behavior in response to app icon taps depending on whether gesture
navigation is enabled or not.
Instead, close KQS as part of `hideOverlayWindow()`, which gets called
when a swipe gesture actually starts (note that KQS is added to the
overlay's drag layer).
Additionally, make sure that KeyboardQuickSwitchController state is
reset if KeyboardQuickSwitchView gets detached from UI due to the
taskbar overlay getting hidden (e.g. in response to home button).
Without this, in certain situations, KQS may get hidden with the
controller thinking the UI is still shown - in case the user releases
the Alt + Tab key combination in this state, the shortcut would end up
getting handled, and switch to the next task.
Bug: 368119679
Test: Press and hold Alt+Tab (while an app is open). After KQS is open,
Swipe up to transition to overflow, or home screen - KQS gets hidden.
Releasing Alt+Tab is no-op.
Test: Press and hold Alt+Tab (while an app is open) with three button
navigation enabled. Press home button. KQS gets hidden. Releasting
Alt+Tab is no-op.
Test: Press and hold Alt+Tab. After KQS is open, open an app from task
bar (either transient or persistent), or all apps list. KQS gets closed,
Releasing Alt+Tab is no-op.
Flag: EXEMPT bugfix
Change-Id: I8b561db3c6ec8a9c7de93e330faf8e3e4d3c8f4e
Enabled taskbar touch processing while animating to home. Also excluded
quick search bar from touch region, so it is not interactable during the
animation & removed corresponding TODO from TaskbarView.
Fixes: 368419997
Test: Manual. Enable gesture navigation. Open any application. Swipe up
to go to the launcher home screen. Click any taskbar icon - the
corresponding application will open. If clicking on Quick search,
launcher search will be opened. Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/g6UWhF9dQZq3QsFyH0EwtK
Perform the same test for buttons navigation mode. Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/gvuoSRnQfXQlejewBG1Ex8
Flag: EXEMPT bug fix
Change-Id: I07280bce70dd25d5ab78210302f08c0614309130
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
Update the hotseat and Qsb placement according to the 3 nav buttons bar.
Test: Manual.
Set navigation mode to 3 buttons.
On launcher home screen move the bubble bar from one side to another.
Observe that the Hotseat and Qsb moving together with the navigation
bar.
Once moved the bubble bar, expand the bubble bar and collapse it.
Observe how the Hotseat is stashing and un-stashing.
After bubble bar changes position hit the recent apps button, observe
the transition.
On launcher home screen start application with the hotseat icon and exit
opened application. Observe that flying icon comes back to the correct
position in the hotseat.
Video with the above scenarios:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/blTYrKopTyufOcRoPuVpYK
Bug: 346381754
Flag: com.android.wm.shell.enable_bubble_bar_in_persistent_task_bar
Change-Id: Ic8c6acdffbbb111cbe4f3fd6bc60195578d7035d
Once taskbar is unstashed, the user cannot return back to the overlay. We can
clear it here to set the expected state once the user goes home.
Fixes: 359096594
Test: open -1, launch app, go home
Flag: EXEMPT bugfix
Change-Id: I8059c2c45f10d15701ff2961480aef002d273a06
When navigation mode is set to 3 buttons, it is possible for user to
click on recent apps button, so for such scenario taskbar should be
immediately un-stashed
Test: Manual
Set 3 buttons navigation mode. Go to Launcher home. Expand bubble bar.
Press recent apps button. Press the home button. Observe hotseat is
visible. Video:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fX0gSp18Riw8mYYAw0wj8W
Bug: 367488218
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Id65fd9add720125a340294311d470f2be50d43f8
Added logic to stash the hotseat when on launcher home screen.
Bug: 280494203
Test: Manual:
http://recall/-/gx8ASgewUeUS3QYohfrd1J/fjfjUw296LRXUm9uYqXU4K
all tests in com.android.launcher3.taskbar
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: I67b298831eaed9c549a2fae7dc5a0d9fae51f7c4
- Updates pendingCommands to be a ConcurrentLinkedDeque and make the list safe across multiple threads.
- Introduces CommandStatus to clear only IDLE and COMPLETED commands.
- Adds CommandType enum to prevent adding an invalid command value into the queue and having an unexpected behavior.
- Log messages improved
Bug: 352046797
Bug: 351122926
Flag: EXEMPT bugfix.
Test: Manual.
Change-Id: I80705dca0be579e62cb9e2bd923808dd33c4d633
Currently, when we stage the first app in a split, the floatingTaskView has no contentDescription and is announced by screen readers as "unlabeled".
This CL allows FloatingTaskView to copy a contentDescription from the underlying task or ItemInfo when it is created.
Also changes SplitConfigurationOptions#itemInfo to a private field with a public getter for mockito compatibility.
Fixes: 319783133
Test: Confirmed with TalkBack on Overview, contextual and Intent splits
Flag: EXEMPT bugfix
Change-Id: Ia5a95e403bfe8623e17d2ceac9073ef15c7bb476
Taskbar does not know if the icon clicked will result in a translucent
activity. After this change, taskbar app stashing logic is now the same
between taskbar and home launches.
We should still stash after split screen, because in the case of
translucent activity the background becomes opaque.
Fixes: 354627538
Test: Pause app in hotseat, go to overview, launch paused app
note that taskbar does not go away
Flag: EXEMPT bugfix
Change-Id: I3d3ed7a6ca10090c7207b45d0b272dc4fc928e32
We can skip updating taskbar when home visibility changes due to
recents transition animation. For this specific case it was a
superfluous call anyways since taskbar unstashing would be
handled by TaskbarUnstashInputConsumer.
Fixes: 292108880
Bug: 345768019
Test: launch app, quickly tap on nav handle
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
Change-Id: I822071d31d066503c27f527ade46e28a154df249
Integrated the PersistentTaskbarStashController and the
TransientTaskbarStashController into the launcher code. Made changes to
the TaskbarInsetsController to set appropriate touchable zones. Updated
the TaskbarUIController to not start the overview transition on clicks
for the collapsed bubble bar.
Bug: 346391377
Fixes: 350065038
Fixes: 355664783
Flag: com.android.wm.shell.enable_bubble_bar_in_persistent_task_bar
Test: com.android.launcher3.taskbar package tests
persistent taskbar and transient taskbar manual testing:
- on launcher home screen expand bubble bar, switch between bubbles,
remove bubble via bubble menu, add bubble, remove bubble with the drug
gesture, add bubble, collapse bubble bar
- repeat previous test on launcher overview screen and inside any
application
- after last test drag expanded bubble view to the opposite side of the
screen
Change-Id: I50f2c510854c4895fdfc9bd453a261c2103286fd
- Moved majority of TaskContainer.thumbnailViewDeprecated usage to TaskContainer.snapshotView, so they'll cover the new TaskThumbnailView as well
- There are afew location left that will be handled as a follow-up
- Removed TaskThumbnailView's splitTranslation and use translation directly as it's the only translation we use
Bug: 336612373
Test: Ensure all Task CUJs still work without refacorting
Test: Ensure major Task CUJs work with refactoring
Flag: EXEMPT refactor
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: Ieb52236bc503ce0d0a511249978c1821a82d406e
The default value was not set. I decided to flip the variable to make
it more readable.
Bug: 345768019
Test: swipe up fast to go home, note no taskbar bg
swipe up slow to reveal taskhome, note taskbar bg shows immediately
Flag: com.android.launcher3.enable_scaling_reveal_home_animation
Change-Id: I7fb4bbdce45a14312e42abcf71f7f0643376ddc6
- Taskbar background will fade in based on
1. Velocity threshold
2. End target gesture destination
Bug: 298089923
Bug: 345768019
Test: swipe up fast to go home, note no taskbar bg
swipe up slow to reveal taskhome, note taskbar bg shows immediately
Flag: com.android.launcher3.enable_scaling_reveal_home_animation DISABLED
Change-Id: I2c16352e1c0c52a8afc49900a39b80383bacde62
- Most TaskView method will now loop through taskContainer instead of accessing the first/second
- Moved TaskThumbnailView, showWindowsView, and TaskOverlay to be part of TaskContainer. There are still some TaskOverlay access from TaskThumbnailViewDeprecated that should be remove as we start using TaskThumbnailView
Fix: 339787250
Test: Manual
Flag: EXEMPT refactor
Change-Id: Icfaa4f5eb50582faed01113465335b6d2899f781
We already reached the limit of 32 flags for an int. To be able to have
more, changing from int to long.
This is needed, as new flags have to be added.
Flag: NONE
Test: Manually running SysUI and Launcher
Test: Unit tests in CL
Bug: 335625543
Change-Id: Iec1d40218264c7c64c50fd09764aa07c0caa7787
- Renamed TaskIdAttributeContainer into TaskContainer so it's shorter
- Make mTaskContainers the source of truth for Task handling, removing mTask, mSecondaryTask, mTaskIdContainer and use mTaskContainers to derive all related information
- Remove mTasks/mSnapshotViewMap in DesktopTaskView and replace with mTaskContainers
- Mark methods that assumes a single Task as deprecated e.g. getTask, getItemInfo, getThumbnail to discourage further usage of such methods; "First" is added to the method name to make it explicit only first Task is considered; getTaskContainers is encouraged to access such information
Bug: 249371338
Test: Manual
Flag: None
Change-Id: Ieb15e0e8432913c89dc46c1011f0148095c665f8
There are two things that need to be changed for this to work:
1. Make the isInOverview condition check for any Overview UI (including
the split select state, modal, etc.)
2. Toggle Home All Apps directly, because firing the intent will cause
Launcher to pause and resume before the intent is handled. We
misinterpret the pause as a request to cancel split screen. Since
TaskbarManager has a reference to Launcher, we might as well call the
method directly.
Test: Manual
Fix: 319076403
Flag: N/A
Change-Id: Ib8899188f593a168a054a16717df4a95be098557
* End the recents animation and then relaunch as if
from scratch
* We explicitly ignore the anim for end of recents animation
since that will cause the taskbar to quickly show and stash
again, and we know in this case that we'll quickly be launching
right back into an app
Test: Tested w/ live tile + non live,
fullscreen + app pairs
Bug: 316485863
Change-Id: I6ae8cccc01401935bf96fba8a154216e6b1ad701
The revert was not supposed to be auto-merged.
This reverts commit 5a3bf93d82, reversing
changes made to 84f8002586.
Bug: 331384026
Change-Id: Ieb11a8544db90259aae856c4af805c37ce9e68cc
This reverts commit 176f186a6d.
Reason for revert: DroidMonitor: Potential culprit for http://b/331438065 - verifying through ABTD before revert submission. This is part of the standard investigation process, and does not mean your CL will be reverted.
Change-Id: Ie375277ad2f65199749f0211ab50037d4b37e664
Merged-In: Ie375277ad2f65199749f0211ab50037d4b37e664
Taskbar All Apps exists regardless of the default launcher. Thus, we can
toggle it on large screen devices. This CL ties registering the system
action to default launcher and taskbar's enablement.
Test: adb shell input keyevent 117
Test: AllAppsActionManagerTest
Flag: LEGACY ENABLE_ALL_APPS_SEARCH_IN_TASKBAR ENABLED
Fix: 317259709
Change-Id: I26f0ed9e921beac762f3f9e6aaceb1002ad4801a
(cherry picked from commit c113b277e6)
Updated KQS to allow launching tasks through OverviewCommandHelper to allow launching the overview task without it having focus.
Flag: LEGACY ENABLE_KEYBOARD_QUICK_SWITCH ENABLED
Fixes: 324888738
Fixes: 324904244
Test: used enter and tap to launch tasks in KQS
Change-Id: I6de38ceea22c362a52a420c8ba0165ba23e5c862
To fix the taskbar stash delay when launching an app, ag/18875100
sets the state so that the taskbar stashes immediately after
app is launched.
Since we cannot know if the app is translucent at that point,
we have to check after the animation is started so we can update the
launcher visibility state.
Bug: 314792981
Flag: ACONFIG ENABLE_HOME_TRANSITION_LISTENER TRUNKFOOD
Test: HomeObserverTest
Change-Id: Ifc3a6559d7a8c6fda4c08a0fc2d6791da46b38d6
* Now we log the original source of the first selected app
as soon as the user selects it (previously we only did when user
selected second app)
* We log the item info for the second app to determine second
surface.
* Added new metrics to log after user has started a split session
and ended a split session
* We log different cancellation reasons (cancel button,
home gesture, general other app interruptions, etc).
* One KI/Bug: When the second app is selected via taskbar in
overview, the container will say hotseat because we are using
Launcher's logger and not Taskbar's. Taskbar's logger manually
overwrites the container in TaskbarActivityContext, we may be
able to make something hacky that can allow us to overwrite, but
that'll have to be a separate change
Bug: 322551862
Test: Logged metrics manually with event and itemInfo
Change-Id: I177623fd00ce62acf2d4ee983b58561d8c946d59
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
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
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
[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
This change introduces a motion event flag to signal that the gesture
is being originated over the bubble bar (similar to the nav bar gesture flag). Downstream consumers use this flag to ignore the event in order
to allow the bubble bar to handle it.
The black screen in b/293348900 seemed to be related to the recents
shell transition closing the app that was in the foreground before
swiping on the bubble bar handle. Not sure why it ended up with a black
screen, but this change avoids starting the recents transition entirely.
Demo: http://recall/-/bJtug1HhvXkkeA4MQvIaiP/BSxLROoflr1i2yy0v6Y4G
Fixes: 294421126
Bug: 293348900
Test: Manual:
- Add bubble to the bubble bar
- Swipe up over the bubble bar
- Observe that the bubble bar expands
- Launch application
- Swipe up on the bubble bar handle
- Observe that the bubble bar expands
Change-Id: Iea15829de97edb6bfbfb7007388865230faaf736
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
This is the third of several patches implementing the App Pairs feature behind a flag.
This patch includes:
- AppPairIcon and associated XML. Actual icon asset is placeholder for now
- Ability to launch split pair on click
- Icon can be moved around, incl. to Taskbar
- App pair can be deleted by dragging to "Remove" drop zone
- Icon persists on Launcher reload
Change-Id: I88aec6fbc814be98f9ef048bbc5af889d0797970
Flag: ENABLE_APP_PAIRS (set to false)
Bug: 274835596
Test: Not included in this CL, but will follow
ItemInfo.getTargetComponent is nullable, so we can't always create a ComponentKey. Added a null-check and proper creation of ComponentKeys
Flag: not needed
Fixes: 286053950
Test: started and completed splitscreen selection from home, taskbar and overview
Change-Id: Ifa30f194ae064fab8aad79c5116f8c859dfd8cf1
This patch makes it so that the transient Taskbar cannot unstash when in 3P launcher.
Previously, the user was able to unstash Taskbar when in 3P launcher, causing a janky-looking UI (3P launchers may implement their own version of Taskbar on the home screen. This also caused problems with certain Taskbar commands like split screen, which provide an entry portal to Pixel-specific implementations.
Fixed by forcing the Taskbar to stay stashed when a 3P Launcher is displayed. The Taskbar is still usable inside of other non-launcher apps. This was done by using TopTaskTracker to check for ACTIVITY_TYPE_HOME or ACTIVITY_TYPE_RECENTS, and disabling Taskbar when these activities are running.
Fixes: 277963491
Test: Manual
Change-Id: Ifc0f3c07e3b76eb610f93205978fbc596bab6253
- The previous call from TaskbarLauncherStateController caused a
regression due to the inability for the code to distinguish
Normal -> Background -> Normal when tapping on the bar area
or from failing to launch a task, so both cases were triggering
the resumed state to cycle and start an animation. For now we can
only handle the task-launch fail case.
Bug: 268448123
Fixes: 281966662
Test: Quickswitch to an activity that finishes when resumed
Change-Id: Ie4692dd85252540ff47633978c0e6e4adbb1bdd0