Commit Graph

114 Commits

Author SHA1 Message Date
Jon Miranda
8bdb222a18 Move qsb according to spec.
Bug: 175329686
Test: visual test
      checked 5x5 and confirmed no visual change
      checked 4x5 and confirmed visual change
      - tested various display sizes to ensure no overlapping is caused

Change-Id: I95a80b484516f634fa13347534810c7a51cecc8d
Merged-In: I95a80b484516f634fa13347534810c7a51cecc8d
2021-06-24 18:51:46 +00:00
Sunny Goyal
d5500548dc Revert^2 "Moving taskbar lifecycle to TouchInteractionService"
430465a3d5
Bug: 187353581
Change-Id: I7b2280d16adfafd3e85ffc1d22e32d0c00d12b67
2021-05-21 07:05:02 +00:00
Kholoud Mohamed
430465a3d5 Revert "Moving taskbar lifecycle to TouchInteractionService"
This reverts commit e215fb730b.

Reason for revert: DroidMonitor-triggered revert due to breakage https://android-build.googleplex.com/builds/tests/view?invocationId=I13700009003387451&testResultId=TR89423459137251402, bug https://buganizer.corp.google.com/issues/188755902

Bug: 188755902
Change-Id: I4650136975b60f311499ee6ff5b27ab9a32d23d6
2021-05-20 13:32:05 +01:00
Sunny Goyal
e215fb730b Moving taskbar lifecycle to TouchInteractionService
> 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
2021-05-17 21:47:08 -07:00
Sunny Goyal
19ff728b92 Adding support for determining split layout for launcher.
> 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
2021-05-03 14:48:28 -07:00
Tony Wickham
81f8175ab1 Move taskbar to be closer to QSB
- 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
2021-04-13 10:10:54 -07:00
Tony Wickham
b87f3cdc1c Add support for having more hotseat icons in the DB than we show
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
2021-04-12 16:08:15 -07:00
Sunny Goyal
0b5b8d4969 Fixing all-apps appearing as blank
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
2021-03-31 14:59:54 -07:00
Andras Kloczl
35d23a62f0 Fix app close animation for two panel home
Change getFirstMatchForAppClose to check all the visible
pages not just the page with the currentPage index.

Test: manual
Bug: 183606840
Change-Id: If5280797f821f7d10f82376aeef5e8eb4d352e2a
2021-03-31 00:09:07 +02:00
Tony Wickham
9ce3b25ef6 Add TaskbarView as a child of Hotseat
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
2021-03-22 15:26:01 -07:00
Tony Wickham
4076cae87f Merge "Use taskbarSize as bottom inset when taskbar is present." into sc-dev 2021-03-19 18:15:52 +00:00
Tony Wickham
72c15ef913 Fix QSB and Hotseat positions when ENABLE_DEVICE_SEARCH is enabled
Test: visual
Change-Id: I755de7552e2bb3f927f6be59c07f910ddfbc4650
2021-03-18 18:06:47 -07:00
Tony Wickham
b31d8fc379 Use taskbarSize as bottom inset when taskbar is present.
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
2021-03-18 13:57:20 -07:00
Sunny Goyal
c373e1c642 Adding an optional QSB in hotseat
Removing sections in all-apps during transition and treating
it as a single unit

Bug: 175137718
Test: Manual
Change-Id: I55a501d80b5903f1a9d92a26b3784784fd9e50fd
2021-03-17 12:21:44 -07:00
Tony Wickham
ae72b46b2c Replace taskbar hotseat with real hotseat when folder is open
- 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
2021-03-12 11:05:43 -08:00
Tony Wickham
39938cbc94 Initiate Hotseat drag from long pressing corresponding Taskbar item
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
2021-03-06 03:39:54 +00:00
Tony Wickham
a29a046d83 Align real hotseat with taskbar hotseat during drag and drop
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
2021-03-03 11:16:42 -08:00
Samuel Fufa
2ea01e4871 Separate QSB from on device search
Bug: 175125073
[Preview attached to BR]

Change-Id: If967d95e32b58263ede5eb8a3c1b773cef789f28
2020-12-09 12:46:30 -06:00
Schneider Victor-tulias
3cf264f498 Prevent hotseat updates if it is visible to the user.
Test: manual

Fixes: 168653219

Changing app icons under the user's finger could be disruptive. Added a checks for whether the hotseatand all apps predictions are visible and callbacks to update them when they become hidden.

Change-Id: Ib9e6e904e9f662ecfaeea6a2fe21d1d81ba39b96
2020-10-06 11:05:02 -04:00
Hyunyoung Song
95786e077d Good riddance UserEventDispatcher
Bug: 165675920
Bug: 161381246

TL;DR;;
- nano -> lite proto
- add all the missing logs to WW
- pin item related logging fix
- Removed logging for assistant

sgrep "com.android.launcher3.userevent.nano." | cut -f1 -d: | xargs sed -i -e 's/userevent\.nano\./userevent\./g'

