Commit Graph

117 Commits

Author SHA1 Message Date
Kevin
cd88cf8d1c Clear all button should not be swipable
Unlike other task items in the recycler view, the clear all button
should not be swipable as you obviously can't remove the button.

Bug: 114136250
Test: Go to recents, attempt to swipe clear all, does not work
Change-Id: I0ab00c03b697f2174431b69bbf758c3ff104db97
2019-04-22 13:11:28 -07:00
TreeHugger Robot
e575b40437 Merge "Add clear all view that scales off device height" into ub-launcher3-master 2019-04-20 01:49:20 +00:00
Kevin
64bb5bbb78 Ensure recents scrolled to first task in landscape
The app should animate to the bottom view which means we should ensure
the bottom view is scrolled to be visible at the bottom when we animate
in. Note that this is only a consideration in landscape since in
portrait, all tasks are always visible and the recyclver view is not
scrollable.

Bug: 114136250
Test: Go to recents Go from app in landscape mode
Change-Id: If4ea35759cc881f2c32565368d031620b62a45dd
2019-04-19 17:46:04 -07:00
Kevin
20e1f17340 Enable landscape mode for Recents Go.
Set rotate state to request rotate on the overview state being enabled

Bug: 114136250
Test: Go to recents go, rotate screen
Test: Go to recents from app
Change-Id: If63bf25f61b873f67986e463a980e6d67a9b5ae4
2019-04-19 16:09:52 -07:00
Kevin
a2b8ca8830 Add clear all view that scales off device height
Add a custom clear all view that scales its height based off the height
of the device in portrait. This view holds and lays out the actual
button.

Bug: 114136250
Test: Task items + clear all scale to fit flush with screen size
Change-Id: I72b175681c104588970d57cde34cebc0f06b55a0
2019-04-19 13:06:17 -07:00
Kevin
cacf7df2d4 Remove old recyclerview layout logic
Remove old layout logic for recycler view as there is no need for the
recycler view height to change based off device profile. Instead the
task items themselves will change.

Bug: 114136250
Test: Builds
Change-Id: Ia6dae22e3e73fafe46d4adf834bf7d24af36a607
2019-04-19 11:28:06 -07:00
Kevin
3172c6811b Calculate task height directly off portrait height
Change task height calculation implementation to be directly based off
device height in portrait mode. This allows the recycler view
layout manager's job to be simpler while still ensuring that task height
changes dynamically based off device configuration changes.

Bug: 114136250
Test: Go to recents Go, task height is based off portrait mode height
Change-Id: I9c7cada3b89d2b2cea5ece8c357a40ce5974a2e6
2019-04-19 11:25:28 -07:00
Kevin
420115e7f1 Fix task adapter notify merge conflict
Resolved merge conflict of ag/7093095 incorrectly and accidentally kept
both HEAD and CL changes. Resolved in this CL.

Test: Manual test
Change-Id: Iad42ab12b486201f496c83f99c8c6094273543f3
2019-04-18 17:03:04 -07:00
Kevin
8659925532 Move clear all to recycler view (2/2)
This finishes moving the clear all button to the recycler view.
Primarily, this CL deals with changes to calls that depended on recycler
children being task item views and starting at the 0th index.

Bug: 114136250
Test: Build, manual test
Change-Id: Icecf257409207de351345997205def11e1048ab0
2019-04-18 16:31:03 -07:00
Kevin
8573ff04b4 Move clear all to recycler view (1/2)
First part of moving clear all button to recycler view.  This CL adds
support in the recycler view adapter for a clear all holder type and
hooks it up to the previous clear all animation.

Adding this breaks several assumptions made externally on the type of
the item and index which will be addressed in the second part.

Bug: 114136250
Test: Builds, testing pending 2nd part
Change-Id: Ib16790028d4e9f520945a987b3dace40d19f2468
2019-04-18 16:19:08 -07:00
Kevin
035f0d2157 Only switch item animator on content fill if needed
We currently switch to a different recycler view item animator for a
special content fill animation when we have loading item UI up and want
to animate to the actual content. However, it's possible if the task
content loading is fast enough, we may return before the adapter
changes have actually propogated to the recycler view layout. In this
case there is no loading UI to fill and we should not switch item
animators.

