History log of /packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
Revision Date Author Comments (<<< Hide modified files) (Show modified files >>>)
c6b79e307f59e936ee380da07b0bd6fafe0a490c 01-Feb-2017 Tony Wickham <twickham@google.com> Add logging for notifications.

- Log notification launches
- Log notification swipes
- Fix logDragNDrop() to only log if the pre-drag ends (so it doesn't
log a long-press that only shows shortcuts without dragging).
- Add shortcut rank to logs when launching deep shortcuts, where 0
is the shortcut closest to the app icon (highest rank).

Bug: 34770729
Bug: 32410600
Change-Id: I99dcef9b6a71da2ef58e32397702bb137407b10f
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
dec3a908bfa395095e80e4a532cff98612b624de 26-Jan-2017 Sunny Goyal <sunnygoyal@google.com> Updating the preview generation logic so that it aligns better with
the drag source image

> Using common code for pending item drag (WidgetContainerView and PinItemDragListener)
> Adding a shortcut-circuit in Workspace when a pendingItem can create a shortcut
directly. Previously the multi-window drop was routing through onActivityResult which
was causing some state information to be lost.

Bug: 33584624
Change-Id: I0259870032185713caa9bff27092dbae6ce91199
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
2bcb3fb1f3ac6234ead13d27817b7a32b7c79b1d 26-Jan-2017 Sunny Goyal <sunnygoyal@google.com> Handing pin item drag when workspce is not loaded

While the launcher is loading, the drag view is displayed with a gray tint.
The drag is started, as soon as the workspace is unlocked

Bug: 33584624
Change-Id: I4013ea8b987ec305e73742b194f9e96af761cc35
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
b38fab75735c601b61765ecae61494c8637aaef4 21-Jan-2017 Sunny Goyal <sunnygoyal@google.com> Adding support for drag and drop for requestPinItem.

On long pressing, the confirmation activity starts a system
drag-n-drop and focuses the launcher activity. We then drive
the launcher drag controller using the system drag event

Caveats:
> We use a transparent preview for system drag and drop and use
a view inside launcher for actual preview. This gives us better
control over various animations.
> The parameters for drag operation are passed to the Launcher
activity using the intent. Since onNewIntent and onDragEvent
come at different times and are not associated, a random uuid
is used as mime-type to match the drag event with intent params
> If the workspace is locked (eg, loader is running) the drag
operation is simply dropped. Will be imporved in follow up cls

Bug: 33584624
Change-Id: I0bb5b25b690f86b6af31a14e11beb669fcb3a281
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
f5440cbd6c0525769d24b890e16313a728831e04 15-Dec-2016 Sunny Goyal <sunnygoyal@google.com> Removing FeatureFlag.LAUNCHER3_LEGACY_WORKSPACE_DND and corresponding logic

Change-Id: Ie10c087b4f72ee27be5bf12e2c81be5b7a3a6176
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
0f76b56865bd7b63bd21d53aaac47300396aa38f 14-Dec-2016 Sunny Goyal <sunnygoyal@google.com> Refactoring FlingToDelete

> Moving all fling related logic to FlingToDeleteHelper from DragController
> Removing fling related methods from DragSource and DropTarget
> Moving fling animation logic from DeleteDropTarget to FlingAnimation
> Simplifying DropTargetBar to directly look for all valid drop targets.
This makes it easier to add new DropTarget in xml.

Change-Id: I7214d2d30c907ab93c80d92d9f9be6dda2d63354
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
ea62fe0be19c54f8fbb434c6334418b96626f70d 05-Oct-2016 Tony Wickham <twickham@google.com> 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
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
0de011705b132eacdd10f7bfb5cdc4bd79a147e8 06-Oct-2016 Hyunyoung Song <hyunyoungs@google.com> Code sanitization

- Removed bad method/class name typos

Change-Id: Ie6900e9e3d9ce9b550d2a2442a5dac3f7050a573
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
10236d6ac7f5f787ca21736494ccb5eaf2bd7c27 28-Sep-2016 Tony Wickham <twickham@google.com> 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
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
5eea1e89dd7e100851d97968855b2868d01e7faa 24-Sep-2016 Tony <tonyswickham@gmail.com> resolve merge conflicts of 6e74e89 to ub-launcher3-master

Change-Id: I34e449ca3a91ee06e1983ac3a83cb7ca53567a91
6e74e899d314663415f54895227bb79a51fd734b 19-Sep-2016 Tony Wickham <twickham@google.com> 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
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
6ad72f02fd233f2294222477102e83d721100493 23-Sep-2016 Sunny Goyal <sunnygoyal@google.com> 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
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
d139b0aa7d03f676dc7869dc5b39fd9f24ff0a1d 12-Sep-2016 Sunny Goyal <sunnygoyal@google.com> Adding support for multiwindow drag and drop

