Commit Graph

606 Commits

Author SHA1 Message Date
TreeHugger Robot 2a2b1ad8fd Merge "Lower the transition threshold for dropping on Workspace." into ub-launcher3-master 2016-12-12 22:02:55 +00:00
Tony Wickham 251ab6e847 Lower the transition threshold for dropping on Workspace.
Old threshold: 0.5f
New threshold: 0.25f

The threshold is used when dragging to Workspace from any
drag source other than Workspace, including Hotseat. This
lowered threshold is more forgiving for faster drags.

Bug: 33210055
Change-Id: Ic121fb4b7caa3ea66abb48a8a3f3bd36f3365749
2016-12-12 13:56:36 -08:00
Tony Wickham 0c7852f822 Allow long-press on workspace immediately after dropping.
Previously the touch was consumed until the transition from
spring-loaded to normal workspace finished, leading long
presses to trigger on the background rather than on apps.
This made it difficult to move multiple icons consecutively.

Bug: 29631912
Change-Id: I259e618c81f56bc40d08a5d63ddbbf3c82a76baf
2016-12-12 12:51:27 -08:00
Jonathan Miranda 72169102db Merge "Scale widgets when dragging and dropping in multi-window mode." into ub-launcher3-master 2016-12-08 18:43:17 +00:00
Jon Miranda f7ff3fe58a Scale widgets when dragging and dropping in multi-window mode.
This change mimics the non-MW mode behavior when dragging and
dropping widgets by taking the app widget scale into consideration.
This ensures a consistant drag and drop experience between
MW mode and non-MW mode.

* Uses cell data (cell height/width, spanX/Y) to get the expected
widget sizes.
* Scales sizes when necessary.

Bug: 32176631
Change-Id: Icdaf73ecd89a30e57fe7f405292d793f2d6a3ee8
2016-12-08 10:28:51 -08:00
Sunny Goyal d5462aa31b Simplifyling widget inflation and addition flow.
> Removing insert parameter used to select the index of the view.
  ShortcutAndWidgetContainer no longet relies on the index and instead
  uses x and y to refer a particulat view.
> Creating helper methods to easily insert the icon by passing ItemInfo
  directly. LauncherModel.addItemToDatabase synchronously updates the
  ItemInfo with proper postion information. So we can directly use the
  info instead of passing each parameter separately.

 Bug: 32904959

Change-Id: I021c1b818f2f42604b95a6970e06aacc7211292a
2016-12-07 13:16:08 -08:00
Tony Wickham 4633be64e8 Fix for mTransitionProgress not being updated throughout animation.
Change-Id: I8f792794b7bc6edff081383b5a0a74af04a744ad
2016-12-06 17:11:35 -08:00
Jon Miranda feba90fe80 Added logging for HOME_INTENT and BACK commands.
Document: go/false-longpress-overview

Change-Id: If6ba4996c861a44f4950b41acb4246e3a483d8f2
2016-11-21 17:01:24 -08:00
Hyunyoung Song 0860e41d50 Add logging for workspace rearrangement in overview mode
am: 0d4899026c

Change-Id: Ie6569ecafdd63981e167a910f852a8133697ae81
2016-11-21 19:48:08 +00:00
Sunny Goyal db2fa049a6 Merge "Moving saving state transtion listener logic to individual views" into ub-launcher3-master 2016-11-18 01:17:51 +00:00
Hyunyoung Song 0d4899026c Add logging for workspace rearrangement in overview mode
b/32457561

Change-Id: Ic38fbd540616a74f26c19a09ab4247fe8f9174b4
2016-11-17 20:48:18 +00:00
Tony Wickham 075b878842 Merge "Animate icons back to where they were picked up." into ub-launcher3-master 2016-11-15 19:53:32 +00:00
Sunny Goyal db36437931 Moving saving state transtion listener logic to individual views
Change-Id: If5402b6961d7d6be0c50778f27a8746ed6f1bbfb
2016-11-14 17:43:31 -08:00
Sunny Goyal c48a89e59c Merge "Calling buildLayer only on views which are actually visible" into ub-launcher3-master 2016-11-07 18:09:43 +00:00
Tony Wickham ea62fe0be1 Animate icons back to where they were picked up.
We do this for pre-dragged icons instead of calling onDrop().
- Removes need for special logic in onDrop() to check if mIsInPreDrag
- Dropping from pre-drag in all apps also animates instead of jumping