Bug: 130820737
Test: Go from app => overview, try to remove, remove animation occurs
properly
Change-Id: Ic95854d04df98023f444daf967c58bdd8177722a
2019-04-18 14:46:32 -07:00
Kevin
77f01524bd Fix NPE and make getTask return Optional
Fix an NPE when attempting to update the thumbnail in IconRecentsView.
If the task item is binding the loading UI, it has no task so the app
will crash, so we just need to ensure the task is actually present
first.

While we're here, also change the API to return an Optional<Task> and
make a tighter contract, making it harder to make this mistake in the
future.

Bug: 130746661
Fix: 130746661
Test: Go from app => overview on recents Go
Change-Id: I1402fcd2e58bdeb703c7dcc1b9dcf0d258808b3d
2019-04-17 14:48:21 -07:00
Kevin
60f21a8d3a Fix ViewTreeObserver crash on Recents Go
The view tree we originally attach the onGlobalLayout listener to may no
longer be alive when we get the callback as the view tree observer
merges when the view attaches to a view hierarchy, giving us an
exception. Instead, we should request the view tree observer again and
remove it from there.

Bug: 130740246
Fix: 130740246
Test: Manual test, no longer crashes
Change-Id: Idb982022e72db75b8e20fd5bea00655212dc0258
2019-04-17 11:16:22 -07:00
TreeHugger Robot
194c12aec7 Merge "Fix snapshots not updating on app => overview." into ub-launcher3-master 2019-04-17 00:49:53 +00:00
TreeHugger Robot
b06a2a6ccc Merge "Fix views not being visible on Recents Go." into ub-launcher3-master 2019-04-17 00:44:44 +00:00
Kevin
c98f116b77 Smarter task laying out based off onMeasure
Previously laid out via calls to layoutParams. This isn't as optimized
as being baked into the measure + layout system and has the issue of
being less flexible. For example, if the device profile changes (e.g.
orientation change), we'd have to apply new layout params for all the
views. With this CL, we would only need to do this for top-level views
and the children will resolve themselves.

Bug: 114136250
Test: Check layout on marlin + walleye
Change-Id: Iddd503a8844bdde7724d3f804660da61719d5c90
2019-04-16 17:12:46 -07:00
Kevin
cce954f334 Fix views not being visible on Recents Go.
If we bind the loading task views but then on the tasks being loaded
realize there are no items, it's possible to animate from the empty
content view to the regular content view and then back. Currently, this
leads to updateContentView not being called properly the second time
since both views are still visible during the animation, so this CL
fixes that and cancels any on-going crossfade animations.

Bug: 114136250
Fixes: 130580680
Test: Remove last item from recents, go to recents again, empty view
shown
Change-Id: If1a4caab15f9b6d7ccd3abbc06f5866e06650db8
2019-04-16 10:29:54 -07:00
Kevin
025799ba9c Fix snapshots not updating on app => overview.
Previously we were only updating the model on snapshot update and not
the view itself, so the view would have an outdated snapshot if it
loaded everything before the data updated itself.

Bug: 114136250
Fixes: 130635650
Test: Go from app to overview, transitions properly with new snapshot
Change-Id: Ife9cae7a700a855788b5d25b05d78e562e1b27f0
2019-04-16 08:57:46 -07:00
Kevin
c06522c826 Change layout size to be dependent on device size
This CL changes the layout sizes to be dependent on device height as
opposed to static values so that it works on different decides out of
the box.

Bug: 114136250
Test: Tested how layout looks on marlin_svelte and walleye
Change-Id: Ie000bc797d7dd2e38cd705d54f3e09c79e1a2176
2019-04-15 18:13:29 -07:00
Kevin
f1a47a0fe6 Update Go recents visibility based off adapter
View visibility should be based off adapter since that's what the layout
items are based off of.

Bug: 130440957
Test: Loading UI is shown when going to recents Go
Change-Id: I1f167553b6fdce757865c739b9793b63a20e7f57
2019-04-12 15:41:51 -07:00
Kevin
987799dfa1 Animate content fill animation to Recents Go
This CL adds the animation that occurs when transitioning from a set of
empty views to the actual task list after it is loaded. This is done by
setting a one-shot item animator that animates changes, for item views
that fade from empty to filled, and removes, for when we have too many
empty views.

Bug: 114136250
Test: Artificially increase task list load time and see animation fill
Change-Id: Ibbc09db702e591063ceea61df2359f18a3fcf8f9
2019-04-12 13:13:46 -07:00
Kevin
86957f28ff Animate to bottom view in app => overview
We always want to animate to the bottom so we should just do that if we
have the view laid out even if at the time the app task doesn't actually
match the view.

