Commit Graph

1543 Commits

Author SHA1 Message Date
Sunny Goyal 0f76b56865 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
2016-12-13 23:39:16 -08:00
Sunny Goyal 1cd01b023a Ensuring that ShortcutInfo always has an icon
> 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
2016-12-13 10:31:12 -08:00
Hyunyoung Song 824c540f19 Merge "nav bar on all apps container should use light theme. b/33553066 Change-Id: Ic9eb796a01eaa8d00fbeedeb5456876b668e6db2" into ub-launcher3-master 2016-12-12 22:51:06 +00:00
Hyunyoung Song df9f14746c nav bar on all apps container should use light theme.
b/33553066
Change-Id: Ic9eb796a01eaa8d00fbeedeb5456876b668e6db2
2016-12-12 14:34:10 -08:00
Sunny Goyal 776ca257ce Merge "Defining various modes for CellLayout: Workspace, Hotseat & Folder" into ub-launcher3-master 2016-12-12 20:45:17 +00:00
Sunny Goyal 3be633b82f Adding support for app widgets in the InstallQueue
Bug: 32904959
Change-Id: I0d07a0c59d266493ae30a42579c1fa69b805009e
2016-12-12 08:37:33 -08:00
Sunny Goyal 621e200647 Merge "Simplifyling widget inflation and addition flow." into ub-launcher3-master 2016-12-08 00:46:10 +00:00
Sunny Goyal 55cb70bf70 Adding an overridable DrawableFactory to allow creating custom icon drawables
> Adding ItemInfo as a parameter for creating drawable

Change-Id: I793acb0381d2b8df4db0a08317dddf1464788ebc
2016-12-07 15:55:47 -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
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
Sunny Goyal dde4fd971e Changing DeepShortcutManager to have a singleton contructor instead
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
2016-11-21 22:28:23 +05:30
Sunny Goyal c13403c612 Defining various modes for CellLayout: Workspace, Hotseat & Folder
> Moving the definition of modes to xml
> Defining attributes in xml

Change-Id: I7a569fdbeb833d569eeeef2f2cbc8214e608ad11
2016-11-21 15:20:16 +05:30
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 0bbd5548ac Moving the setContentView at the end of onCreate
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
2016-11-11 13:43:13 -08:00
Jon Miranda 51f037d674 Refactor edge of screen detection code.
There were two resources that both defined the edge of the screen.

Change-Id: I82ab553cc3123ef54ff1f0c692d29f3678ad04ac
2016-11-07 10:11:49 -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
Sunny Goyal f5e3744637 Updating version check method names
Change-Id: If98851677545a9bbb9de308c23ff5c155a61a8bf
2016-11-02 10:31:41 -07:00
Jon Miranda cc42c5bd10 Create new DeviceProfile when in multi window mode.
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
2016-11-01 09:00:20 -07: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 c677b6b0ac Showing a toast when the default wallpaper app is disabled.
If there is no default defined, showing an intent picker with all options

Bug: 32197478
Change-Id: Ia2337701a76a9bb00973ab64e2fa435607ce2820
2016-10-25 09:49:09 -07:00
Sunny Goyal d164b7f4ab Fixing static instance of Indexer being created in the model
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
2016-10-19 07:42:34 +01:00
Jonathan Miranda 67115b1a84 Merge "Show error toast messages when there is no room for the item when icon is not to be added to folder." into ub-launcher3-master 2016-10-18 21:49:09 +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
Sunny Goyal 2e013ea7f6 Alienating QSB
> 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
2016-10-18 11:44:21 +01:00
Sunny Goyal b0bb486769 Removing the logic around closeSystemDialog on ACTION_CLOSE_SYSTEM_DIALOGS Launcher does not use any panels which need closing & system sends an onActivityResult(RESULT_CANCELLED), we do not need special handling for waitingForResult
am: f4b457709f

Change-Id: I2880167fbf37ff62ec4af88e233ab0b555453dae
2016-10-17 23:42:28 +00:00
Sunny Goyal f4b457709f Removing the logic around closeSystemDialog on ACTION_CLOSE_SYSTEM_DIALOGS
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
2016-10-18 00:17:54 +01:00
Tony Wickham 7061c9788f Add feature flag to disable light status bar
am: 0fed55bf03

