Commit Graph

862 Commits

Author SHA1 Message Date
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 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
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
Hyunyoung Song f851b1af5b Fixing two critical bugs in all apps transition controller am: 0a9c092c89
am: ea045e7532

Change-Id: I64a1d4620427d4c7d9dcb67a27dc07fb1f5aa03b
2016-09-22 18:20:54 +00:00
Hyunyoung Song ea045e7532 Fixing two critical bugs in all apps transition controller
am: 0a9c092c89

Change-Id: I115b7bc6d165dc9d5e73e1878b96d194bfc62da7
2016-09-22 18:17:25 +00:00
Hyunyoung Song 0a9c092c89 Fixing two critical bugs in all apps transition controller
bug#1: if long press from page indicator region, you can pull up all apps
even though the workspace is in overview state.

bug#2: all apps should not intercept touch not only in overview mode
but also in any modal state.

Change-Id: I91c0a181f037f6c2465a983825da3a2da7e2920f
2016-09-20 22:50:06 -07:00
Sunny Goyal 703bad8a26 Simplifying the startSearch call in launcher callbacks
am: 6f28e71e94

Change-Id: I1f450940d01acc479b8363b3bd10eb7fe70ae249
2016-09-13 22:03:06 +00:00
Sunny Goyal 6f28e71e94 Simplifying the startSearch call in launcher callbacks
Change-Id: I722e110903cced237f05667c4d711468d7cd3daa
2016-09-13 14:22:31 -07:00
Sunny Goyal 7616f8deff Preventing a shortcut which requires permissions from being added to homescreen
am: fb5096d07b

Change-Id: Iac143134ac7679200fb1290072ec620d2a9bc131
2016-09-10 00:13:45 +00:00
Sunny Goyal acd0c4204b Merge "Preventing a shortcut which requires permissions from being added to homescreen" into ub-launcher3-calgary-polish 2016-09-10 00:04:51 +00:00
Hyunyoung Song 4a652835fd Show IME when search query != null after rotation
am: c2fe1147f9

Change-Id: I9b7b139f5675edec9aff4968cef7780b48ff2165
2016-09-09 22:18:36 +00:00
Hyunyoung Song 915d56abc7 Merge "Show IME when search query != null after rotation" into ub-launcher3-calgary-polish 2016-09-09 22:13:33 +00:00
Hyunyoung Song c2fe1147f9 Show IME when search query != null after rotation
Change-Id: Ia35fba140a5addc21bf347cd63b72dc4e357421e
2016-09-09 15:02:20 -07:00
Sunny Goyal 40452cf468 Using ItemInfoMatcher in place of similar interfaces and utility methods
Change-Id: I7337b819fe8f42f7a5a1481b5ed5d99a8cf583c4
2016-09-08 15:39:50 -07:00
Sunny Goyal d668dfb497 Launcher restore state fixes:
am: 2100c78bd9

Change-Id: I8de4f0c98cff8764a764c06efeade9d6a26319dd
2016-09-08 21:41:36 +00:00
Sunny Goyal fb5096d07b Preventing a shortcut which requires permissions from being added to
homescreen

A shortcut can be added by any app as INSTALL_SHORTCUT is a normal
level permission. But the intent is actually launched by the launcher
app which can have other permission as well.

> When adding a shortcut from the broadcast, verify that the intent does
not require any permission
> When adding a shortcut using the two-step drop process, verify that
the source app also has the permission to create such a shortcut

Bug: 30778130
Change-Id: I710a490d69019dc25709db5a97020c20d9325007
2016-09-08 14:41:01 -07:00
Sunny Goyal add78abb98 Merge "Launcher restore state fixes:" into ub-launcher3-calgary-polish 2016-09-08 21:30:45 +00:00
Sunny Goyal 2100c78bd9 Launcher restore state fixes:
> Creating PendingRequestArgs to store generic request info across
activity instances
> Storing the CALL_PHONE request in PendingRequestArgs

> Handling onActivityResult only after the workspace has loaded.
onActivityResult sometimes modifies launcher db when removing empty
screens, and any add action is also deferred until bindComplete.
This simplifies this logic.

> Always binding the restored page irrespective of pending result.
Before starting a request activity (bind widget permission, or
widget config activity or shortcut picker), workspace commits the
pending screen id to the DB. Hence the restore page is valid when
restore is called (onResume loads with currentPage instead of
restored page)

Bug: 28573143
Change-Id: I34be603cbeb2145f5caf0d18e016f50029e07df8
2016-09-06 15:24:36 -07:00
Sunny Goyal 52851aa3fd Fixing topView not being considered in all places when calculating accessible
and focusable views