Bug: 114136250
Test: Go to recents, press overview twice quickly, see it animate
correctly
Change-Id: I0516ef127ff6ef0f865c85314c9ffe4a7c6ef9e3
2019-04-12 10:14:52 -07:00
Kevin
a2c4200cde Differentiate empty UI from default in recents Go
Use the "empty" drawable as the initial UI until the recents task list
and order is loaded, then switch to default/filled UI.

Bug: 114136250
Test: Manual test; see empty UI when loading takes time
Change-Id: I85b72e6d40d7224b28217cbf4e05515ec1e9451b
2019-04-11 15:22:12 -07:00
TreeHugger Robot
3cd0001631 Merge "Add task content animation property" into ub-launcher3-master 2019-04-11 22:21:35 +00:00
Kevin
a3d80d102e Add task content animation property
Add API to animate task item content transition from one set of task
content (icon, thumbnail) to another. To do this, we provide two things
to the caller: startContentAnimation which allows the caller to set the
icon, thumbnail, and label to animate to and the
CONTENT_TRANSITION_PROGRESS property which the caller can use to control
the transition progress.

We will eventually hook this up to onBindViewHolder for the task adapter
when there is a data change event to prepare to animate content in.
Currently it still changes immediately.

Bug: 114136250
Test: Builds
Change-Id: I16e9b757ee91be54fe8cba6780b399e3cc313e3e
2019-04-11 15:08:52 -07:00
TreeHugger Robot
c58abe78ee Merge "Fix transition progress not applying to drawables" into ub-launcher3-master 2019-04-11 22:08:11 +00:00
TreeHugger Robot
0427d88fc4 Merge "Change layout anim from Animation => Animator" into ub-launcher3-master 2019-04-11 22:08:03 +00:00
Kevin
26ad999b10 Change layout anim from Animation => Animator
Change the layout animation to use animators instead of the built-in
animation-based layout animation. Animator-based animations are more
flexible and can act on the view properties themselves, making it
easier to deal with if we need to cancel the animation later from a
conflicting animation (i.e. we find out we need to animate a view
out).

Bug: 114136250
Test: Go to recents, see items animate in
Change-Id: Id8227cd50e81999cac98912ac58cd2d6864c40af
2019-04-11 14:20:51 -07:00
Kevin
1531982d1e Fix transition progress not applying to drawables
TaskLayerDrawable should reapply UI changes from the transition progress
when there is a new drawable. In addition, the transition should check
if the drawable in the front and back are the same (i.e. on
initialization when both are showing the empty drawable) so that it only
applies the front-drawable alpha.

Bug: 114136250
Test: Builds
Change-Id: I74836b5043da555358742ba0a3f46f170f590904
2019-04-11 13:38:00 -07:00
Winson Chung
a851c9f310 Add state callback in launcher
am: 4060a75d8f

Change-Id: Ib2b6336f788c14e9ee21323dedcf10f872f9e0fe
2019-04-11 12:39:21 -07:00
Winson Chung
4060a75d8f Add state callback in launcher
Bug: 129785904
Test: Manual, change states and verify state is sent
Change-Id: Ia1f69494a6cbae68085fb09670ffa309ce147430
(cherry picked from commit c4b88c3dfb)
2019-04-11 18:11:51 +00:00
TreeHugger Robot
d1c0643745 Merge "Add drawable for default thumbnail for Recents Go" into ub-launcher3-master 2019-04-10 10:44:52 +00:00
Kevin
34ee30c4f9 Add drawable for default thumbnail for Recents Go
This CL adds a drawable for the default thumbnail view and
refactors the logic to get the default icon/thumbnail/label if
null to separate methods for re-use in later CLs.

Bug: 114136250
Test: Manual; Go to icon recents
Change-Id: I511ea40ace040fc53ffc69c27149f24d69bda7b0
2019-04-09 15:40:15 -07:00
TreeHugger Robot
b81e4bb53e Merge "Add task layer drawable class for Recents Go." into ub-launcher3-master 2019-04-09 20:52:59 +00:00
Kevin
bb956bd028 Add task layer drawable class for Recents Go.
Add a custom drawable class that provides a hook to the caller to
control a crossfade animation between two drawables. This will be
helpful going forward to sync up all the animations to the controller.

Note that this CL only adds the class and does not replace the current
implementation.

