Commit Graph

308 Commits

Author SHA1 Message Date
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
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
2ef6abc091 Merge "Skip to the end of the folder open animation in battery saver mode." into ub-launcher3-burnaby-polish
am: 6e83dc4031

* commit '6e83dc4031b78ac6e65102b2d936e9e769686fec':
  Skip to the end of the folder open animation in battery saver mode.
2015-11-25 00:06:14 +00:00
Tony Wickham
112ac95571 Skip to the end of the folder open animation in battery saver mode.
Bug: 25666809
Change-Id: I867d56a34fc5e0ad6aaabd8b6df47be05ec31966
2015-11-12 12:51:06 -08:00
Tony Wickham
a71391a5b1 Don\'t add offset to CellLayout\'s fullscreen children.
am: 26b0142543

* commit '26b01425436277447fe24d01ad50d9e64f82109e':
  Don't add offset to CellLayout's fullscreen children.
2015-11-10 23:38:00 +00:00
Tony Wickham
26b0142543 Don't add offset to CellLayout's fullscreen children.
Bug: 25411084
Change-Id: Ifbcd0a53cf04a7fc29386f4f09aaf7f972e7354a
2015-11-10 14:49:36 -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
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
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
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
9d4380856f resolved conflicts for e78e3d73 to ub-launcher3-master
Change-Id: Idc119a57e21cf6016ee0fd91866839301db072d6
2015-09-25 11:50:16 -07:00
Sunny Goyal
e78e3d734b Accessibility fixes
1) Use a different content description for temporary new page
2) Use different accessibility description for add widget toast
3) Announce when an item is deleted
4) Announce when hovering over a drop target
5) Announce state during drag-n-drop and widget resize (similar to seekbar)

Bug: 23573321, 24057944
Change-Id: Icabb317625e70c78e11c0b4f99b9339172d93594
2015-09-25 10:22:47 -07:00
Tony Wickham
0c29decbfd am 1cdb6d06: onDropChild() always marks the cell as occupied.
* commit '1cdb6d066123cb9b2f9ea2c66246b29bf1dd9cf2':
  onDropChild() always marks the cell as occupied.
2015-09-17 19:54:10 +00:00
Tony Wickham
1cdb6d0661 onDropChild() always marks the cell as occupied.
Bug: 24164487
Change-Id: I11ef638a56b638ee82c3cd748340995970fc7e32
2015-09-17 19:48:08 +00:00
Tony Wickham
869306140d When placing a widget, go to a page with enough space.
The search for this page starts at the current one and
continues to the right (on LTR) until a page is found that
can accomodate the widget, taking possible resizing and
reordering into account.

Bug: 11338870
Change-Id: I2e9a310eb8f74024dca9150f55a525e1309c2f07
2015-09-09 17:08:50 -07:00
Tony Wickham
489fc56df8 Don't repeat ReorderPreviewAnimation for folders/widgets in power save mode.
Since power save mode (introduced in Lollipop, also known as battery saver)
disables animations, the ReorderPreviewAnimation looks bad - instead of
displaced folders subtly and smoothly moving up and down, they violently jump
between up and down positions in rapid succession. Setting the animation to not
repeat in this case avoids this issue.

Bug: 23675090
Change-Id: I8149610af75e7023dca28a942b3447228083cd33
(cherry picked from commit 9e0702f4af)
2015-09-04 21:57:25 +00:00
Tony Wickham
9e0702f4af Don't repeat ReorderPreviewAnimation for folders/widgets in power save mode.
Since power save mode (introduced in Lollipop, also known as battery saver)
disables animations, the ReorderPreviewAnimation looks bad - instead of
displaced folders subtly and smoothly moving up and down, they violently jump
between up and down positions in rapid succession. Setting the animation to not
repeat in this case avoids this issue.

Bug: 23675090
Change-Id: I8149610af75e7023dca28a942b3447228083cd33
2015-09-02 15:06:00 -07:00
Sunny Goyal
e2fd14b9f6 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.

Change-Id: I6fe69c2e1dd463402f51222715fae31b9d4dd240
2015-08-27 17:53:28 -07:00
Mady Mellor
bb83520a62 Refactor StylusEventHelper to provide onButtonPress/Release methods
This will enable an easier migration to the new M APIs for identifying
button presses from stylus / other tools.

Bug: 20430722
Change-Id: I41cfa6eff8d76bb83cf1bdaf6623ec1092ed554c
2015-08-21 11:18:14 -07:00
Vadim Tryshev
fedca43d39 Moving drag-drop related code into a separate package.
This is per an earlier CR comment "we should probably move all this code to its own package (launcher3.dragndrop) in a separate cl".

