Added logic to adjust the drop target to account for changes in the
hotseat position when accommodating the bubble bar.
Fixes: 382348730
Test: all tests in package src.com.android.launcher3.celllayout
Test: Manual. Ensure bubbles are present, and the hotseat width is
adjusted. Long-press any icon in the hotseat, begin dragging it over
other hotseat icons, and observe that the drop target is drawn
appropriately.
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Ice961f40ace03077ab8c9312a93eda1a16d7da34
Resolved an issue where the X translation for hotseat icons was computed
using the view index in the parent, leading to misaligned adjustments.
The logic has been updated to calculate translation based on the cell X
index, ensuring more accurate positioning and alignment.
Fixes: 380794616
Test: Manual. Have a bubble in landscape orientation. Drag any item from
the hotseat to the workspace, then rotate the device.
Flag: com.android.wm.shell.enable_bubble_bar
Change-Id: Ibd0709e6c58ad9c1470de469cfced8bbe66fd30b
Change logic to updated bubble bar alignment with the QSB vertical
center for 3 buttons navigation mode.
Fixes: 378400160
Flag: com.android.wm.shell.enable_bubble_bar
Test: PersistentBubbleStashControllerTest
Test: TransientBubbleStashControllerTest
Test: Manual. Set the buttons navigation mode and observe that the
bubble bar is centered with the QSB when the QSB is not aligned with the
hotseat. Then, switch to gestures navigation mode and observe that the
bubble bar is centered with the hotseat when the QSB is not aligned with
the hotseat.
Change-Id: I57a32ac5bde7a7055b54a89727429424e5c0ca4f
When rotating the device, a few issues were causing improper hotseat
layout:
- BubbleBarController receives an initial configuration before the UI
controller is set.
- The updated device profile, including the correct `isQsbInline` value,
arrives after all controllers are recreated, and the UI controller is
not informed of the device profile update.
Added logic to carry over the bubble bar bubble visibility state to the
new UI controller. Included a call to notify the UI controller of the
device profile update.
Fixes: 378400160
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Have a Tangor device in landscape orientation with the
bubble bar. Rotate the device - observe hotseat and QSB are reduced in
width. Dismiss the bubble bar - observe hotseat and QSB extends to the
full width.
video: http://recall/-/gx8ASgewUeUS3QYohfrd1J/e8e1ZFRQlbHQtUlCXVJbFJ
Change-Id: If180b01c8cdb329cd45d084af63a986c08cf65a1
Added an early return logic. So only icon translation provider is being
set to the hotseat icons.
Fixes: 375240372
Fixes: 377402904
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Added first bubble on unfolded Felix, quick search bar
remained the same size. Fold the device, hotseat icons do not overlap.
Change-Id: I292e565a79cfe121c2f8c617440d8b40c09bef82
Removed early return condition from the Hotseat view
Flag: com.android.wm.shell.enable_bubble_bar
Test: Manual. Unfold foldable device and have bubble. Fold the device.
Hotseat icons are not overlapped.
Fixes: 375240372
Change-Id: I576c893896c98d2a0dcb25f64396f4e9fe62f61c
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
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
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
Hotseat supports adjusting its layout to make room for bubbles when
needed. There are 2 events that trigger this:
1. When Hotseat's layout is reset, it checks for whether bubbles
are showing.
2. When Bubble Bar visibility changes it notifies hotseat so that
it can update itself.
Folding the device is recreated triggers both hotseat layout reset
and recreation of taskbar, but the order in which these happen is not
guaranteed. Sometimes hotseat checks for the status of bubble bar
which may be visible if taskbar hasn't been recreated yet.
This change makes sure that hotseat updates itself after taskbar is
recreated and the ui controller is set, so that it cleans up any
adjustments it may have if bubbles are not visible.
This change also updates the way QSB adjusts itself for bubbles.
Previously it always animated from the same start value to a target
value. Now the animation starts from its current width to the target,
so that if the current width is already equal to the target width,
there is no visible change.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 349430356
Test: manual
- unfold the device
- create bubbles
- observe hotseat adjusts itself for the bubble bar
- fold the device
- observe bubble bar is gone and hotseat shows correctly
Test: manual
- start a youtube video in full screen
- swipe from the edge of the screen to show the gesture nav
- swipe on the gesture nav to go home
- observe that the QSB does not animate
Change-Id: Ia0267ec518d6af9c3c3b68f17bb20ea67a49e5fd
The current behavior that adjusts hotseat icons to make room for the
bubble bar uses the index of the hotseat icon to calculate translation x.
The problem is that if icons are reordered, the index of the icon may be
different than the actual cell number it belongs to.
This change updates the logic to use the cell rather than the index.
Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 345686425
Test: manual - on tablet in portrait
- show bubble bar
- observe hotseat icons adjust
- drag an icon from the home screen into hotseat
- observe icons are shown correctly
- rotate the device to landscape and back to portrait
Change-Id: I8628892234d1b31205b93ba3089c6dbf2820ea04
This could be caused by landscape layout not receiving inset changes
Adding logs for hotseat layout info as well
Bug: 335141365
Flag: EXEMPT bugfix
Test: N/A
Change-Id: I987f8622907a10fac5375ddddac3db2c5eba41c1
This will make it easier to test CellLayout, also we should avoid
circular dependencies as much as poisble.
This also allows the CellLayout to be created in other containers
that are not workspace.
Bug: 318417510
Test: creating HotseatReorderUnitTest in follow up cl
Test: TaplReorderWidgets
Test: ReorderAlgorithmUnitTest
Flag: NA
Change-Id: Ic45029a244cb11f8d6775c50b90af9c56f01eaa3
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
- Also used hotseatQsbHeight for AllApps QSB height as they have to match to transform between each other
Fix: 232907846
Test: manual on different tablets
Test: atest DeviceProfileTest
Change-Id: I001d0e129db2a5de6c8ace4c3302381110da03f1
This changes how the hotseat height is calculated and by consequence how spaces are distributed in the workspace as well. This is the first of a series of changes that will improve and streamline workspace calculations.
Bug: 228998463
Fix: 234023782
Fix: 230191631
Fix: 232914299
Fix: 236238226
Test: manual, HSV and comparing to mocks
Change-Id: If021e8ba2c7c24c0bf9f27a1aa7aa946792ed04f
- Added a QSB to taskbar to be animated between inline QSB and taskbar
- Passed endValue of taskbar animator to TaskbarController to have aniamtion variation between home -> app and app -> home
- Tuned duartion of taskbar animation and also stagger animation when taskbar is present
- Disabled scaling down of taskbar and inline QSB for home -> app
- Disabled stagger animation of taskbar and inline QSB for app -> home
Bug: 220733187
Test: manual
Change-Id: I4aac0bbc343b992a0472298595770e2bf2a55990
Revert submission 17983445-hotseat_span
Reason for revert: b/231283023
Reverted Changes:
Ice4e37929:Fix hotseat width to span a number of columns
I9ed508490:Fix hotseat width to span a number of columns
Change-Id: Iabf67c5efd8155131a0c8a88192ddd671a43747b
These are review comments followup from ag/17399997
Bug: b/218187058
Test: manually test thet Launcher3 features work correctly
Change-Id: I9865a37c1ed663370dc28e7678994f3d961e3cd1
Hotseat size was going behind workspace unnecessarily, causing some issues and also had the wrong hotseat height which was cutting the icons in folders.
Fixes: 224713923
Fixes: 221101290
Test: manual
Change-Id: I2646abc4a6aaa5bf2ea85e55e2f3618f8d7efd9b
When resetting the hotseat layout, the size of cells also can be changed based on changes in DeviceProfile. In this case, the border size changes when rotating the device.
Fixes 216071526
Test: manual and HSV
Change-Id: Idf7b7972e7be347a991cad1cb8ee8cf95cbc4a87
Before this change they were ignored by onMeasure(), so that the QSB
couldn't rely on margins for its positioning.
Bug: 217477426
Test: manual
Change-Id: Ifecd3d40ea584273b7857d19b25a90dbafe1c656
(cherry picked from commit 410c75a442)
When running on tablets in landscape, the QSB should inline with the hotseat icons. This does that and fixes small bugs that didn't account for the new hotseatBorderSpace.
Bug: 210118169
Test: atest Launcher3Tests:DeviceProfileTest
Test: visual, using HSV and Window
Change-Id: I5a89c5449bf59fde736618151eceaacca443ef67
- Animate in onStateTransitionStart
- Commit in onStateTransitionComplete
Fixes: 193938970
Fixes: 200765631
Fixes: 201644899
Test: Go home from overview; Go to all apps from home; Go to overview from home
Change-Id: I393022c86f09806fea29fb5bc7191304b473f231
Fix: 200812841
Fix: 201306660
Test: Long press around QSB, hotseat, inbetween hotseat icons works
Test: Can scroll pages on top of hotseat and QSB
Test: Drag and drop still works in hotseat
Test: Can still press and long press on QSB
Change-Id: I3f6807be08ff2c55644e3bf8f6d05a3954a8ede6
> Calculating the hotseat padding statically
> Animating taskbar views individually when animating to home
instead of a layout animation
> Moving all navbar buttons to a separate layout/controller and independent
of Launcher
> Fixing RTL layout for taskbar and nav bar
Bug: 187353581
Test: Manual
Change-Id: If21696f38beee328f553e467394776a8e8ed4c3e
> Inflating taskbar views with a non-launcher window context
> Removing separate taskbar view in Launcher
> Handling taskbar icon clicks directly instead of going via launcher
> Fixing some relayouts during show/hide animation
Bug: 187353581
Test: Manual
Change-Id: Ia7d44acbb770bf0345922234b3daa5cc040a5843
> Simulating the windo wmanager API to get available device
profiles until final API
> When a device has multiple internal displays, and with both
tablet and phone possibilities, it uses a split workspace layout
Bug: 186160341
Bug: 175782275
Test: Manual
Change-Id: Ieff2329acac7cdd6b9abe6f96cd459cd45bd0efe
- Offset taskbar to be halfway between QSB and bottom of the screen.
- Add taskbar translationY state property to animate when going
between launcher and an app.
- Draw the taskbar background in TaskbarContainerView instead of
TaskbarView so it stays pinned to the bottom as TaskbarView
translates up. If we want to have a background behind the
taskbar on home, this should move back to TaskbarView so that
the drawing can be shared by mTaskbarViewOnHome.
Test: visually on home screen, translates when entering and
exiting an app
Bug: 182981881
Bug: 171917176
Change-Id: I44f8b2c770074f7f015dcccbc2befd3453811193
Split InvariantDeviceProfile#numHotseatIcons into two variables:
numDatabaseHotseatIcons and numShownHotseatIcons. These are generally
the same, but different DisplayOptions within the same GridOption
can choose to show different numbers of hotseat icons while sharing
the same database.
numDatabaseHotseatIcons is used for all reading/writing/migrating
purposes, while numShownHotseatIcons determines how many Hotseat
icons to show in the UI.
Test: Existing tests pass, added two new migration tests
Bug: 184789479
Bug: 171917176
Change-Id: I54583504f61a47a4444b6a637ebb7e3ab31528b7
Since all-apps and homescreen do not share any QSB, we can
change the alpha for hotseat QSB directly
Bug: 184122599
Test: Manual
Change-Id: Ifa610fe75ad22cfe8a7d816ed2b48e2b9411c4c1
Change getFirstMatchForAppClose to check all the visible
pages not just the page with the currentPage index.
Test: manual
Bug: 183606840
Change-Id: If5280797f821f7d10f82376aeef5e8eb4d352e2a
Instead of keeping the Taskbar window showing above the home screen,
we now integrate a copy of TaskbarView directly into Launcher's view
hierarchy. Most TaskbarController calls apply to both TaskbarViews
(mTaskbarViewInApp and mTaskbarViewOnHome), except for calls related
to Hotseat, which only apply to mTasbkarViewInApp given the real
Hotseat will be showing with mTaskbarViewOnHome.
More cleanup will follow this change.
Test: All taskbar interactions (e.g. drag and drop) continue to work
Bug: 182512211
Bug: 171917176
Change-Id: I0f0b124f652daa85f866e1df8f9e2981540331a0
This was done in ag/13841736 but not included in ag/13821586
Test: QSB in correct position when taskbar present and not present
Bug: 171917176
Change-Id: I6aa220559afebe8710b5f01cdec9c2baa9f4c926
Removing sections in all-apps during transition and treating
it as a single unit
Bug: 175137718
Test: Manual
Change-Id: I55a501d80b5903f1a9d92a26b3784784fd9e50fd
- Seamlessly show real hotseat and hide taskbar hotseat, while
keeping rest of taskbar visible
- Update MultiValueAlpha to allow for taking max alpha instead
of blending, and use that for Hotseat
- Fix folder open bounds on home screen when taskbar is present
Test: Open folder from taskbar on home, can drag out items
Bug: 182079330
Bug: 171917176
Change-Id: I7c1983e3219b1341cf233260f0ccac9051c4dc14
When you long press on the taskbar hotseat item, the following happens:
- We start a system drag and drop with an invisible drag shadow
- We create a new DragOptions with the simulatedDndStartPoint set to the
drag down position, and tell Launcher to use that for the next drag
- We perform a long click on the equivalent Hotseat item in Launcher
- We pass the drag events of that operation to Launcher's DragController
This allows Launcher to handle the entire drag operation, including the
pre-drag (with popup), and taskbar already hides when the drag starts.
Test: Long press items in taskbar hotseat, able to drag them to workspace
Bug: 179886115
Bug: 171917176
Change-Id: I576b80cb1bd0225cdc91cf7689fdee0481265109
Remove hotseat space from workspace in DeviceProfile if
taskbar is present, and instantly swap between taskbar and
hotseat when entering SpringLoadedMode. To allow for an exact
handoff, we also scale up the TaskbarView such that its icons
match the hotseat icon size when on the home screen.
Note that this CL only supports dragging to the taskbar, not
out of it (which still triggers system drag and drop instead).
Test: In RTL and LTR, drag a workspace item and ensure hotseat
seamlessly swaps with the taskbar hotseat and allows drops.
Bug: 179886115
Bug: 171917176
Change-Id: Id6462075b9b0b66b06d51a78c9c0b3e11e83e84d