Bug: 114136250
Test: Builds
Change-Id: I3cc6be79cb2ca5d64c8cc2945ff7f2ebd49632b6
2019-04-08 16:44:19 -07:00
TreeHugger Robot
2945bc84b5 Merge "Removing unnecessary corner size caching in RecentsModel" into ub-launcher3-master 2019-04-05 23:32:17 +00:00
Sunny Goyal
c7cc3dc2c5 Removing unnecessary corner size caching in RecentsModel
Change-Id: I1be87dc15a3b9ec8225dccce701bff19785658d6
2019-04-05 15:11:42 -07:00
Kevin
2bd36dd326 Don't put up loading UI if load isn't necessary.
Do not put up the loading UI when we don't need to load (whether that's
because we're already up to date or there is already a load in progress)

Bug: 114136250
Test: Manual; go to recents and see that it doesn't load when updated
Change-Id: Idbcc3731e4ecab8f67b7b5b07a98cb112ed4e07a
2019-04-05 14:44:16 -07:00
Kevin
3e98796189 Add layout animation for Recents Go
Add a layout animation where views fade in upward in a cascade and play
it every time the user goes to Recents.

Bug: 114136250
Test: Go to Recents and see cascade animation
Change-Id: Ia6fdd344f0bfb46c4d507e50f278a86a4432c2b6
2019-04-05 12:20:55 -07:00
Kevin
fc6781992d Control logic for putting up loading UI
This CL introduces the logic to put up and bind loading task views while
the first phase of loading occurs (i.e. loading the number and order of
recents items).

Bug: 114136250
Test: Go to recents, see tasks loading
Change-Id: I59bdc0fccc7f309ea4cded175c04a464b5a3665e
2019-04-05 11:04:10 -07:00
Winson Chung
41d58f7100 Add launcher logging of back button
Bug: 127848641
Test: adb shell setprop log.tag.UserEvent VERBOSE, then hit back
Change-Id: I020738280d2e51a8a192e577baf48c0b092f22f6
(cherry picked from commit df7d00328c)
2019-04-03 22:41:39 +00:00
Sunny Goyal
65f2396ecd Merge "Adds the ability for Launcher3 to respond to QSB alpha change requests." into ub-launcher3-master 2019-04-03 20:20:12 +00:00
Sunny Goyal
27211592e1 Removing unused import in TouchInteractionService
Change-Id: I207e56189bbdb0105430a47f6a9069c6382354b2
2019-04-03 11:03:14 -07:00
Govinda Wasserman
24e489e5a3 Adds the ability for Launcher3 to respond to QSB alpha change requests.
Test: Tested locally
BUG:124063782
Change-Id: I8c4bfaa62d9608fcfffff5e30b2913f3a6fb2f75
(cherry picked from commit 827f0807d3)
2019-04-03 17:33:55 +00:00
TreeHugger Robot
3388e34799 Merge "Disable input while animating clear all on Go" into ub-launcher3-master 2019-04-02 00:41:55 +00:00
Kevin
1497112599 Disable input while animating clear all on Go
Prevent janky things from happening by preventing user input from going
through while the clear all animation is occurring.

Bug: 114136250
Test: Hit clear all => try to clear all / tap task, nothing happens
Change-Id: If7bd6b54e4b1b8185fafda990561973ea17b9648
2019-04-01 17:04:31 -07:00
TreeHugger Robot
3b4794f6d2 Merge "Boost correct layer for Recents Go transition" into ub-launcher3-master 2019-04-01 21:14:34 +00:00
TreeHugger Robot
639598245c Merge "Hook up Go recents view API to recents activity" into ub-launcher3-master 2019-04-01 21:06:46 +00:00
Kevin
552071b5f4 Boost correct layer for Recents Go transition
For transition from app to fallback recents, the apps were on the same
Z-layer causing both to show up in the animation. We should instead
boost the closing app so that it's visually on top as it shrinks down.

Bug: 114136250
Test: Press overview in app to go to recents, behaves as expected
Change-Id: Iaca1e4fc1486721468a5bfffb1d139259d48739f
2019-04-01 13:00:57 -07:00
Kevin
b6320aeeb6 Hook up Go recents view API to recents activity
Hook up onBeginTransitionToOverview for fallback recents as well by
hooking it up to activity start.

Bug: 114136250
Test: Go to recents for fallback recents
Change-Id: I5445bce13ecf7c0dbc2f2b3ff0d8a0aee1449ae1
2019-04-01 12:06:43 -07:00