I'm not moving DragSource because it's referred from gsa code.

Bug: 22609426
Change-Id: Ia7204dab99c0c395c66b77143a2d60411153f5f3
2015-08-20 07:45:57 -07:00
Sunny Goyal
106bf64f4a Some cleanup around drag and drop
> Instead of resizing the rect for dragoutline in onDrow, store the resized rect itself
 > Remove unnecessary inverse matrix calculation

Change-Id: If13c3c5aaecba5a1d3a4f5d39199ed82e9662c62
2015-08-13 16:54:58 -07:00
Sunny Goyal
3c938a7e0d resolved conflicts for merge of 3f7550c1 to ub-launcher3-master
Change-Id: I3bb155473d48832e496a8983f84c20e6e935fa41
2015-08-04 10:33:30 -07:00
Sunny Goyal
233ee964a9 Calculating widget minSpans and spans statically/independent of orientation
> Filtering the widget list and excluding widgets which dont fit the grid
 > setting minSpans for the widget item when binding.

Bug: 22541314
Bug: 22559137
Change-Id: Ieda48b56c95bee0c7ec71dd691af7e23e2d43db6
2015-08-03 16:39:49 -07:00
Sunny Goyal
4ac89e2444 Merge "Several animation calls cleanup" into ub-launcher3-master 2015-08-03 19:23:16 +00:00
Winson Chung
2285b30003 am ec70312d: Merge "Fixing issue with flash during overview transition." into ub-launcher3-burnaby
* commit 'ec70312dea4083416d2d132ea8853455b0dec616':
  Fixing issue with flash during overview transition.
2015-07-31 20:09:03 +00:00
Sunny Goyal
5d2fc32e6d Several animation calls cleanup
> Using View property instead of strings to avoid extra reflection step
> Using ViewPropertyAnimator when several properties are being animated

Change-Id: I41625643b38b70bac11e2c81d18058ec878d73bd
2015-07-31 13:07:14 -07:00
Winson Chung
e8f1d047b1 Fixing issue with flash during overview transition.
- This is due to the TransitionDrawable which does not actually
  start an animation until it is first drawn.  This workaround
  will just immediately reset the transition if it is not currently
  visible instead of animating (which is actually deferred until
  the next animation into overview mode).

Bug: 22414257
Change-Id: Id481303d0c99a20c1d16396c024ab50303f45576
2015-07-31 12:59:11 -07:00
Sunny Goyal
5e758cae9a Merge "Changing the dogfood check to a static boolean to better handle proguard optimizations" into ub-launcher3-master 2015-07-28 19:37:00 +00:00
Sunny Goyal
05be6b7649 am b04136b4: Merge "Adding minSpanX and minSpanY for all the launcher widgets" into ub-launcher3-burnaby
* commit 'b04136b4714a0d9afddab6a70045f4f4f7fa1ee4':
  Adding minSpanX and minSpanY for all the launcher widgets
2015-07-17 19:06:46 +00:00
Sunny Goyal
3a30cfeb7c Adding minSpanX and minSpanY for all the launcher widgets
Bug: 22353460
Change-Id: Id4450dee42a83e4603dcd56e1c4dec2b0e405858
2015-07-17 11:10:05 -07:00
Sunny Goyal
6c56c68555 Changing the dogfood check to a static boolean to better handle proguard optimizations
Change-Id: I892b88ce1a007fafc23a73ad4193c5c4aa411d1b
2015-07-16 14:09:53 -07:00
Sunny Goyal
aa8ef119f1 Refactoring ItemInfo
> Changing dragObject to ItemInfo
> Removing dropPos which is always null
> Removing requiresDbUpdate which is only used in CellLayout

Change-Id: I753ddaae0880c8a9bfee5a1266095ff34610284a
2015-06-30 10:26:49 -07:00
Sunny Goyal
4d113a5ff4 Using material style overscroll effect for workspace and folders
Bug: 21335369
Change-Id: I53cc6edfa87334b9326f1dedd90c3e2222beade5
2015-06-19 19:53:34 +00:00
Mady Mellor
19b1bad239 Merge "Stylus support: creating and setting listeners for stylus button press" into ub-launcher3-burnaby 2015-06-03 16:26:35 +00:00
Mady Mellor
ef044dd380 Stylus support: creating and setting listeners for stylus button press
This updates almost(*) all locations that use a long press listener to
also set a custom touch listener that recognizes the stylus button press
action.

The stylus button press action is: when a stylus touches a view while the
primary stylus button is pressed which may occur on a DOWN or MOVE event.

