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
This will allow us to override the implementation and provide custom
logic for widget addition.
Bug: 33584624
Change-Id: I310bf39e301c7e1c8de4f62456594535e2fe5bbc
> Config activities can now return PinItemRequest which can be used to pin
deep shortcuts
Bug: 33584624
Change-Id: Ic0df436bd79e069615b9d60d24eb7594b824b2da
> Instead of checking promiseIntent != null, using isPromise() for consistency
> Fixing bug where clicking a pending icon does not launch anything
> Fixing bug where draging an icon on Info target, permanently hides the icon
Change-Id: Ic8f6b56042dba42d5ed9aedb0f5947186e1a4208
> This ensures that LauncherAppState is only accessed in the presence of
a valid context
Bug: 33032833
Change-Id: I955e5cb022f8bd6374681ae6c0720a2666d5b750
Providing a way to access icon cache without LauncherAcitivtiyInfo.
This allows fetching LauncherActivityInfo only when required, thus
avoiding system RPC when the icon is already in cache.
Change-Id: I92918c7a0d0d0796e5f7b70d4ecb6787c52c6600
b/33708486
Nav bar should be in sync with status bar in all apps screen.
Nave bar should not change with status bar when in workspace mode.
Change-Id: Ib5a0d33d3e38f1b3ffa9693657ba7de3b6e01fed
> 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
> Making iconBitmap public instead of a getter (similar to AppInfo)
> Removing getIcon() which can lead to IO on UI thread
> Removing updateIcon and handling the update at the caller
Bug: 21325319
Change-Id: I6a49b9043f974e9629ea25e77012d97cc04c0594
> 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
of getting it from LauncherAppState
This follows the design of other managers and makes it easier to access it
from other processes and non-ui thread.
Bug: 33032833
Change-Id: I8ad82ae5b6cc47bae885f9896985675c7dd0d5b8
In multi-window mode, when the activity is resized, the window might
exist even before onCreate, which could call onAttachToWindow while
they are being inflated. Many Views in Launcher assume
onAttachToWindow to be called after onCreate has completed.
Bug: 32745705
Change-Id: Id6ee68826c4f3cc579880540812fd8ed834f8267
This is just a first pass to help make the codebase ready for MW mode.
ie. won't see the effects of this unless resizeableActivity is set to true
in the Android Manifest.
Also allows long clicks from edge when in MW mode.
Bug: 32176631
Change-Id: I48e5cb3bd15e70627d9bf007d93bc731612fba2e
Indexer depends on the locale and should be created when ever the config
changes. Moving the widget indexing to the adapter (similar to allApps)
which gets created whenever the activity is recreated.
This fixes the bug where widgets indexing breaks if locale changes while launcher
process is alive
Also fixing the bug in widget model cloning where the HashMap was not cloning
the underlying ArrayList
Change-Id: I7dbe6290e73299c4c07aa7fa564077a2649e1a4c
* 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
> Moving all QSB widget handling code in a separate package
> QSB is handled on a separate host, independent of the main
host. This allows us to safely reset either of the two hosts
> Also removing the logic around closeSystemDialog:
Launcher does not use any panels which need closing
System sends an onActivityResult(RESULT_CANCELLED), we do
not need special handling for waitingForResult
> Fixing bug when auto-generated qsb widget id was not being saved
Change-Id: I2d889b7b1c80b14785d14f35624142a4b78452de
Launcher does not use any panels which need closing & system sends an
onActivityResult(RESULT_CANCELLED), we do not need special handling for
waitingForResult
Bug: 32127718
Change-Id: Iff5161444bc909442f6acbe52cb3fb5a2d9ae4da
> 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
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
- 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