Commit Graph

482 Commits

Author SHA1 Message Date
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
Sunny Goyal ee68816be8 Fixing homescreen getting blank when returning from the overlay
Change-Id: Ie11b92cd59c90e71b9b58eeede742ef0c5b28380
2016-02-26 08:47:21 -08:00
Sunny Goyal c86df470ab Adding overlay interaction support
> Sending unboundX to the overlay which is the total untranslated X and not just deltaX from last frame
> Handling overlay callback and translating workspace accordingly

Change-Id: I3bd8d9efac738e9ce131758f0e5ff1b9c1d6a8fc
2016-02-25 10:01:13 -08:00
Sunny Goyal 261194387b Revert "Reverting refactoring of Folder and FolderIcon to avoid dependencies breakage"
This reverts commit fc956e5a2a.

Change-Id: Ib3b5156b8fc3cad35c4634d61d5390c848ce1f93
2016-02-23 02:02:54 +00:00
Sunny Goyal bd822508e5 Deleting the WallpaperPicker code inside launcher.
Instead linking it to the packages/apps/WallpaperPicker project

Change-Id: Ib6830b180a22c22afece01e0a4f6e94e89d6452b
2016-02-18 15:09:21 -08:00
Sunny Goyal fc956e5a2a Reverting refactoring of Folder and FolderIcon to avoid dependencies breakage
Change-Id: Ifd0d717d70aff4c83c9eb5cba397d04500b2c869
2016-02-17 13:27:13 -08:00
Adam Cohen f9c184a619 Refactor FolderIcon to separate the preview effect into it's own class
-> Created com.android.launcher3.folder package to house most folder-related files
   (aside from the FolderInfo) which is more related to the model than the UI.

Change-Id: I767063e1e4c775c01a799a3bede30cd94ac48ade
2016-02-12 17:28:31 -08:00
Sunny Goyal 8ddb390914 Merge "Making some view properties exported. These will be visible in hierarchy viewer" into ub-launcher3-calgary 2016-02-11 22:08:45 +00:00
Sunny Goyal 7c50b31f57 resolve merge conflicts of 3826bab27e to ub-launcher3-calgary.
Change-Id: I14ff2d67de4ba97628bdf651602724f9f4989173
2016-02-10 12:27:51 -08:00
Sunny Goyal 4ffec48dec Making some view properties exported.
These will be visible in hierarchy viewer

Change-Id: I940724a7f61d67b8502d77be203a94875bc92668
2016-02-09 11:29:34 -08:00
Sunny Goyal 0ac7ede56a Merging search bar with all apps
Change-Id: I78577124cd3c05d52669c3e52b0294d6eb1d194d
2016-02-08 14:55:22 -08:00
Tony Wickham e0c3323656 Tweak spring-loaded workspace.
- No page indicators in spring-loaded mode
- Don’t move workspace up as high
- Scale workspace at 90% instead of 80% on phones
- Increase speed of workspace -> spring-loaded -> workspace
- Widgets were being scaled down twice when dragging from widget picker
- Don't scale up icons when dragging (scaling other stuff down is enough)
- Make scrim less dark and panels more transparent
- Thin white border around page instead of highlight when hovering

Change-Id: I963e91c20d4c0340480d165e0f3b8064783c0cb2
2016-02-08 11:37:19 -08:00
Sunny Goyal 13f682f74e Fixing some invalid checks and cleaning some redundant conditions
am: b740f59c7d

* commit 'b740f59c7d572d54402e3a74fb2a23c0f1b1af48':
  Fixing some invalid checks and cleaning some redundant conditions
2015-12-18 11:20:41 -08:00
Sunny Goyal b740f59c7d Fixing some invalid checks and cleaning some redundant conditions
Change-Id: I770ce2cc2eccbee105958634e81bbc9bc2e4cc48
2015-12-18 11:00:14 -08:00
Sunny Goyal 08442b84a2 Preserving the open folder state across rotation
Bug: 24900496
Change-Id: Ie1318b82b497957b99603b11ec338dd50d51b962
2015-12-08 14:14:26 -08:00
Tony Wickham 0f97b7874f Added config_springLoadWorkspace to enable/disable spring-loaded workspace.
- Added side hints back
- Only scale down icons if spring-loaded
- Only show App Info drop target if spring-loaded

Change-Id: I4b0dddccbe0e80b7ceb6b7266fc527f757744148
2015-12-04 14:56:54 -08:00
Tony Wickham 11c45f1141 Merge "Add appropriate (tiny) offset to widget drops so they land correctly." into ub-launcher3-burnaby-polish
am: 8db5d7ca60

