Commit Graph

527 Commits

Author SHA1 Message Date
Sunny Goyal e49a97aba0 Changing isExternalDragWidget to isDragWidget as workspace goes to
modal state even when dragging from workspace

Bug: 29900481
Change-Id: I60ce6073b1c06ed19c75a341f9b73f6a147be889
2016-07-07 15:28:07 -07:00
Sunny Goyal 27731e4d7d Merge "Fixing accessibility drag and drop Since the page's accessibility flag is updated when entering drag mode, it does not need to be updated on state change" into ub-launcher3-calgary 2016-07-07 07:34:38 +00:00
Hyunyoung Song 230b2b7f44 Second workspace page icons should not show up when all apps is shown in landscape.
b/29931405

> Also some method names to setTranslation -> setTranslationAndAlpha to
match its implementation.

Change-Id: Icb6ec5df8a267a9024803c70a694ea9b76e5e34d
2016-07-06 15:03:59 -07:00
Sunny Goyal d8d19938e4 Fixing accessibility drag and drop
Since the page's accessibility flag is updated when entering
drag mode, it does not need to be updated on state change

Bug: 29581071
Change-Id: I1a876b4e8530601cb9bf25d097ea37780b525610
2016-07-06 11:46:36 -07:00
Tony Wickham 1bce7fd342 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
2016-06-29 17:48:46 -07:00
Sunny Goyal 6d64d88b0f Fixing alpha of workspace components being changed at too many places
> Hotseat alpha is changed by all-apps controller, workspaceStateTransition
and overlay transition. Created a 3 state alpha for hotseat and pageIndicator
> Simplified the page-background and alpha animation during state transition
by moving the code in the same if block
> Disabling partial page fading when pull-up all apps is enabled. This fixes
the bug when pressing home with all-apps opened causes other pages to disappear.

Change-Id: I4a75b89af12b48e9fbc49514e641fd424d07199c
2016-06-27 10:43:04 -07:00
Sunny Goyal 653bfcc743 Merge "Accessibility fixes and updates" into ub-launcher3-calgary 2016-06-22 21:34:06 +00:00
Sunny Goyal d0a6ae7f64 Accessibility fixes and updates
> Adding custom actions on the page indicator to go to overview mode
> Disabling custom actions on the first page
> Disabling 'move page left' on the second page

Change-Id: Ib8154f70cb3f93e663a881357c6c46c33253887f
2016-06-22 14:17:34 -07:00
Tony Wickham ec1b1c542c Merge "Add support for launcher shortcuts." into ub-launcher3-calgary 2016-06-22 20:35:31 +00:00
Tony Wickham bfbf7f9f4a Add support for launcher shortcuts.
- This CL has no UI but provides the necessary backing for one.
- Adds new item type: ITEM_TYPE_DEEP_SHORTCUT, to distinguish from
  ITEM_TYPE_SHORTCUT. We can reconsider these names.
- Adds ShortcutCache, using LruCache for up to 30 dynamic shortcuts
  (pinned shortcuts are always cached in a HashMap).
- DeepShortcutManager queries for shortcuts and other things like
  pin them. In a future CL it will use the cache, but for now it
  simply makes an RPC for all queries.
- LauncherModel maintains counts for pinned shortcuts, pinning and
  unpinning when counts reach 1 or 0, respectively.
- LauncherModel maintains a map of components to lists of shortcut ids,
  which Launcher gets a copy of after it is changed in the background.
  This will allow us to know how many shortcuts an app has immediately,
  and query for details as the UI is animating.

Change-Id: Ic526f374dd10d72a261bae67f07f098fca8d8bca
2016-06-21 15:49:16 -07:00
Sunny Goyal bfa8fbd782 Maintaining separate alpha for x and y translations
Bug: 29504823
Change-Id: I6150fec43653c8da4c5841ddbd6c5de739f205b8
2016-06-20 10:54:50 -07:00
Sunny Goyal ae50284e0a Moving LauncherAccessibilityDelegate to Launcher to associate it with
activity lifecycle.

Change-Id: Ib815505677fa7ed74bdcfe7141b1d9bea5d7143a
2016-06-17 08:44:51 -07:00
Sunny Goyal bb011dad4e Adding a flag (enabled by default) to remove the all-apps button.
All apps can still be opened by clicking the caret.