We also do this when dropping an icon while still transitioning
to spring-loaded mode, to avoid having a janky jump at the end
- Bug: 27135377

Change-Id: I4548c3e2fef3423d1ba36057fb53807b1b4ad0fc
2016-11-02 15:07:57 -07:00
Sunny Goyal cce078099c Fixing screen center not getting calculated properly
Bug: 32578597
Change-Id: Icdf5dc2d82eab3d90b380736d7256ca2d9b2df2e
2016-11-01 14:01:10 -07:00
Tony Wickham 968c283f22 Merge "Restore mDragInfo when deferring onDropComplete() for uninstall." into ub-launcher3-master 2016-10-27 21:05:52 +00:00
Sunny Goyal b5e65c8bd3 Calling buildLayer only on views which are actually visible
> Creating a common listener for handling buildLayer logic

Bug: 30138067
Change-Id: I803ef78b48e07e5ae5922e0392d390f274a87d75
2016-10-26 18:34:21 -07:00
Sunny Goyal 9ccafbff26 Removing custom dispatchDraw logic and letting the system handle
selecting appropriate children for drawing.

> System already skips children which are outside the bounds. Originally
this logic was added because workspace layout is larger than the screen, and
we need to selectivly skip more children. But over time we have added many
special conditions and at present workspace actually draws more children than
needed at any given time.
> Fixing bug, where onBeginPageMoving was getting called during folder open

Bug: 12116740
Change-Id: Idee18ee9cd9d348ebc4dfd82f4ff6df14e0d22d2
2016-10-26 17:14:12 -07:00
Sunny Goyal 35fe7be54e Removing some deprecated code around page layers
1) setChildrenDrawnWithCacheEnabled: deprecated
2) Removing custom logic based on isHardwareAccelerated. This check was not being
used consistantly everywhere

Bug: 29761236
Change-Id: Ic4a9c764f154497e376e37de2351fe04d1b48500
2016-10-26 13:14:03 -07:00
Tony Wickham 4feb27e6b1 Restore mDragInfo when deferring onDropComplete() for uninstall.
We moved mDragInfo = null to onDragEnd() since onDropComplete()
isn't called for pre-drags, but this led to NPE when returning
from unistall or app info since onDropComplete() is called after
onDragEnd() in this case. So now we restore a copy of mDragInfo.

Bug: 32415014
Change-Id: I7ef4fb7145c3c78039af1131e77538969db58141
2016-10-26 12:51:14 -07:00
Tony Wickham d1f034708b Don't move to adjacent page if it is full when dropping on it.
Bug: 32003721
Change-Id: Ia81b75a73f510ad2a58764dec9eb7e57b9bf2dcd
2016-10-24 10:27:56 -07:00
Tony Wickham 1da143940c Merge "Mark cells as unoccupied in onDragStart instead of startDrag." into ub-launcher3-master 2016-10-19 16:48:43 +00:00
Jon Miranda 9485e5f293 Show error toast messages when there is no room for the item when icon is not to be added to folder.
* when user tries to add item to full hot seat from workspace.
* when user tries to add item to full home screen from workspace.
* refactored so that Workspace handles displaying error messages.

Bug: 15574422
Change-Id: Ibc98c7f45bc0c646dc4636660fba62be9db22ac0
2016-10-18 14:47:31 -07:00
Tony Wickham 4e47b5b0d6 Mark cells as unoccupied in onDragStart instead of startDrag.
Also move cleanup (resetting variables to null) to onDragEnd
instead of onDropCompleted. These changes are necessary because
pre-drags (for apps with shortcuts) don't call onDragStart
or onDropCompleted.

Bug: 32246571
Change-Id: Ib18fac64555e9158b776f9c12afc2cb807b3c355
2016-10-18 14:46:02 -07:00
Tony Wickham 6982de2485 resolve merge conflicts of 2fd0208 to ub-launcher3-master
Change-Id: I20ad6eaace81786be080e28d6eb551908add6d90
2016-10-12 14:38:43 -07:00
Tony Wickham cf6195268d Merge "Use Launcher.getLauncher(Context) instead of type-casting." into ub-launcher3-calgary-polish 2016-10-12 21:22:05 +00:00
Sunny Goyal 9c76a9cece Announcing the final action when the drag-drop completes
am: 3f8864069b