Change-Id: Ia42af86a0e052bb05f0ed2ce6e8372b4408fed13
2016-10-13 00:53:13 +00:00
Tony Wickham 0fed55bf03 Add feature flag to disable light status bar
Bug: 32085545
Change-Id: I4860145b00893c20f7e37817e9659ccd90409966
2016-10-12 16:14:36 -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
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
Sunny Goyal 59769e3331 Merge "Moving the widget auto-advance logic to AppWidgetHostView instead of handling it in launcher" into ub-launcher3-master 2016-10-03 21:35:39 +00:00
Sunny Goyal 7a372033ac Merge "Exposing custom actions using keyboard shortcut" into ub-launcher3-master 2016-10-03 21:12:20 +00:00
Sunny Goyal 1acc56a4eb Moving the widget auto-advance logic to AppWidgetHostView instead of
handling it in launcher

This fixes the bug where launcher ignores auto-advance property changes
during app update or widget remote views update as well as simplifies
widget management

On potential downside of this refactoring is that the auto advance will
keep running even when all-apps or widgets tray is open. We could
eventually use onVisibilityAggregated to handle visibility changes,
but currenly the workspace visibility is not being updated properly
in these cases

Change-Id: Ie7331fec1877f43ad23e634d37571d8f3ef51e59
2016-09-30 11:18:38 -07:00
Tony Wickham 9b80528d44 Some minor fixes for extracted status bar.
am: 345bff3ce6

Change-Id: I3a9e57fb93124b1d462b0fb8173419b887e85a84
2016-09-29 01:36:18 +00:00
Tony Wickham f0fc3c4674 Merge "Some minor fixes for extracted status bar." into ub-launcher3-calgary-polish 2016-09-29 01:27:07 +00:00
Tony Wickham 345bff3ce6 Some minor fixes for extracted status bar.
- setLightStatusBar() is now updateStatusBar(), with a forceLight
  parameter. We set the status bar to be light if forceLight or
  shouldBeLightStatusBar() (based on wallpaper).
- Force status bar to be light if all apps is open.
- Default to dark status bar, not light (light == dark icons)

Bug: 29452834
Change-Id: I7b102ceff2f1ef2ab8defd4a46c698df4feaf2a5
2016-09-28 16:53:17 -07:00
Sunny Goyal 60bf18876f Fixing the newIntent logic to check the state before it has been reset.
am: 85313735fa

Change-Id: I3a43a49c467a750adb031df4c3b880d453116739
2016-09-28 23:01:38 +00:00
Sunny Goyal 7bb7ead9f7 Merge "Fixing the newIntent logic to check the state before it has been reset." into ub-launcher3-calgary-polish 2016-09-28 22:57:56 +00:00
Tony Wickham 0bc9e98d78 resolve merge conflicts of 9311387 to ub-launcher3-master
Change-Id: I449cd2c91c2906f04ebf844eab2d02befaeb2f4d
2016-09-28 14:40:28 -07:00
Tony Wickham 9311387a22 Enable light status bar when top of wallpaper is light.
(Light status bar = dark icons)

Bug: 29452834
Change-Id: I9f61a05d80158827761c8b62ab40fc50971e27a6
2016-09-28 14:16:11 -07:00
Sunny Goyal 85313735fa Fixing the newIntent logic to check the state before it has been reset.
When home button is pressed, we reset all active state (close all-apps,
folder, shortcuts menu). But we do not go to the default screen if the
active state was non-zero (any of the containers were open).

Change-Id: Ia9a06729d65767124471c5b793323a55d822210a
2016-09-28 12:42: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
Jon Miranda 379198ef5b Ignore long clicks triggered from the edge of screen.
Bug: 31572404
Change-Id: Ie531941669549ce84b92302b95be94555ee0bb73
2016-09-26 16:37:59 -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
Sunny Goyal 66b24572e4 Exposing custom actions using keyboard shortcut
Keyboard shortcuts:
  ctrl+A => Open all apps
  ctrl+S => shows deep shortcuts
  ctrl+O => shows custom actions popup

This also removes the direct delete/uninstall key shortcuts, making
actidental icon removal less likely

Bug: 24065447
Change-Id: Iae63370c0f33620628567cffd4df024064d4d02e
2016-09-23 15:57:08 -07:00