Bug: 29398447
Change-Id: I61f1b05cea83a0a49d7cc16c518c5419618ba779
2016-06-17 08:17:22 -07:00
Sunny Goyal 0af8af3a60 Merge "Adding a DB update path to handle the QSB position change" into ub-launcher3-calgary 2016-06-16 19:34:20 +00:00
Hyunyoung Song 7d2fc8120e Add caret shaped all app pull up handle to page indicator.
b/28917826

> PageIndicator is also added in landscape
> Touch delegate allows the active touch area to be 36dp

Change-Id: If00f45fc88a13cd5a6759d771313439eb58561e3
2016-06-15 12:51:30 -07:00
Sunny Goyal a9e2f5abb3 Adding a DB update path to handle the QSB position change
> Renamed the id of 1st screen to 0 and making space for the QSB
by running the grid migration task.
> Added a feature flag to easily disable the QSB-in-workspace behavior

Change-Id: Ie3369f0d4433d916e9d6215d414770d4333f3e26
2016-06-15 10:03:12 -07:00
Sunny Goyal a92e0dfa0c Unifying the workspace translation logic
Change-Id: I82430734c222d43222763fc6edcadac33dc3e076
2016-06-10 08:55:31 -07:00
Sunny Goyal 9443ef5ec6 Adding support for workspace state change listener
Change-Id: Id0a4bcf345ce928544f5d406f37252a00d1dc7af
2016-06-07 16:21:47 -07:00
Sunny Goyal 2a5b356375 Merge "Allowing the first screen to expand to the screen edge" into ub-launcher3-calgary 2016-06-07 17:10:33 +00:00
Sunny Goyal 7c786f75d1 Allowing the first screen to expand to the screen edge
This allows the QSB to extend all the way to the edge
Change-Id: I43c6e21e44fef7fffe6fb12b7afb95549b68679f
2016-06-06 16:41:57 -07:00
Sunny Goyal 47328fd53f Removing the SearchDropTarget bar as it no longer contains the QSB
> Renaming it to simply DropTargetBar
> Moving AppInfo to the top bar as well
> The workspace pages will extend to the top edge (minus some padding).
Since the QSB is no longer displayed on top of every page, there is
no reason to reserve the space.
> In spring-loaded mode, the workspace cell layout will scale enough
to make room for the drop target bar at the top

Change-Id: I2baf607310335dd576c9d9fcbb75ab708f47ac03
2016-06-06 16:15:46 -07:00
Tony Wickham 034bc3c01c Animate size and position of page indicator when adding/removing page
Change-Id: I85f37a4e0aeb8c3fd0bd8da3b90338d0333a84d5
2016-06-01 17:59:37 -07:00
Tony Wickham d4b28d2e1b Only show workspace page indicator when scrolling or in spring-loaded mode.
- Stop showing indicator when resuming or ending transitions.
- In spring-loaded mode, prevent page indicator from auto-hiding.

Change-Id: I87070d2d8f46cf491e60380aed5540196f2fbba3
2016-05-31 17:00:41 -07:00
Sunny Goyal da4fe1a624 Moving the QSB to the workspace grid.
The QSB will only be resent on the first screen of the workspace
covering the full width of the first row. If will not be movable.
The first screen of the workspace will not be movable.
The searchDropTargetBar no longer contains the QSB (it can be
renamed in aseparate cl).

Refactoring all QSB related logic by moving it to a custom view
inflated only using xml.
Change-Id: Icb4fd6eb855df1af15f685961c38351bf4fd4f4a
2016-05-27 18:23:29 -07:00
Sunny Goyal 6d02c7a033 Adding some UI tests
> Launcher app from all-apps
> Drag icon to all-apps and launch it
> Add widget from widget tray

Change-Id: I6bd6128a7b560a23a887d1fb40bfcda25b9b02e7
2016-05-26 17:20:22 -07:00
Sunny Goyal c487bd34ac Making page indicator an abstract class and implementing some common methods.
Change-Id: I06613428c54f1f086090580db8242cf81f7fb128
2016-05-20 12:49:59 -07:00
Tony Wickham ddb77003e7 Missed one more page indicator null check.
Hopefully this is the last one.