Change-Id: Iba49c7ba1d1c2d1f4c279970bbcc3ff96af5ccc0
2016-10-11 20:12:59 +00:00
Sunny Goyal 3f8864069b Announcing the final action when the drag-drop completes
Bug:31926812
Change-Id: Id0566cc7dc15732981320807a02fb9cae8a885e6
2016-10-11 10:55:14 -07:00
Sunny Goyal 740ac7f00e Refactoring floating view opening/closing logic
> Creating a base view for floating panels with some common methods
> Moving the getOpen method to individual classes
> Moving the folder icon animation logic to folder icon
> Moving all the logic related for opening folder to Folder class

Change-Id: I898dfb6870b857cb921d2729b89618bc43ff2e88
2016-10-10 13:36:03 -07:00
Tony 2fd0208605 Use Launcher.getLauncher(Context) instead of type-casting.
Bug: 32010039
Change-Id: Icb80d3e547a706740b84df2cb80f99e4a7f81c43
2016-10-07 12:50:01 -07:00
Hyunyoung Song df7ef68bbf Refactors in UserEventDispatcher
- LaunchSource -> LogContainer

Change-Id: I71bfee992fb1ba7ae80e824d419f7bf8d3020999
2016-10-06 17:52:22 -07:00
Hyunyoung Song 0de011705b Code sanitization
- Removed bad method/class name typos

Change-Id: Ie6900e9e3d9ce9b550d2a2442a5dac3f7050a573
2016-10-06 10:57:29 -07:00
Jon Miranda f3e35d9331 Add logging for long presses. Reset elapsed timer when changing containers.
This is the first CL in a series of logging-related CLs. Upcoming CLs will
include using Commands (HOME_INTENT, BACK) and "tapping outside" of a container
logic.

Change-Id: I62f0a08c7a9d9fce0baa5c12c67e21f63ab16a7c
2016-10-05 15:22:23 -07:00
Tony Wickham 10236d6ac7 Update pre-drag lifecycle for apps with shortcuts.
- First of all, deferred drag has been renamed to pre-drag
  to avoid confusion with the existing deferred end drag.
- For normal drags, the cycle is still startDrag -->
  onDragStart --> onDrop --> onDropComplete --> onDragEnd.
- Pre-drags have two additional callbacks: onPreDragStart
  and onPreDragEnd. onPreDragStart is called between
  startDrag and onDragStart, and onPreDragEnd is called
  at the same time as onDragStart or onDragEnd.
- If the pre-drag has not transitioned to a full drag before
  onDragEnd, onDragStart and onDropComplete are skipped
  (onDrop is still called to allow the DragView to animate).

Change-Id: Icd7a8f75d5fcc159f9a52758c22ab6eae3edb9e2
2016-10-04 12:26:35 -07:00
Hyunyoung Song 1784d579f4 Consume ACTION_UP when fling is detected on top of icon
am: 035a516e18

Change-Id: I0eb8f0c83e1a1611d8bb3b9309d69b8df7c7a19d
2016-09-30 23:29:32 +00:00
Hyunyoung Song 035a516e18 Consume ACTION_UP when fling is detected on top of icon
Bug: Adam found out that when you swipe down fast on an icon, you can
launch search AND launch an app. Only one should trigger and not both.

Change-Id: I66b9df26d8bb355f011d057dafd45f90f59b82ae
2016-09-30 16:13:55 -07:00
Sunny Goyal fe770c9feb Cleaning up restore instance state logic
Restore instance state is only used for first binding. But in case of restore,
the binding happens synchronously, so there is not need to store the bundle
in a global variable

Change-Id: Ibc496bcd7c0d171056b8afc69f2c4d9a1270d40c
2016-09-28 11:35:13 -07:00
Tony 5eea1e89dd resolve merge conflicts of 6e74e89 to ub-launcher3-master
Change-Id: I34e449ca3a91ee06e1983ac3a83cb7ca53567a91
2016-09-23 19:43:35 -07:00
Tony Wickham 6e74e899d3 Refactor shortcuts drag and drop.
- Instead of creating our own drag view within the container, and
  handling logic to determine when to start a real drag, we start
  the drag immediately and just defer onDragStart().
- To determine when the deferred drag should start, we add a
  DeferDragCondition to DragOptions. The default DeferDragCondition
  never defers a drag, but is overridden for apps with shortcuts
  to defer until the icon is dragged a given distance.
- Because the drag is handled in DragController, including checking
  when to start the deferred drag, DeepShortcutsContainer no longer
  needs to handle touch events and ShortcutsContainerListener has
  been removed.