*The location this is *not* enabled for is: Longpress to enter "overview"
mode -- this isn't really a selection or drag n drop action; it is also
easy to accidentally do this while using the stylus gesture to drag n drop
items which is not an ideal interaction. Also not set for the "cling" that
demonstrates this.

Bug: 20430722
Change-Id: I9343f143261a7b4fada9afca28b8a11a60dbecca
2015-06-02 15:35:07 -07:00
Sunny Goyal
316490e636 Removing some synthetic method creation
> Make package-private and @Thunk all private methods and constructors accessed from inner classes.

Change-Id: Ie5913860a0c33e48e9bf68f9b5b1699f64c2f174
2015-06-02 10:04:59 -07:00
Sunny Goyal
58376925f9 Fixing page background not displayed when dragging from all apps
> Adding empty page synchronously, instead of waiting for a frame
> Changing launcher state from widgets screen in the same frame, similar to all apps
> Removing DragEnforcer, and moving that logic in side the workspace, disabled by a flag
> Using first page to get page bounds in drag layer, as last page may not have been measured

Change-Id: I172ba4e5ce44648ac55402d49994542c6e10f101
2015-05-27 17:50:35 -07:00
Sunny Goyal
c6205603ef Creating landscape and portrait device profiles at app initialization
Change-Id: Ide9d007adc36b348e19b05cdf49e87f8b02db60e
2015-05-22 08:46:41 -07:00
Sunny Goyal
2805e639cd Animating workspace active background change
> Removing workspace_overscroll_drawable_padding which is always 0

Change-Id: I89900738371458a6eb7cbfee215d98b267d6a0b0
2015-05-21 16:26:15 -07:00
Adam Cohen
2e6da1539b Refactoring DeviceProfile
-> Pulling out the parts of device profile which can (and need to be)
   initialized and accessed without access to an Activity context,
   ie. the invariant bits.
-> The invariant bits are stored in InvariantDeviceProfile which is
   initialized statically from LauncherAppState.
-> The DeviceProfile contains the Activity context-dependent bits,
   and we will create one of these for each Activity instance, and
   this instance is accessed through the Launcher activity.
-> It's possible that we can continue to refactor this such that
   all appropriate dimensions can be computed without an Activity
   context (by only specifying orientation). This would be an
   extension of this CL and allow us to know exactly how launcher
   will look in both orientations from any context.

Sets the stage for some improvements around b/19514688

Change-Id: Ia7daccf14d8ca2b9cb340b8780b684769e9f1892
2015-05-21 16:16:40 -07:00
Sunny Goyal
20812e9640 Merge "Removing some unused functionalities" into ub-launcher3-burnaby 2015-05-20 22:35:49 +00:00
Sunny Goyal
f3a21c8ca2 Merge "Moving LauncherAccessibilityDelegate to accessibility package" into ub-launcher3-burnaby 2015-05-20 04:15:34 +00:00
Sunny Goyal
0573977143 Removing some unused functionalities
> Removing obsolete progrard rules
> Removing BackgroundAlphaMultiplier from CellLayout, which is always 1
> Removign otiline animation from workspace. This animation never runs,
as it is called during startReordeing which always happens when
overview mode (workspaceInModalState() is true)

Change-Id: I43219e41ea188771bc818988c1bcbd523f28cba6
2015-05-19 20:03:06 -07:00
Sunny Goyal
83a8f042ad Moving LauncherAccessibilityDelegate to accessibility package
Change-Id: I510204a5a12abf2da2757f3e3f8b0e8869a6b04a
2015-05-19 12:52:30 -07:00
Sunny Goyal
4b6eb26950 Adding drop shadow effect in allapps
Change-Id: Ic7a9b6e23d925d27a8dcbd418d2609e43917ac45
2015-05-15 15:47:10 -07:00
Sunny Goyal
4fe5a37dda Optimizing shadow generation by reusing bitmap.
> Not creating unnecessary bitmaps
> Final bitmap is generated as ALPHA_8 instead of ARGB_8888
> The shadow drawing is done directly in the view

Change-Id: I504fa2ea3abdc1a3c3fb9ad57d6e28880d2584a1
2015-05-15 14:10:20 -07:00
Sunny Goyal
9ca9c1316d Adding accessibility widget resize
Change-Id: I954f01733474450cbeedba2406e1d6d373bb87a3
2015-05-06 16:00:22 -07:00
Sunny Goyal
9aaef938c3 Removing debug log
Change-Id: Ifb6adc0826d744f2bbc654c37c2470754f364a2b
2015-04-30 10:32:25 -07:00