* commit '8db5d7ca60e79f007bfce7952c15c74d0ee44bc0':
  Add appropriate (tiny) offset to widget drops so they land correctly.
2015-12-04 14:21:19 -08:00
Tony Wickham 8db5d7ca60 Merge "Add appropriate (tiny) offset to widget drops so they land correctly." into ub-launcher3-burnaby-polish 2015-12-04 22:14:36 +00:00
Tony Wickham 0593f348b9 Hide the focus indicator view when going to a fullscreen page.
am: 62b9b6054e

* commit '62b9b6054e46074f57ccf156a8663b4392cd82d9':
  Hide the focus indicator view when going to a fullscreen page.
2015-12-03 22:52:03 +00:00
Tony Wickham 62b9b6054e Hide the focus indicator view when going to a fullscreen page.
Bug: 25649853
Change-Id: I9f2f221020548b48d816924a1803a1a70d11c412
2015-12-03 14:47:52 -08:00
Tony Wickham 580ff475e0 Fullscreen pages (e.g. Now) are focusable via keyboard.
am: 0fa5ada226

* commit '0fa5ada2261a29ad9be7195c8cdb8cb50bdd0742':
  Fullscreen pages (e.g. Now) are focusable via keyboard.
2015-12-03 22:34:43 +00:00
Tony Wickham 0fa5ada226 Fullscreen pages (e.g. Now) are focusable via keyboard.
Change-Id: I962551651aeb9ac7b57bb51b195adc3140db30d8
2015-12-03 14:27:55 -08:00
Tony Wickham a501d49a6a Add appropriate (tiny) offset to widget drops so they land correctly.
Also removed some unused parameters I found on the way.

Bug: 25191623
Change-Id: Ib9a30db106467c114cc8b54a5b13ed3e88162d56
2015-12-03 11:54:13 -08:00
Tony Wickham ff6a81508f Merge "Disallow scrolling if workspace is in transition." into ub-launcher3-burnaby-polish
am: ac929f4ad8

* commit 'ac929f4ad80fabeddfae51e30ec5d7ff434652c8':
  Disallow scrolling if workspace is in transition.
2015-12-02 23:18:22 +00:00
Tony Wickham ac929f4ad8 Merge "Disallow scrolling if workspace is in transition." into ub-launcher3-burnaby-polish 2015-12-02 23:11:09 +00:00
Sunny Goyal cc4c22008c Adding margin to Drag layer instead of checking for right insets at every place
am: 9326461652

* commit '9326461652c36c2ddd888d1452cf7f075a391868':
  Adding margin to Drag layer instead of checking for right insets at every place
2015-12-01 22:49:42 +00:00
Sunny Goyal 9326461652 Adding margin to Drag layer instead of checking for right insets at every place
Bug: 25692432
Change-Id: I853f41a17c54b30b7772b9fd8556d9465de84752
2015-12-01 14:43:32 -08:00
Tony Wickham a5209e33fc Disallow scrolling if workspace is in transition.
Because going to overview mode scales down the workspace, it was
thinking the touch was moving even though your finger was still. If
the "movement" was large enough, it was treated as a scroll, causing
jank. This was especially prevalent on tablets due to their size.

Bug: 25779718
Change-Id: Idb7833e0087bd24ca840f6afc451bf221f6bc047
2015-11-19 12:45:30 -08:00
Sunny Goyal 4f63c76bfe Merge "Refactoring WallpaperOffsetInterpolator to a new file Removing some us unused methods" into ub-launcher3-master 2015-10-30 00:33:46 +00:00
Sunny Goyal d249748abf Making all provider calls using content resolver.
This will allow us to easily move db creation out of onCreate

Change-Id: Idd949624b0a9c95e4451e48db7764b7b7922c40a
2015-10-20 11:04:44 -07:00
Winson 47ecbb85f3 resolve merge conflicts of fb4014daa3 to ub-launcher3-master.
Change-Id: I6d84a7f3fad757bf139b6ea0001ac6ab88850996
2015-10-16 16:47:49 -07:00
Winson Chung fb4014daa3 Merge "Fix issue with source params not reporting predicted apps." into ub-launcher3-burnaby-polish 2015-10-16 22:20:14 +00:00
Winson a49b1f75cd Fix issue with source params not reporting predicted apps.
Bug: 25020080
Change-Id: Iaa67ccbb3e3a6c264aaa4fa3c915faad8a69bbbc
2015-10-16 14:57:24 -07:00
Sunny Goyal 9eba1fd75e Refactoring WallpaperOffsetInterpolator to a new file
Removing some us unused methods

