onDrop isn't called if the drag is canceled at Launcher.onPause. Let's
also reattach LauncherAppWidgetHostView to its parent in this case.
Test: long press and hold a widget and, at the same time, press the
power button. Don't let go of the long press and press the power
button. No crash observed.
Fix: 190950646
Change-Id: Id52a51291863b7ef63c861eb6dc23b015484be65
Test: Long press a widget and then release when the resize frame is
shown. Then, click the content of the widget to launch the
widget's activity. Go back to home screen and then immediately
long press the same widget again. No crash was observed.
Bug: 189814379
Change-Id: I4232ecf9d9d9efaba817b7777314f0814bb7ef21
When this bug occurs, the resize frame coordinate is incorrect because
the launcher state animation has not finished when the drag view
finishes animating back to its original position.
Test: Quickly long press and release a widget from the home screen.
Observe the resize frame is correctly shown around the widget.
Bug: 186370472
Change-Id: I6bfba2e85e3354a215c26203dd22df13db3b8b83
The bug occurred when there are two widgets in a CellLayout. When
dragging one of the widget, ShortcutAndWidgetContainer#getChildCount
returns 1 rather than 2 because the LauncherAppWidgetHostView of the
widget in drag has been detached from its parent and reattached to
DragView (introduced in ag/14234627).
Test: Place only two widgets on the last page of the home screen. Drag
one widget. The new page indicator on the right is shown.
Bug: 188494523
Change-Id: I8255dd1b72ad7f18f4cb35a9e14ac8e61804980c
There's a logic which prioritizes the binding for the
current page and defers the other pages' binding.
If two panel home is enabled, we want to bind both pages
together. LauncherPageRestoreHelper has been created to
contain the logic for persisting restoring and calculating
which pages to load immediately.
Test: manual + run LauncherPageRestoreHelperTest robo test
Bug: 174464691
Change-Id: I57ac3f7150303b95b272e922f44bda26f9d5ce2a
- Tweak iteration for finding first match, go by operator priority and
check each cell layout by order to return the first view that matches
- Also reset the launch cookie in cases where we're launching a task
that doesn't support cookies (ie. via prediction), otherwise we may
still try to associate it with the last launched cookie later
Fixes: 187720286
Test: Swipe up from various icon types across hotseat/workspace
Change-Id: I71c4c13c442b0884b2247589685f976eaaeb30a4
Signed-off-by: Winson Chung <winsonc@google.com>
- The system overscroller seems to take a long time to settle even
after the final position has been reached, so if that has already
happened and there is no edge effect, then just end the scroller.
- Remove unused code related to SmoothPageView
Bug: 184983443
Test: Quickswitch and ensure we finish the recents animation after it settles
Change-Id: I9fa72ddd6b6e0d38b6f622c776a2ac5f5b055760
> 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
Bug: 129067201
Test: Open a shortcut on the workspace, go home
Change-Id: If5d3c3e8e93f09af50aa4994094657347890ef45
Signed-off-by: Winson Chung <winsonc@google.com>
> Using EdgeEffect in PagedView for overscroll
> Keeping RecentsView overscroll similar to S, by created a custom EdgeEffect
Bug: 183966408
Test: Manual
Change-Id: Ia547cf14ea315468b12a4ff5f389ac2d2beceafa
- We remove the fling completely
- We set damping to 1 for x/y springs so there is no
bounciness, and updated the stiffness and bounds to tighten
up the path to the final location.
- During the animation, we translate all launcher content
down
- When the x/y springs, and rect animator all finish,
we use a spring to bounce the launcher content back up
- Added AppCloseConfig so that the entire animation can
be defined in one location, with getter methods so that
all the involved parties of the animation can access the
current value.
- The animations are all defined linearly, and then
interpolated over using a 3 point curve.
Building behind feature flag as we tune the values.
Bug: 173107751
Test: manual, visual
Change-Id: I83ad0fa2c4234cf30004240d43e191354595adc8
=> Remove the bitmap-based icon outline
=> Add simple cell based location preview of drop location
=> Round corners of page outlines
=> Get rid of page background for focused page
=> Update colors to use system accent color
Bug: 185163323
Test: manual
Change-Id: Id604c59201536967e25236f305eeeb0aafc9c022
Change getFirstMatchForAppClose to check all the visible
pages not just the page with the currentPage index.
Test: manual
Bug: 183606840
Change-Id: If5280797f821f7d10f82376aeef5e8eb4d352e2a
Change the rect calculation logic that is used to
display an opening folder. If multiple panels are
displayed then we calculate the union of the pages.
Test: manual
Bug: 181962118
Change-Id: I504f22890115ceebc16d60929149fe634bf820d0
Test: Drag a test widget around and observe local extract color
is applied.
Bug: b/182282587, b/182816217
Change-Id: If63a9d91ceb2102d5d913bca85997b8be07b1adf
- Pagespacing set to 0 to have similar design to figma
- Added padding to left side of left panel and right side of right panel to match figma
- getPageScrolls changed to support two page scrolling
- validateNewPage changed so that only even indexed pages can be switched to
- getPageWidthSize added for measurements, it returns half screen width when two panel is active
- onMeasure changed to use getPageWidthSize
- panelCount has been increased from 1 to 2 when two panel is active
- add feature flag for two panel home
- shouldConsumeTouch changed so not only currentpage is checked but currentpage+1 screen as well
- add one more extra check for setDropLayoutForDragObject for currentpage + 2, next to right panel
- using new grid option for two panel home screen
Test: manual
Bug: 174464115
Change-Id: I1bad7eecc67f65fb833608744a5aa5aca65373b4
This is a preliminary work for local color extraction. In order to
apply local colors extracted from wallpaper to AppWidgetHostView
during drag, we need to hold a reference of the dragging
AppWidgetHostView.
In this CL, the following changes are made:
1. Instead of using bitmap image directly for icons, folders, shortcuts,
legacy widget drawable preview, a BitmapDrawable wrapper is
introduced.
2. Introduce a WidgetHostViewDraggableDrawable which draws
LauncherAppWidgetHostView directly to canvas. No more bitmap
generation overhead.
3. Remove drag outline from the drag logic because this will be replaced
by a new grid color hint UI: https://screenshot.googleplex.com/7jBEVeuxFecFKKT.png
Test: Add: add widgets, shortcuts from widgets tray.
add icons from all apps.
create folder.
Drag: drag existing widgets, shortcuts, folders and icons around
Bug: 182282587
Change-Id: Ia45ff756ea5bb80cf0761f0727a9453d50c204c0
Test: go to all apps, ensure no bottom insets/limited nav bar
protection; go to overview, ensure no extra bottom padding
Bug: 171917176
Change-Id: I09dc589e1cb8d3b673bf2b38e42284557413e011
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
- Introduced gridProgress to RecentsView/TaskView ofr animating into grid
- Introduced gridProgress dependant translation and scale properties in TaskView
- Animate running task into grid with TaskViewSimulator
- Remove overview actions (for now) but keep clear all button in large screens
- Adjust ClearAllButton translation to acoomodate for grid
- Use screen width +-50% to calculate task visibility
- Use the position where TaskView is on screenEnd as pageScroll
- TODO: Handle separate recents activity
Doc: go/foldables-launcher-overview
Video: http://dr/file/d/107Aydii1LoFCwP63nWG3Twr2PBDE5ZgD/view?resourcekey=0-aUjdnx8ezimS9tmAgao9ag
Test: Test Launchering overview and launching overview from apps with folloiwng combination:
- large / small screen sizes
- portrait / landscape
- thumbnails from different screen sizes / orientations
Bug: 174464863
Fixes: 181509346
Change-Id: I4b691cde774f2e37532b68ba83c6eed399f2332e