Change-Id: Ie2a49fdd891cacbd7ef40a1dc9e41ff0574c7517
2020-09-27 13:41:49 -07:00
Sunny Goyal
786940ae93 Allowing Launcher to draw behind cutouts
> Launcher uses realSize, availableSize and insets to calculate
various layout values. Without drawing behind cutouts, these values
are not consistent (insets + availableSize != realSize) leading to
jumps in layouts.
> Removing fake black bars in low-ram devices to avoid inconsistent
insets.
> Fixing various layouts not taking lert/right insets into account.

Bug: 156268804
Change-Id: I8441db8a468b08a65b57b932050b5b4b37313966
2020-06-05 00:25:58 -07:00
Adam Cohen
b66675a36d Delegate horizontal scrolls from the Hotseat to the Workspace
=> Before this change, scrolling horizontally on the the hotseat area was a no-op
=> This is a mild usability issue (or arguably WAI) for the default grid, but for larger grids it feels really broken as you have to reach very high just to scroll to another page.

issue 156507399

Test: manual. Also verified that swipe up still works and goes through the same code path.

Change-Id: I760aca473dd36bc8cfb906cb58e897e2ab7fd1d9
2020-05-15 16:57:37 -07:00
Sunny Goyal
e396abf502 Moving model data structures to a separate file
Change-Id: I77ad7a5219e72d2e0d6c1803de2ac3ed6a65a8f7
2020-04-09 13:20:39 -07:00
Sunny Goyal
c4d3201538 Removing support for fake landscape
Bug: 111068105
Change-Id: If31d2f700ddee1d21541735de3a8006ee2a53c5c
2020-04-03 17:11:35 -07:00
Samuel Fufa
a579ddc9c8 Refactor logging to capture Target hierarchy
Instead of creating a fixed number of targets, we now pass an ArrayList
of targets to. Any class implementing
LogContainerProviders#fillInLogContainerData can setup it's own target
and add it to the ArrayList, It can also pass the ArrayList to other
LogContainerProvider to capture full Target hierarchy.

Bug: 147305863
Change-Id: I0063c692120fb9e1cff2d8902c5da972d0623418
2020-03-06 13:49:19 -08:00
Samuel Fufa
aed008de90 Hybrid hotseat user edu
Starts by showing a notification, which will open a dialog
with options for users to keep their hotseat layout or fully
migrate to hybrid hotseat

Bug:142753423
Test:Manual
Change-Id: I178de612837ec8551f6776fa7c6fb6111bc7431d
2020-01-07 12:02:26 -08:00
Samuel Fufa
eacaf8aee6 Enable touches on hotseat area
Test: Manual
Bug:130294785
Change-Id: Ib3ace6633aae1ad2acc71520afd7bfdc96ffb285
2019-09-19 11:22:27 -07:00
Sunny Goyal
ae6e318711 Initial changes to creating a fake landscape Launcher UI
Workspace and hotseat are drawn in rotated UI giving the impression that the
device is in Portrait, even though it is in landscape

Bug: 131360075
Change-Id: I29c4068af25fd4dcf7039b9a45886e864a137977
2019-05-02 10:59:28 -07:00
Sunny Goyal
d158097cfd Do a full touch dispach when proxying touch
> Workspace can no longer be scrolled when swipin on hotseat

Bug: 130027168
Change-Id: Ie4621e5b7de8d7248227b25fb065249d0c252090
2019-04-09 11:53:41 -07:00
Sunny Goyal
ab770a10b9 Making CellLayout inflatable without LauncherActivtiy
This will allow creating cellLayout with a different device profile
or a different activtiy which can be used when displaying multiple
activities in multi-display or generating a preview for changing
display properties.

Change-Id: I386731d95e33c48bdef270ce9c0d3e9feefb6262
2018-11-20 17:11:13 -08:00
Sunny Goyal
876e462ffa Removing separate hotseat widget, instead using a QSB acroll all UI.
The QSB is responsible for updating its UI according to various states.

Bug: 109828640
Change-Id: Ic8cbf3d404d5870de0f6b8fe25a332b8d21bae20
2018-11-05 13:36:41 -08:00
Hyunyoung Song
fc00747909 Add StatsLog*Manager for logging.
Bug: 113043444

Verification: (19) is our event classifier number
11-05 11:24:28.188   932   994 I statsd  : { 1541445868000000000 766293363001 (19)0x10000->1[I] 0x20000->0[I] 0x30000->0[I] 0x40000->[S] 0x50000->1[I]  }

Change-Id: I75403837f9fa8e51efa012fb708bce7efc9c4488
2018-11-05 11:41:38 -08:00
Sunny Goyal
36b54228fc Retiring some feature flags
Change-Id: I80a00ecaec0785ce2ba6a5f14a54c8a76f555d43
2018-07-10 13:52:17 -07:00
Tony Wickham
1eeffbee01 Add padding between hotseat and insets in multiwindow landscape
Right now there's almost no room between the hotseat icons and the
nav  bar in this mode, and it looks kind of bad. It also causes
b/109946631 which is fixed by this change.

Also fix placement of popup in RTL landscape (was incorrectly inset)