Change-Id: Ife790e5ca6848fa13dc3fab1bba1e6220bf83743
2015-10-16 09:02:25 -07:00
Tony Wickham 9ccb94b6e4 resolved conflicts for a8709ddb to ub-launcher3-master
Change-Id: I172395e6e172914627b6dec721070a66520557b1
2015-10-15 11:18:26 -07:00
Tony Wickham a8709ddbbf Merge "Fix "The specified child already has a parent" IllegalStateException." into ub-launcher3-burnaby-polish 2015-10-15 18:00:59 +00:00
Tony Wickham a0628cc521 Fix "The specified child already has a parent" IllegalStateException.
The problem was due to a race condition between removing a prebound
widget view from the drag layer and adding the same view to the
workspace upon dropping it; if you let go of the widget immediately
after picking it up, the latter happened before the former.

Specifically, the flow was: long-click a widget --> drop --> remove
the view from the drag layer if it's not null (it is, so nothing
happens) --> the view is finally bound/inflated and added to the drag
layer --> add the view to the workspace --> already has a parent.

There are actually 2 problems here: one is that the bind/inflate is
asynchronous, and can therefore happen after dropping the widget view
being inflated, and the other is that the view is added to the
workspace even though the transition has barely started (we usually
ignore drops if the transition is less than half complete). It turns
out that this second problem was also due to a race condition, this
time between dropping a widget or app onto the workspace and calling
LauncherStateTransitionAnimation.dispatchOnLauncherTransitionStart().
If the drop happened before the dispatch, as in the case of the
crash, then the drop was accepted because the transition progress was
still 1.0 from the previous transition.

I fixed the first problem by removing the drag layer widget view
in Launcher where it is potentially used instead of Workspace. And I
fixed the second problem by setting mTransitionProgress to 0 in
Workspace.onLauncherTransitionPrepare().

I also added some debugging logs.

Bug: 23896857
Change-Id: I66944e6d3f23b70dea15f7fb01af0763a1bfcbda
2015-10-15 10:07:06 -07:00
Sunny Goyal b5772c8b4f am 21d89fbf: Merge "Fixing overscroll effect when the navigation bar is opaque" into ub-launcher3-burnaby-polish
* commit '21d89fbf8c444c64a4c85d25a25bbe3b79719de9':
  Fixing overscroll effect when the navigation bar is opaque
2015-10-07 20:45:51 +00:00
Sunny Goyal 21d89fbf8c Merge "Fixing overscroll effect when the navigation bar is opaque" into ub-launcher3-burnaby-polish 2015-10-07 17:22:44 +00:00
Sunny Goyal 77ccb8d03c Removing some unused resources
Change-Id: I6aa8a2d7eb4599ed2351c54fe0885839b5ba4521
2015-10-05 14:14:19 -07:00
Sunny Goyal d1a0e8b5c8 Jailing the saved instance state of all the dynamically generated views
Using itemId instead of generating a new id for each item. This is because
if the process gets killed, View.generateId will get reset but we will still
receive the generated item id map in onRestoreInstance. This will cause
conflicts with newly generated item ids.

We wrap all the generated homescreen views inside a single sparse array. This
ensures that we do not cause any conflict with dynamically generated views in
other parts of the UI.

Bug: 16840760
Change-Id: I6fe69c2e1dd463402f51222715fae31b9d4dd240
2015-10-05 18:25:49 +00:00
Sunny Goyal a13654529c Adding some information in bug reports
> Dumping workspace items
  > Dumping loader logs for crashes and data deletion
  > Removing unnecessary log dumps

Change-Id: Ia320988c2e3665e4d605d6e88bca77738e749273
2015-10-01 15:48:35 -07:00
Tony Wickham 778c0b020d Scale down drag views in spring-loaded workspace.
Bug: 24190193
Change-Id: Ic490fc3f46702c3d5360e869c4172f31700085a1
2015-10-01 11:08:36 -07:00
Tony Wickham e038562675 Create widget resize frame after spring loaded workspace has exited.
Before, the resize frame was created as soon as a widget was dropped,
but this caused it to be in the wrong spot after the spring loaded
mode exited. Instead, we should wait until the workspace is back to
normal before creating the resize frame.

Bug: 24192073

Change-Id: I8d87febcc4ec7e3c44d50135184c3a837d7cd960
2015-09-29 18:22:05 -07:00
Tony Wickham a3b240d32b Merge "Drags originating in Folder exit spring loaded mode when completed." into ub-launcher3-master 2015-09-30 00:01:13 +00:00
Sunny Goyal c5c723bbe4 Fixing string.format missed in previous conflict resolution
Change-Id: Ic71ee97c319bb9141f70acf75f2fe0e40565f692
2015-09-25 12:07:40 -07:00