- We only want to log when the container is opened and potentially
used, not when a long press is followed by a drag-and-drop.
- Also cleaned up code that was determining the container of the
app icon, since LaunchSourceProvider.fillInLaunchSourceData()
can do that instead (it's more robust and consistent).
Bug: 30791570
Change-Id: I05b6750f26182fda8a9940ac66f1371c2d228ca9
- Before we always started the close animation at 0 instead of
the previous open progress, which looked janky.
- Shortened the animations' durations and start delays to
account for the fact that the open animation was only
partially finished when the close animation started.
Bug: 30465231
Change-Id: I958ee5f4543dbf1185f3d0229c55fc1b51929655
- Log as long press with child type DEEPSHORTCUTS container
- Parent type can be one of WORKSPACE, HOTSEAT, FOLDER,
ALLAPPS, PREDICTION, or SEARCHRESULT.
Bug: 30537079
Change-Id: Ie62e4889ee06c845f959ca998781787a7fdaf00e
- We take the first 4 in sorted order, except we remove up to 2
static shortcuts to make room for dynamic ones if they exist.
- Added ShortcutFilterTest with testSortAndFilterShortcuts().
This asserts that the filtered list is sorted and has the
expected number of static and dynamic shortcuts based on
inputs with various amounts of each.
Bug: 28980830
Change-Id: I832b6b21144f17c74bb8b90a840d6620e99911b8
- This was leaving a "ghost" icon behind, which looked really weird.
- We still need to make it visible for All Apps, or else you can get
in a state where the icon is gone from all apps indefinitely.
Bug: 30465972
Change-Id: I79eacf2dfdb0cd267732ae63ef69a9bb193933a5
> The shortcut container closes with an animation
> When opening/closing the animation only the icon scales
and not the title and drag handle
> When dragging the icon, it starts from the original icon position and
moves under the user finger. The container grows to follow the drag view.
Bug: 28980830
Change-Id: Ic0353c30b682d1f018cbf4d62e8a6e8e7d7d4664
- Align shortcut icons with original icon.
- Drag handle is lighter and smaller.
- Shortcut pills are slightly wider to accommodate long text.
Bug: 28980830
Change-Id: I8e9709e3cbdb9df86a805a4b63a696975c61df5a
- We create a trangular path, which we use as the view's
outline (for the shadow) and as its PathShape background.
- We scale up the arrow as the container opens.
Bug: 28980830
Change-Id: I71e566552f063dfdb69067bb7e3cee659988f934
- You can no longer long press and drag over shortcuts before
lifting to launch them.
- Dragging in any direction past a threshold enters spring-loaded mode.
Bug: 28980830
Change-Id: I36bfc379cc983017456a3ef0314faa1ac9691c36
> Only ignoring touch events during the start of the motion events
> Handling action_cancel
Bug: 30291280
Change-Id: I4aa791b30c65ebaff90bb2f232d77de62ab6a033
- Container was shifted off screen.
- Touch down x coordinate was incorrect, causing the deferred
drag to start immediately upon moving the original icon.
Bug: 30075428
Change-Id: I148b6f4f7945ecbcf67b52ba26a2af0065d8f538
- Open animation: shortcuts reveal using modified circular reveal
(so that it reveals in the pill shape instead of a circle);
slight translation away from the original icon; scale icon and text.
- Hover animation: scale the shortcut pill and translate others away.
Bug: 28980830
Bug: 30127368
Change-Id: I8ed05c7a082f2c2a3f6c663da7259f6cd33e394f
- Manifest shortcuts are closest to the original icon, in rank order,
followed by dynamic shortcuts in rank order.
- Also prevent pinned shortcuts from showing in container if they
aren't also dynamic (only manifest and dynamic show in container).
Bug: 29822383
Bug: 29946657
Change-Id: I5cdb2ef3700daedca01987f64c245beb3f4aa5ee
- Only add shortcut touch listener to APPLICATION item types, not SHORTCUT.
- Load shortcuts on LauncherModel worker thread instead of using AsyncTask.
- Avoid a couple of unnecessary object allocations.
Change-Id: I31b911b91df71335542545602fe137e270c745d7
- Mostly everywhere folders are closed
- Implements DragListener so we can close the container when dragging
the original icon or shortcuts from the container. We actually just
hide the container in onDragStart() and really remove it in
onDragEnd(). This avoids interfering with touch events and thus
allows us to remove the hack of explicitly setting the DragLayer's
controller when dragging shortcuts (since it will do it on intercept).
Bug: 30080537
Change-Id: Iccc2afba2a990a613bc588d57c4d8c1b7c65224b
- Dragging a shortcut from a container inside a folder was buggy
because the folder assumes that all drags are removing an item
(so it marks the cell as unoccupied, etc.). So we just close
the folder when dragging a shortcut.
- When the shortcuts container opened outside of a folder, touches
on it were incercepted by DragLayer to close the folder. So we
move the container intercept check first, and return false if the
touch is over the container so it can handle the touch.
Change-Id: I8c5814513e99910b2930e05d9a62dfe0a0a60f3e
- 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