Bug: 30563273
Change-Id: I6253ce33ee5c328efdde2ea733029975b31e5eb8
2016-09-02 10:52:07 -07:00
Sunny Goyal 94b510cc68 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
2016-09-01 15:55:13 -07:00
Hyunyoung Song c8b997a21c Merge "ComponentName null check MUST proceed before creating ComponentKey." into ub-launcher3-calgary-polish 2016-08-31 18:30:00 +00:00
Tony Wickham def6e474da Use promisedIntent instead of intent when deep shortcuts are restored.
This ensures that the intent has the package corresponding to the
shortcut publisher, rather than a market intent. It also ensures that
the intent has the EXTRA_SHORTCUT_ID attached.

Bug: 31123204

Change-Id: I05d56396b629880322e915f52bfc0605b921b0b1
(cherry picked from commit fc02c1b446)
2016-08-30 00:09:11 +00:00
Tony Wickham fc02c1b446 Use promisedIntent instead of intent when deep shortcuts are restored.
This ensures that the intent has the package corresponding to the
shortcut publisher, rather than a market intent. It also ensures that
the intent has the EXTRA_SHORTCUT_ID attached.

Bug: 31123204

Change-Id: I05d56396b629880322e915f52bfc0605b921b0b1
2016-08-29 15:59:28 -07:00
Hyunyoung Song d3bf9803f5 ComponentName null check MUST proceed before creating ComponentKey.
Change-Id: I2460561b62d77d3f2f17dc2a7db765785b46a8c6
2016-08-29 14:43:53 -07:00
Sunny Goyal 2fb1356be6 Merge "Moving the scrim to draglayer" into ub-launcher3-calgary-polish 2016-08-25 22:49:24 +00:00
Sunny Goyal f3a09f9757 Starting the settings activity with same animation as wallpaper (and widgets tray)
Change-Id: I7744d50c9762200eb2ffea37d8435c9bc221c526
2016-08-25 09:46:39 -07:00
Sunny Goyal 65ceb5aa55 Moving the scrim to draglayer
> This causes the scrim to animate with the content on first launch
> Also removing the logic to disable scrim based on state. That
logic was only executing onResume which could lead to an invalid state

Bug: 30972956
Bug: 30576826

Change-Id: Ia8386b303ce260f69e3b3b93041226f409301a01
2016-08-23 19:04:23 -07:00
Sunny Goyal 112ce42926 Adding a resource pointer to the app name so that derived projects can
easily modify app name

Change-Id: I3f301e1b2ba38d0a45d220bb628dcfdf3906246c
2016-08-22 16:45:58 -07:00
Sunny Goyal e2b2fb79fc Merge "Adding support for pending widgets in AutoInstall layout" into ub-launcher3-calgary-polish 2016-08-17 23:02:42 +00:00
Sunny Goyal 86df138d9f Adding support for pending widgets in AutoInstall layout
> Pending widgets whill show a loading progress while the app
is being installed.
> Extra bind options can be defined using the tub tags
    <extra key="key-name" value="key-value" />
  These are sent as widget options when the widget is bound.
> If the widget has any config activity, it is not shown
> Required attributes:
   className, packageName, x, y, spanY, spanY & screen

Bug: 30279609
Change-Id: I1338618bfa5d86967339dffb68c12b1add6eb5d7
2016-08-16 12:37:29 -07:00
Sunny Goyal 06e21a2587 Moving the state changes during drag-n-drop from startDrag to onDragStart
This will allow drag controller to optinally defer drag, based on some
threshold, by simply deferring the callback onDragStart

Change-Id: I17c06a15e2092b9797c7e57529b12a53d2acae6e
2016-08-15 10:08:16 -07:00
Sunny Goyal 95f3d6ba2c Reloading workspace when the shortcuts permission changes
> Check for permission on every onResume
> If the permission is different than last known permission,
reload and rebind workspace.

Bug: 30789422
Change-Id: Idfa445815e29e2336505779545507d106b33a253
2016-08-10 17:00:15 -07:00
Tony Wickham 4efffc5ba6 Use shortcut disabled message if available.
Bug: 30681210
Change-Id: Ibb5fd58e5fc9557b63730bc1e3c3977133769466
2016-08-05 10:40:12 -07:00
Sunny Goyal f8d2a70e0f Merge "Adding quiet mode support for shortcuts" into ub-launcher3-calgary 2016-08-01 22:04:11 +00:00