Change-Id: I1af4f7058834fe0ba60ccc8752a6bf0df64be473
2016-05-19 12:45:40 -07:00
Tony Wickham fea0a5f629 Add more null checks for page indicators.
Change-Id: Id86d4827c9079abfb236f956e531f0e29edfc54e
2016-05-19 11:27:55 -07:00
Sunny Goyal c64cfdd8fa Updating the folder page indicator to be more like the
framework page indicator (used in quick settings)

The active page is indicated with the accent color. During scroll
the active indicator expands to 2 dots corresponding to the visible pages.

Change-Id: Iaf57836b642cf87e5eed98048ecca7dd8e7643a4
2016-05-18 17:50:34 -07:00
Tony Wickham ae00781428 Merge "Add PageIndicator interface and custom PageIndicatorLine view." into ub-launcher3-calgary 2016-05-18 02:09:02 +00:00
Tony Wickham f549dab31d Add PageIndicator interface and custom PageIndicatorLine view.
- The current PageIndicator has been renamed to PageIndicatorDots
  and PageIndicatorMarker has been renamed to PageIndicatorDot.
- PageIndicatorDots and PageIndicatorLine implement PageIndicator.
- PageIndicatorLine uses scroll progress and number of pages to
  draw a line of the correct size and position.
- All of these page indicator files are now in a pageindicators package.

Bug: 27227498

Change-Id: I9230d2e0600ce583989bd31d0b0e252b148d15c2
2016-05-17 18:53:57 -07:00
Sunny Goyal aaf7d1d13b instead of unbinding items from the loader, unregistering listeners
in activity.onDestroy()

Bug: 28740269
Change-Id: I6bf2ad6aca43970fd10cfbcc113e609c227e07bf
2016-05-17 14:42:10 -07:00
Sunny Goyal 87af0fded6 Removing reference of hostView from LauncherAppWidgetInfo
LauncherAppWidgetInfo is a model item and does not need to reference
a view. Removing this dependency will allow cleaning up the
item unbinding logic

Bug: 28740269
Change-Id: I11fc2e2500b8fe29d157eefe74c70b1decdfd08d
2016-05-16 14:58:20 -07:00
Tony Wickham f898b970cc Call onLauncherTransitionPrepare() and End() from pinch.
This makes the pinch transition more consistent with other transitions.
One immediate benefit of this is that it updates adjacent overview
panels during pinch, regardless of whether they are completely visible.

Previously the adjacent panels' alphas weren't always reset to 0.
Specifically, if you made a small pinch from workspace, which
canceled and went back to workspace, adjacent pages retained a
slightly visible panel.

Bug: 27676309
Change-Id: I7e79fddec31cd649e0811e4524b9a9a501c627f9
2016-05-12 16:44:22 -07:00
Hyunyoung Song aa95365427 Refactor UserEventDispatcher (1/2)
b/28269657

Change-Id: I1083e6f73f42ac1986428a39c6b532050e595ac6
2016-04-19 18:30:24 -07:00
Hyunyoung Song ddec1c739e Refactor UserEventLogging, Add predictedRank, replace Bundle with Proto
b/26494415
- Removed bundle object that became redundant now that we have LauncherEvent proto
- Combined Stats and UserEventLogger as they are effectively doing same thing
- Removed parent field inside Target
- added predictedRank target inside Target

b/27967359
- make com.android.launcher3.action.LAUNCH broadcast explicit
Later CL: finish packageName/intent/componentHash/predictedRank fields

Change-Id: I441fb46c834f73e58a4d2324e8da7971e8713ec8
2016-04-13 10:58:33 -07:00
Sunny Goyal 5be3e4cc52 Giving proper workspace description when the launcher is not loaded.
Bug: 27326504
Change-Id: Ifc30221f756d75064a4baf5f3bfc71b8f590b4b1
2016-04-12 16:11:59 -07:00
Sunny Goyal c52ba71005 Fixing folder icon not getting redrawn when the contents change
> Removing parent from ItemOperator as inconsistant values were
being passed in workspace and folderPagedView
> Fixing itemChanged causing multiple redraws, by passing a
'animate' parameter to explicitely request animation

Bug:27740161
Bug:28015426

