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
(cherry picked from commit 34ee30c4f9)
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
(cherry picked from commit bb956bd028)
Bug: 129785904
Test: Manual, change states and verify state is sent
Change-Id: Ia1f69494a6cbae68085fb09670ffa309ce147430
(cherry picked from commit c4b88c3dfb)
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
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
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
Bug: 127848641
Test: adb shell setprop log.tag.UserEvent VERBOSE, then hit back
Change-Id: I020738280d2e51a8a192e577baf48c0b092f22f6
(cherry picked from commit df7d00328c)
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
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
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
Recents Go would crash when attempting to touch the fallback recents
activity since it's based off the base dragging activity in launcher
which assumes some touch controllers are initialized. As we leave
all touch input to hooks on the views themselves, we do not need touch
controllers and initialize an empty list instead.
Bug: 114136250
Test: Launch fallback recents activity, touch around
Change-Id: Ic136ace6f968d8c469c6f300daf4ee28fbde5e69
Recent UX discussion led to decision to show as soon as we have the list
and order and then load the content in after as soon as it comes. This
introduces API in TaskListLoader to facilitate this and default values
for the view when the content is not yet loaded.
Bug: 114136250
Test: Go to recents, see content load in
Change-Id: I6766cf014e3de78894353614157dbc8798031c2f
- Added QuickSwitchState, which we animate to when swiping right
on the nav bar from NORMAL state
- Task launches when the state transition to QuickSwitchState ends
Bug: 126596417
Change-Id: Id66650401d817703fc6d044fb26a25cccbc07e11
Add AnimationComponents.ATOMIC_OVERVIEW_PEEK_COMPONENT, and rename
previous ATOMIC_COMPONENT to ATOMIC_OVERVIEW_SCALE_COMPONENT.
When SWIPE_HOME is enabled:
- Overview lives to the left of Workspace, which is encoded in
LauncherState.NORMAL.getOverviewScaleAndTranslation().
- Create atomic animation based on ATOMIC_OVERVIEW_PEEK_COMPONENT
and OVERVIEW_PEEK state when swiping and holding from home screen.
Bug: 111926330
Change-Id: Iab6dbef7238dae15b3036d4b2a026b781eee6b4b
States return ScaleAndTranslation instead of float[].
Also separate overview translate interpolator from overview scale interpolator.
Change-Id: I5e65dde3f436055ff5e7f5736f1a4b712377b9cb
Add clear all animation where task views fade out to the right and the
view fades to home.
Bug: 114136250
Test: Hit clear all
Change-Id: I5a3336da5b724ce19d9ef854efde0dd1f654941a
Add the same overview button handling as in the original launcher.
Specifically, pressing overview on recents will launch the next
appropriate task (e.g. the next most recent task if you came from an
app).
Bug: 114136250
Test: Go to recents from launcher, press overview => launch task.
Test: Go to recents from app, press overview => launches next task
Change-Id: I946974b4c2b65b6d0f212d8e8c0816983386d952
The TaskInputController class doesn't need to be tightly coupled with
the actual input method, so we should rename it and the methods to
correspond to the actual logic. For example, both tapping a task and
pressing the overview button on recents should launch a task and should
both use this logic.
Bug: 114136250
Test: Launch tasks, clear tasks, clear all
Change-Id: If4f7f1d6ee9b05ffaf65cb13df633679cc8efcbe
Add a button to clear all tasks to the recents Go layout and hook it up
to the model.
Bug: 114136250
Test: Open recents, hit clear all
Change-Id: Id67310ce88053528d372e4dc21e2b011ed957646
We use the basic clip reveal animation to animate from the task
thumbnail view to the opening app.
Bug: 114136250
Test: Tap task from recents
Change-Id: Id582385fc022c75ee322beebdc6cf7a0f209e720
Now that we don't have quick scrub, the only state that has a non-zero translation is all apps,
which just uses that to have a slight parallax. This is much simpler to define in terms of pixels
like other states do.
Change-Id: I108c8505d85591399256b3475f7566ff51e2c5ad
This CL adds the first iteration of window animation to go from
the app back to recents provided that the view is ready to be
visible to the user.
Bug: 114136250
Test: Go to recents, launch app, press overview to go back to recents
Change-Id: Ic0567e7c87fa964bdad25d07eca61b78407a9ff5
Add an interface for recents to activity logic that can be set on the Go
recents view. This CL includes a method for the logic that should occur
when leaving recents due to having no tasks remaining.
As the view has no knowledge of the containing activity (could be
Launcher or could be a separate activity), this interface must be set
externally.
Bug: 114136250
Test: Remove all tasks, see that it goes to home when l3goIconRecents is
the default launcher
Change-Id: I110abab49c22e245b98a1f9b91b0b0f052886098
Also moving test provider to Quickstep to have access to the new info;
and now Launcher3 doesn't have it.
Bug: 123904290
Change-Id: I653376610e83839d102beb9c0604950dd314e8ba
This CL adds a view for when there are no tasks and fades into/out of it
appropriately based off changes to the adapter.
Bug: 114136250
Test: Add task, remove task, see empty view shows up properly.
Change-Id: I47d0bbfb19d56f5f0de5bec3c0ac2b5cfb63253f
This CL adds thumbnails to the task view so that the labels are next to
a combined view with the thumbnail to the left and the icon at the
bottom right.
Due to the way launcher creates shadows on icons, the icons are actually
smaller than desired, so there need to be further changes to determine
the appropriate scale in order to have the bottom of the icons be flush
with the snapshot's bottom.
Bug: 114136250
Test: Launch l3GoIconRecents, see thumbnails + icon
Change-Id: Ief1cf54634544b9e310c68588998901871efda44
Fade animation is no longer required as the transform is also handled on
the main thread. So we will get the RecentsAnimaiton always after Launcher
has drawn
Change-Id: Ieb05406c9a5b9132b0518155bdbda16c1f73a6ec
Introduce a ItemTouchHelper.Callback implementation that hooks up remove
logic to swiping right on task items. Additionally, tighten the
modification access to the task list in TaskListLoader so it is harder
to mis-use.
Bug: 114136250
Test: Removed app via swiping
Change-Id: I9b6e2783d1f6d56e655e9b7ffa9af85328f98159
Add TaskInputController, a class handling input logic for the Recents Go
view. This CL hooks up the tap to launch logic with swiping + clear all
to be added in a later CL.
Bug: 114136250
Test: Build Launcher3IconRecentsGo and tap apps; see that they launch
task
Change-Id: I03e14a6f66307b9c6239cdeaec95d09f160fa3e0
Add a task item view for the recycler view to inflate when task data
updates. Currently, the adapter only binds the icon and label.
Thumbnails will be handled in a separate CL.
Bug: 114136250
Test: Manual test Launcher3GoIconRecents
Change-Id: Iaff2001fbbf0a3fc6f5781f90b336bee43f9076e
This CL adds thumbnails to the content loading for Recents Go so that
they are fully loaded before recents show. We utilize the underlying
recents model thumbnail cache to make the loading faster.
Bug: 114136250
Test: Build Launcher3GoIconRecents
Change-Id: Ib21f617e83d307621364c2eeb6fef84aad49814b
This CL introduces a loader specific to recents Go that utilizes the
underlying recents model already built in. The class is responsible for
maintaining the data source for the recycler view and also loading the
task list and content. We also provide a hook into the recents view
class to call a load when the transition to recents starts.
Bug: 114136250
Test: Build Launcher3GoIconRecents
Change-Id: I22ce6f767852b0f37961e2fd06dfcb6475c91235
Recents Go with icons will use the app's title description as the app
label, so we need this to actually load when we load the task's content
even if accessibility is disabled. This CL puts this behind a static
flag only set to true in recents Go code.
Bug: 114136250
Test: Log that titles/labels are appropriately fetched
Change-Id: I4fe7d8758b3141695a82c0677cec97686c977934
Add recycler view to view hierarchy for recents Go to hold the list of
recent tasks.
Bug: 114136250
Test: Manual test, see view in place
Change-Id: I255bb4a7737726b0e211b52aec3f2fb8f4723513
Go recents view was always GONE before. This is because Go was missing
logic in its CONTENT_ALPHA property to set visibility on appropriate
alpha changes. This CL fixes this.
Bug: 114136250
Test: Manual test and see the view is there
Change-Id: I45fea6d695b9b3154be9d2e6fae25ca8a8aa288e
This CL adds a recycler view adapter for tasks to manage the item
control logic. The data source itself and view hierarchy is planned to
be added in future CLs.
Bug: 114136250
Test: Build l3GoIconRecents
Change-Id: I72d4f9df68d17fd745947d36522cde342ea58317
Most of TouchInteractionService is not used in Go since we don't support
a lot of the gestures, so this code swaps the file and stubs out
everything except the atomic overview commands for Go only.
Bug: 114136250
Test: Manual test NexusLauncher, l3GoIconRecents
Change-Id: I449746d01d3bbf619663399deb9600f0e4ecc000
This splits FallbackActivityControllerHelper for Go and non-Go depending
on the underlying recents implementation. We also introduce a
GoActivityControllerHelper implementation as a base class to share the
stubbed methods for the Go ActivityControlHelper implementations.
Bug: 114136250
Test: Manual test NexusLauncher, l3GoWithIconRecents
Change-Id: I8a061bb83a851dd1d9988af17194f3e4aed24bb0
This splits OverviewCommandHelper between a Go and non-Go version with
functionality differing depending on the underlying recents
implementation.
Bug: 114136250
Test: Build NexusLauncher, l3goWithQuickstep, l3goIconRecents
Change-Id: I7c78d7699e5599002de64b289b0c3a47c8c418f7
Split AppToOverviewAnimationProvider between a Go recents version and
non-Go version as the animation from the app to recents will be
different for Go recents.
Bug: 114136250
Test: Manual test NexusLauncher, l3goWithQuickstep, l3goIconRecents
Change-Id: Iefdafd3838579b780817568b8c707098b79a8cdb
Go recents does not build as it uses the recently removed assist
structure. This finishes the removal for the Go src as well.
Bug: 114136250
Test: Build launcher3GoIconRecents
Change-Id: Ifdb6dacfce72caaf2d072157956e6617338e73b0
Implement recents activity for Go for when the default launcher does not
have recents implemented. To do this, we factor out some common recents
activity functionality from RecentsActivity and extend it to make a Go
specific activity that pops in the icon recents fragment.
Bug: 114136250
Test: Manual test NexusLauncher and Launcher3QuickstepGo by installing a
quickstep-less launcher and setting it to default
Change-Id: I936568489e8966da4a62e4b779ae660a220f2aeb
Go's recents will not have swipe up to overview so there is no need to
have BackgroundAppState. We also do not support quickstep so we don't
need a distinct FastOverviewState. So we stub them out here.
Bug: 114136250
Test: Manual test Launcher3QuickstepGo + NexusLauncher
Change-Id: I9223cd35fc3c64688cda16dcaa1d5f40460c9323
As Go will likely have very different implementation since it will be
replacing the app => overview animation, we split
LauncherActivityControllerHelper so that Go can override the class
completely.
Bug: 114136250
Test: Manul test NexusLauncher, Launcher3QuickStepGo, Launcher3IconRecents
Change-Id: Ia5554593ddafffe0f729a4658d0a37aed16d236b
This CL swaps out the current OverviewToAllApps touch controller with
the Go specific implementation. Moreover, since we only use this class
in landscape, we rename it to LandscapeStatesTouchController to avoid
confusion.
Bug: 114136250
Test: Manual test NexusLauncher, Launcher3QuickstepGo, Go recents
Change-Id: I6025cfe9f400705a4666fd92298a08a0c0ef7202
- After the atomic animation ends, overview jumps slightly because the
normal -> all apps transition puts it at a different position than
normal -> overview
Bug: 111926330
Change-Id: I6ca359b3ef2fc4d0b6b96229d8bf118bd0db9649
This reverts commit 792fcc3aec.
Reason for revert: This class actually manages more than just overview to all apps transitions, and Go needs some form of this for landscape transitions state transitions
Change-Id: I073dcc94dda06ff8d87166d2674927df8f2418f5
Go's recents does not support an overview to all apps transition (as
there will be no hotseat and swiping will be used to navigate the view
itself). As a result, we never need the controller, so we don't take in
the class as a source and do not add it as a touch controller.
Bug: 114136250
Test: Manual test Launcher3QuickstepGo, NexusLauncher,
Launcher3IconRecentsGo
Change-Id: I7fff9d1e8727bd978e84462436e37219c57f7af6
Split LauncherAppTransitionManagerImpl common functionality into a base
quickstep app transition class and subclass for recents-specific
implementation. In addition, override the app transition manager to the
appropriate manager depending on the build.
Bug: 114136250
Test: Manual test NexusLauncher, Launcher3GoWithQuickstep
Test: Build Launcher3GoIconRecents
Change-Id: Iab1b5ae0c75af276879d5e12df95f62a514bf571
Split common functionality in OverviewState so that it can be reused in
both implementations for IconRecents Go and non-Go.
Bug: 114136250
Test: Manual test NexusLauncher, Launcher3GoWithQuickstep
Test: Manual test IconRecentsGo (gets to recents screen w/o crashing)
Change-Id: Ibff5d3573b3b22dcdfda1b0662d4dd219d2e382f
Split logic in RecentsViewStateController based off code that should be
shared and code that should not between Go icon recents and regular
quickstep recents. The Go version will maintain changes in
scale/translationY as per normal recents.
Bug: 114136250
Test: Manual test NexusLauncher, Launcher3GoQuickstep
Test: Build Launcher3GoIconRecents (no longer crashes immediately!)
Change-Id: Id060d6f8f0b68edee4becdf6b91b876bb8dbcefb
Add a specific view for Go's icon recents. We also add a few properties
for use in future refactors.
Bug: 114136250
Test: Build Launcher3GoIconRecents
Change-Id: I9852679256158344ab276d1c477f55b7dd2d6a52
Split out the logic in PortraitOverviewStateTouchHelper that is
dependent on the recents view implementation. This is done through a
separate helper class that we override on Go to stub out most of the
behavior.
This results in the Go version not supporting swipe transitions from
the recents state which is desired since we would otherwise risk
confusion over whether the swipe should go to the view or to the
transition (note that we will also take out the hotseat in this state).
Bug: 114136250
Test: Manual test NexusLauncher and l3goWithQuickstep
Test: Build l3goWithQuickstepIconRecents
Change-Id: I9b0e9c05171d279d03bbcb7f05344fa425f34b3e
This CL splits out RecentsView specific logic from UiFactory and
overrides it in the Go IconRecents version, stubbing out much of the
functionality.
Bug: 114136250
Test: Manual test NexusLauncher, Launcher3GoQuickstep
Test: Build Launcher3GoIconRecents
Change-Id: I043f7f2b2581831f1a74a80110e9c4c25231c046
Split out overview_panel from recents and override it with IconRecents
version to replace the recents view entirely.
Currently, on the IconRecents build variant, as expected, this hits a
class cast exception since many quickstep classes assume the overview
panel is an instance of RecentsView. All other variants build and push
fine.
Bug: 114136250
Test: Build + push NexusLauncherDebug, Launcher3Go,
Launcher3GoQuickstep, Launcher3GoQuickstepIconRecents
Change-Id: I3ac7331772e53ee81cb1735a709b4fb7b3bdb78c
This CL sets up the source directories to build a Go version of
quickstep recents/icon recents. This is accomplished by splitting the
quickstep resources/sources into two groups: the base source and
sources that should be overridden (recents_ui_overrides). The new Go
recents variant then takes the base and combines it with the sources
in go/quickstep which should replace the ones in recents_ui_overrides.
As of now, no classes have been moved yet, so there
are only placeholder files.
In addition, this modifies the make and gradle files to reflect the new
sources.
Bug: 114136250
Test: build all targets via tapas, build all APKs from IDE
Change-Id: I6d0a4d93ab1c38d4ffc28fd21823caadd96d23f7