Bug: 109946631
Change-Id: I324485da0048b907776b16b719b631c5314e5696
2018-06-13 12:37:47 -07:00
Sunny Goyal
e598699dc5 Remove custom focus logic
Using the system logic for focus handling so that partially visible contents are
properly handled, eg in overview only hotseat is visible
This does changes the focus logic on workspace when both icons and widgets or different sizes
are present, we may consider reviving (parts of) this logic in the future

Bug: 80189843
Change-Id: I874e284e0a62b579c24d36db9b74da3de7a7e367
2018-05-23 10:54:18 -07:00
Sunny Goyal
11e9649894 Do not clear grid accupancy if nothing changes
Hotseat is calling setGridSize on every layout which was clearing gridOccupancy, marking the cells as empty

Bug: 73867732
Change-Id: Ie07f5786f2e5bfe2340fd0b8723964f651c929d4
2018-03-26 16:19:41 -07:00
Sunny Goyal
81b4c7bb3c Adding a custom view for DragHandle
> Separating page indicator and drag handle
> Page indicator always draws irrespactive of oriantation
> Drag handle is responsible for accessibility interactions
> Adding assissibility actions for DragHandle

Bug: 72500733
Change-Id: I9030337456964af1bdf77f1c01956452321f9229
2018-03-26 15:52:03 -07:00
Sunny Goyal
7c7be8c20a Simplifying options popup and overview handling
> Removing support for page drag-n-drop from pagedView
> Removing Overview UI from Launcher3 without quickstep and using options popup instead
> Removing touch handlers from CellLayouts and showing options popup based on workspace long press
> Excluding touch outside inset when showing the popup

Bug: 74136505
Change-Id: I34c2a7ff58452db26f5d1a85d554be40fc75f2b8
2018-03-13 12:57:32 -07:00
Sunny Goyal
f8d56fc8a1 Initial changes for handling configuration changes dynamically
Bug: 71709920
Change-Id: I88cf2229dea28d01c13a5a76d2290e91b07d095e
2018-01-31 15:20:30 -08:00
Sunny Goyal
7e2e67fd47 Adding isSeascape method to have a common place to orientation check
Change-Id: Ia61792b29ab0d1d74f76a8dfa53bbf968874dfaa
2018-01-26 13:47:32 -08:00
Sunny Goyal
12069e6cbf Removing some device profile dependencies in view contructors
Bug: 71709920
Change-Id: I13e33dceaeff71e3fb7bbb93f24be69c17d6da96
2018-01-16 14:17:47 -08:00
Sunny Goyal
07b6929cd9 Removing layout handling in DeviceProfile and moving it to
individual views

Bug: 71709920
Change-Id: I8300fa7a84b31898bdb135d774cca576d2928525
2018-01-10 15:13:25 -08:00
Sunny Goyal
228153d92a Updating landscape layout for launcher/quickstep
> Hotseat is tied to navbar (on left in seascape)
> Search box shows up in Overview (clicking it would crash for now)
> All-apps is no longer fullscreen in landscape
> Recents cards are appropriately scaled down
> Hotseat is visible in Overview

Bug: 70179916
Change-Id: I53149eaeac9557e8a01021b7e2d139f3d6ceef37
2018-01-08 13:53:44 -08:00
Sunny Goyal
e969c68c7e Removing horizontal bar from page indicator
> Removing the clickable bar from pageIndicator in portrait view
> Moving onClick logic to respective classes

Change-Id: I83a8df90d8c5442890bc09fdda17a82b9d134b8a
2017-12-05 16:57:48 -08:00
Sunny Goyal
f2dd4216c1 Removing extraction service and palette api dependency
Change-Id: I30ad1a1462a97b6bc03f8e386ae3058c7fe022e5
2017-09-29 10:40:08 -07:00
Hyunyoung Song
d315ff2bc2 Remove haptic on touch down
Bug: 65463659

Change-Id: I111d18a3d1dcd7877ad4aa5baaeca2e6810be332
2017-09-12 15:54:50 -07:00
Sunny Goyal
5606e07059 Removing long press support from page-indicator
Bug: 62445549
Bug: 38163974
Change-Id: Ic0ae44ded7e4755c5401f327ce0d98a9ea96b2ab
2017-06-15 14:25:12 -07:00
Mario Bertschler
48198d004a All Apps transition with gradient and scrim.
The transition is behind a feature flag and
turned off by default.

Change-Id: I155840ba82b5a573d874376797db5f739a52d706
2017-05-03 10:32:57 -07:00
Sunny Goyal
5e7b238a93 Updating color extraction to include wallpaper theme color.
Also adding mathods and callbacks to pass the related data to the callbacks.

Bug: 37616877
Change-Id: I7512cac7a603e8e5a05ec3a360c9eec493344b00
2017-04-26 08:42:05 -07:00
Sunny Goyal
1f3f07d47c Simplifying some launcher themes
> Replacing some colors with theme attributes
> Simplifying styles definition by removing unnecessary inheritance and inlining some definitions

Change-Id: Ifa167515cae6a7fd3720f1a52ff9ce11abb4495f
2017-02-16 15:24:37 -08:00