Change-Id: Ide7b266bde9aad5f450a3f808a59182fe01a5110
2016-04-06 12:46:36 -07:00
Adam Cohen f172b747c2 Fix a couple polish bugs with new folder previews
-> Don't reuse the same background object for the folder create preview
   since this can cause interruptions in the animations for previous
   creation previews.
-> When drawing the background to preview creation, don't draw the stroke
   above the icon since the icon is not yet contained by the folder.

Change-Id: Ib666dc2453df465b342c02f3bd109b553a769dcc
2016-04-01 11:50:31 -07:00
Sunny Goyal d5bd67dfa9 Adding support for result callback when starting uninstall-application activity
Change-Id: Ieaca4fbd0ae0156f24c8863ccbef61d4d6d30ba1
2016-03-22 13:57:58 -07:00
Sunny Goyal 470f900fce Removing some unused imports
Change-Id: I83962e467e3357db536a3e5a4a5c3071cc1268ab
2016-03-21 13:02:29 -07:00
Sunny Goyal ef0ac88e0b Merge "Removing dependency on wallpaper size settings from launcher" into ub-launcher3-calgary 2016-03-21 18:32:41 +00:00
Sunny Goyal 3bbbabc54a 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
2016-03-18 15:13:28 -07:00
Sunny Goyal 6f866095c0 Removing dependency on wallpaper size settings from launcher
> Moving wallpaper desired width calculation to xml

Bug: 14470153
Change-Id: I8803af158861507a40e5d55e9aa6d515be47eefa
2016-03-17 17:04:37 -07:00
Tony Wickham 95cdb3a021 Remove scrim on highlighted spring-loaded panel.
Bug: 27135377
Change-Id: I470955ed082a45ae7dc5f8fdd1f3decb2b573dbc
2016-03-16 11:09:09 -07:00
Sunny Goyal 2e1efb480a Changing the widget loading strategy
Widget is loaded only when the user enters the overview mode and we keep
the list updated as long as the user is in the overview mode. Once the user
leaves the overview mode, we stop responding to widget updates

Bug: 26077457
Change-Id: I9e4904b8f1300bfe0d77e2bc5f59aa6963fad8d1
2016-03-09 20:21:22 -08:00
Tony Wickham dadb304b46 Pinch to zoom out into overview mode.
There are 3 classes coordinating the gesture: PinchToOverviewListener,
PinchThresholdManager, and PinchAnimationManager.
- PTOL listens for the pinch gesture on DragLayer.
- When a pinch is detected, the PTOL keeps track of the interpolated
  progress and passes it along to both the PTM and PAM.
- The PTM uses the progress to determine whether a new threshold has
  been passed, and tells the PAM to animate it if so.
- The PAM uses the progress to animate things like workspace scale
  throughout the pinch.
- If the pinch ends early, the PTOL uses the last passed threshold to
  determine whether to animate to workspace or overview, and tells
  PAM to perform the animation at the same velocity as the pinch.

Bug: 24414635
Change-Id: I9e53706c705f8b2982409bf7c223d8d0e9618bf0
2016-03-04 16:52:54 -08:00
Adam Cohen efca0279eb Switch all folder preview rendering to be programmatic (ie. no assets)
-> Refactored the preview background rendering to be much more self-contained.
   This cleans up a lot of code in the CellLayout, and keeps the logic in the
   right place.
-> We switch to software rendering for performance and compatibility reasons.
-> Removed all assets.
-> FolderIcon accept animation includes animation of the clipped region.
-> 1:1 hand-off of drawing of the FolderIcon background between the FolderIcon
   and the CellLayout. Unfortunately, CellLayout rendering is still required
   to work around clipping issues (due to use of software layer). We also
   need this to support folder creation feedback.

Change-Id: Ib8f7fa6359dfedff8145f38dd50ba03849ca0d51
2016-03-03 09:24:45 -08:00
Sunny Goyal e670159cfe Merge "Fixing homescreen getting blank when returning from the overlay" into ub-launcher3-calgary 2016-03-01 01:07:39 +00:00
Sunny Goyal 061380a04d Fixing scrollTo getting called even though the gesture was handled by an overlay
Change-Id: Ia46c4ef3db8a3ae4fa615625b7b983d7e461c797
2016-02-29 15:15:39 -08:00