Change-Id: I95b46e3c3f1238307d3ef5a6c81a8e530ba0987a
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
d0d495f5083b5acf93a3de9b28e87d7dcad8f6f4 07-Sep-2016 Sunny Goyal <sunnygoyal@google.com> Preventing concurrentmodification exception when dragging a icon
with shortcuts from inside a folder

When dragging the icon, DeepShortcutContainer removes itself as a
dragListener causing the exception

Change-Id: Ifb2b4a3045caa54aa0b6a9b525055ffdcfaa04a6
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
94b510cc683a6436ae82c6d323cbd8b429561b06 17-Aug-2016 Sunny Goyal <sunnygoyal@google.com> Some drag and drop code refactor:

1) Adding DragOptions to easily extend drap functionality
2) Changing onDragStarted signature to send more information
3) Updating states for dropTargetButton based on drag event directly
4) Removing folder item based on onDragStarted and not startDrag

Change-Id: I65b684e092ddc081d086bfe2c8c1973ed170eaeb
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
59a238095e82fd02355f4cb53abe01655a50b051 01-Sep-2016 Hyunyoung Song <hyunyoungs@google.com> Support user event logging for drag and drop
b/30039490

Supported in this CL:
- DnD: drag from container [WORKSPACE|HOTSEAT|FOLDER|ALLAPPS|WIDGETS|DEEPSHORTCUTS]
drag to container [HOTSEAT,WORKSPACE,FOLDER,DROPTARGETS]
- Source and target can be [FOLDER_ICON, ICON, DEEPSHORTCUT, WIDGET]
- $ adb shell setprop log.tag.UserEvent DEBUG will turn on debugging

Change-Id: I0b8b879b80e6dce85bbde6e7794f9e0677832603
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
d3b87ef1963fb96177ca85bcd6a25879e27e419c 28-Jul-2016 Sunny Goyal <sunnygoyal@google.com> Adding quiet mode support for shortcuts

> LauncherApps returns empty list when the user is locked. Not relying on
LauncherApps in this case
> When the user is locked, removing all dynamic shortcuts
> Loading shortcuts from DB when the user is locked
> Verifying the shortcuts again when the user is available

Bug: 30411561
Change-Id: Ib6eb372c5b009cadb86a8f6e781f3f3cbf787ceb
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
157793dda450b69da388b859d1c1a7a1083c4ec9 20-Jul-2016 Sunny Goyal <sunnygoyal@google.com> Increasing the size of the drag icon when a shortcut is dragged

Change-Id: I7d768657300d3229e05d1eb18aec3720a9098ffc
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
1bce7fd342875be8f7c1f82c8cf21d0199c8d544 29-Apr-2016 Tony Wickham <twickham@google.com> Long-press on an app to reveal its shortcuts.

- Add ShortcutsContainerListener to icons on workspace, folders, and
all apps. This handles long-press and forwards following touches to
the DeepShortcutsContainer that is created.
- Drag over shortcut before lifting finger to launch it.
- Shortcuts are rendered in pill-shaped DeepShortcutViews,
which are inside DeepShortcutContainer on DragLayer.
- The shortcut container orients above or below the icon, and left or
right-aligns with it. Biases for above + left-align.
- Long press a DeepShortcutPill to drag and pin it to the workspace.

Bug: 28980830
Change-Id: I08658d13ae51fe53064644e8d8f7b42f150fdd7d
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
645764e3e5fa34d9adcddfc722d726b76f048306 06-Jun-2016 Hyunyoung Song <hyunyoungs@google.com> Pull up all apps interaction
First phase implementation: dragging and animation interaction is implemented
namely in two classes. ScrollGestureDetector and AllAppsTransitionController.

FeatureFlag.LAUNCHER#_ALL_APPS_PULL_UP will be true for only AOSP and
not in the extending builds. This way, we can safely iterate without
turning it on the shipped ready version.
b/28917826

Change-Id: I0501309c0121880ffe0555f82d6ac5a145581bb1
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
855b1b5fff5f6f03a641b3b6973780a24fd9641e 29-Mar-2016 Tony Wickham <twickham@google.com> Add distance threshold for dragged items before accepted by targets.

With the new spring-loaded workspace, items are often very close to
button drop targets (e.g. App Info) at the start of a drag. This
threshold makes it less likely to accidentally drop on a target.

Bug: 24099531
Change-Id: I4912ceeb0b63958816177c7bde073e825176d987
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
3bbbabc54ac73a4451b0a862a3faac6426b1b7b4 15-Mar-2016 Sunny Goyal <sunnygoyal@google.com> Fixing model being updated on UI thread

> When package gets unavailable or suspended, the disabled flag was getting
updated on the UI thread. This could lead to inconsistent model if launcher
activity didn't exist.
> Fixing: When unsuspending one work profile apps, all work profile apps get
unsuspended