This change has several immediate benefits:
- The code is much cleaner, because it allows touch handling to be
  done by the DragController through the normal drag flow, without
  recreating logic in ShortcutsContainerListener/DeepShortcutContainer.
- The janky second haptic feedback has been removed (now it vibrates
  when you long press, like everywhere else, but not again when the
  shortcuts close after dragging a distance).
- Drops are animated, instead of just popping the icon back into place.

Bug: 30769920
Bug: 30465972
Bug: 31533078
Change-Id: I679b412b72fbf6c3895d76963311eb5010c8e8db
2016-09-23 18:44:47 -07:00
Sunny Goyal c2f72b0bb8 Merge "Resize only one widget at a time" into ub-launcher3-master 2016-09-23 23:23:03 +00:00
Sunny Goyal 6ad72f02fd Resize only one widget at a time
> Removing logic to have multiple widgets in resize mode
> Making ResizeFrame a touch controller, so that it fits well with
other touch interaction in drag layer
> Chaning the method names in touch controller, so that it do not
overlaps with the default View methods

Change-Id: I85d4dbdfc82d078781adbce137dfaaea59c9c83d
2016-09-23 16:02:49 -07:00
Tony Wickham a07b9335e4 Stop jumping to workspace from hotseat on quick drop.
am: dbf08b4aee

Change-Id: Id1a4c65f14810dcf3e6534796d797603070c5d68
2016-09-23 00:37:12 +00:00
Tony Wickham dbf08b4aee Stop jumping to workspace from hotseat on quick drop.
Regression occurred in ag/1315317.

In that change, Launcher#enterSpringLoadedDragMode() was moved from
the end of startDrag() to the end of onDragStart(). This changed the
sequence of events from:

beginDragShared() --> DragController#startDrag() --> onDragStart -->
dropTarget.onDragOver() --> Launcher#enterSpringLoadedDragMode()

to:

beginDragShared() --> DragController#startDrag() --> onDragStart -->
Launcher#enterSpringLoadedDragMode() --> onDragOver()

Basically, the key difference is that onDragOver() is called after
enterSpringLoadedDragMode(). This matters, because onDragOver()
returns early if Workspace#transitionStateShouldAllowDrop() returns
false, which it does during the spring loaded transition. This meant
that onDragOver() didn't update the layout to be Hotseat, and thus
the current workspace page was used as default, since that is what
was set in onDragEnter(). To fix it, I've copied the logic in
onDragOver() that checks to see if the drag is over the hotseat first
to a new method that onDragEnter() now calls as well.

Bug: 31245181
Change-Id: Ie758921b25fc96516a09c32bdc9706da941522df
2016-09-20 16:48:42 -07:00
Hyunyoung Song cbf371cddc Fixing issue where overview->normal workspace mode cannot be done by tapping b/31458165
am: f99370c2a9

Change-Id: Id5c7b068fae21a2c4941390bf99db413581ede44
2016-09-16 19:45:06 +00:00
Hyunyoung Song f99370c2a9 Fixing issue where overview->normal workspace mode cannot be done by tapping
b/31458165

Because workspaceInModalState makes the VerticalFlingDetector
to consume the touch input, click is not detected in Overview mode.

Placed pulldown to search behind a feature flag.

Change-Id: I31ab69f57944a18e6b264c4f2ed2d0c1175cd940
2016-09-16 12:03:27 -07:00
Hyunyoung Song ae02616a17 Pull down should start search. b/31458165
am: 46133612b4

Change-Id: I1147a69e6dd9fbfb614b8740a30e6c840948435a
2016-09-15 17:58:47 +00:00
Hyunyoung Song 46133612b4 Pull down should start search.
b/31458165

Change-Id: If4821e3d89a05a00551af6a5209ebc1693a1389b
2016-09-15 10:48:25 -07:00
Sunny Goyal 2eea42fcb9 Using DragObject for folder drop instead of maintaining states when drag starts from inside a folder
am: e393d3af36

Change-Id: I44abfbed5ea0a8125b8c5ca50ecdf3a205de8775
2016-09-12 20:29:45 +00:00
Sunny Goyal e393d3af36 Using DragObject for folder drop instead of maintaining states when
drag starts from inside a folder

Change-Id: I073b59c194d0bd483d579bbcb638b116b09590a0
2016-09-09 17:25:38 -07:00