Bug: 27673573,27673373,27403236
Change-Id: I7fde3f79c36204e73ca66ccf8431fa0f0cce3d08
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
e0c332365604976d999eb25d4bdcc49ec75b7a1c 08-Feb-2016 Tony Wickham <twickham@google.com> Tweak spring-loaded workspace.

- No page indicators in spring-loaded mode
- Don’t move workspace up as high
- Scale workspace at 90% instead of 80% on phones
- Increase speed of workspace -> spring-loaded -> workspace
- Widgets were being scaled down twice when dragging from widget picker
- Don't scale up icons when dragging (scaling other stuff down is enough)
- Make scrim less dark and panels more transparent
- Thin white border around page instead of highlight when hovering

Change-Id: I963e91c20d4c0340480d165e0f3b8064783c0cb2
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
13f682f74ec46bd07358d51a52e064fd6221f0fb 18-Dec-2015 Sunny Goyal <sunnygoyal@google.com> Fixing some invalid checks and cleaning some redundant conditions
am: b740f59c7d

* commit 'b740f59c7d572d54402e3a74fb2a23c0f1b1af48':
Fixing some invalid checks and cleaning some redundant conditions
0f97b7874fe29f36e7a40d2fe4b45d1e0e24fe1b 03-Dec-2015 Tony Wickham <twickham@google.com> Added config_springLoadWorkspace to enable/disable spring-loaded workspace.

- Added side hints back
- Only scale down icons if spring-loaded
- Only show App Info drop target if spring-loaded

Change-Id: I4b0dddccbe0e80b7ceb6b7266fc527f757744148
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
9eba1fd75e9fa6b0dc5cad9a4e817b3b167d2461 16-Oct-2015 Sunny Goyal <sunnygoyal@google.com> Refactoring WallpaperOffsetInterpolator to a new file
Removing some us unused methods

Change-Id: Ife790e5ca6848fa13dc3fab1bba1e6220bf83743
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
9aae47f8a6e23f1805ee3d44512fc1f80286e6dd 01-Oct-2015 Tony Wickham <twickham@google.com> Added 'Cancel' drop target from all apps and widget picker.

- Reuse DeleteDropTarget since it's the same effect, but with "Cancel"
instead of "Remove" if supportsDeleteDropTarget() returns false.
- Rename related strings (but not their values)

Bug: 24104015
Bug: 24099531
Change-Id: Ia9fbcaa17bb17f7aa31df1f830298da01544c178
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
778c0b020daef6ee4bf5944ca887de546caf08c6 01-Oct-2015 Tony Wickham <twickham@google.com> Scale down drag views in spring-loaded workspace.

Bug: 24190193
Change-Id: Ic490fc3f46702c3d5360e869c4172f31700085a1
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
9d4380856ff41ecb26c0d5aee1747b6060d2ef0e 25-Sep-2015 Sunny Goyal <sunnygoyal@google.com> resolved conflicts for e78e3d73 to ub-launcher3-master

Change-Id: Idc119a57e21cf6016ee0fd91866839301db072d6
ab946a19d41f245e27580281c3904e6c6636bcdd 17-Sep-2015 Tony Wickham <twickham@google.com> Flinging to the left deletes when in vertical bar layout mode.

This mode has the remove icon on the left side, so flinging to the
left makes more sense. But flinging up still works in either case.

Change-Id: I7ab40776b67659026f03f81efd43fae3375b5ba0
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
94e0d37f53e699364ebff732cf75ab81a577fb91 11-Sep-2015 Tony Wickham <twickham@google.com> Initial spring loaded workspace.

It is a bit clunky and doesn't have the App Info drag bar at the
bottom yet, but it is a start.

Also removed page hints because they are no longer used.

Change-Id: I1f8f82d33e6694cab1f1c762e78852ac0d40ab33
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
756cd26592dee6b956becdc24d60995c64de9153 20-Aug-2015 Sunny Goyal <sunnygoyal@google.com> General code refactoring
> Removing utility method for isAttachedToWindow
> Moving logic to calculate cell size from workspace to DeviceProfile
> Replacing some constants with xml resource variables
> Saving the item info using content values for better compatibility with other methods

Change-Id: Idd612633d97a6241cb31148df9466031374bd5a0
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java
fedca43d396d6fd7c46fbb2f37dfa7cfe3b31834 20-Aug-2015 Vadim Tryshev <vadimt@google.com> Moving drag-drop related code into a separate package.

This is per an earlier CR comment "we should probably move all this code to its own package (launcher3.dragndrop) in a separate cl".

I'm not moving DragSource because it's referred from gsa code.

Bug: 22609426
Change-Id: Ia7204dab99c0c395c66b77143a2d60411153f5f3
/packages/apps/Launcher3/src/com/android/launcher3/dragndrop/DragController.java