Add OverviewInteractionState to handle setting OverviewInteractionFlags.
Hide back button when in NORMAL state and launcher's window is focused.
Show it when in other states or when launcher's window loses focus.
Change-Id: I35919561b9972789e995f1cc434c23e2afe9e77c
The fix is quite hacky and should be re-done soon. I’m not leaving TODOs
in the code, but I’m tracking the cleanup elsewhere.
We also need a fix in the server to make the test work, but that will be
another CL.
Bug: 72967764
Test: atest google/perf/app-transition/app-transition-to-recents
Change-Id: Ia21c308caa81bd5502f4a4587ae445928f6eca17
Bug: 73242451
Test: Swipe up over back with suitable launcher build and ensure that we
don't start the recents animation on touch down
Change-Id: I98314611eaeeabfaa47280157300ea20f0571a61
Launcher's window doesn't have focus when on minus one. In this case, we
tell the minus one overlay to hide and add a window focused callback to
start quick scrub/switch after launcher regains focus. Since the
transition from minus one takes longer than for launcher to get window
focus, we also defer until the overlay is completely hidden before
starting the quick scrub transition.
Bug: 70180755
Change-Id: Ifcf85aaf1942b51394e68e209b89807fa4007afe
When we get the onQuickScrubStart() or onQuickSwitch() callbacks, we go
to the overview state with a quicker duration (the same used from apps).
Then we follow the same logic as starting quick scrub/switch from apps
except that we allow you to scrub back to the workspace card.
Bug: 70180755
Change-Id: Iebcdcc4c4ad1e1210e2d1c11e5007c27d3c1eef3
When animating the wrospace, we skip the properties if for start and end are same.
But after creating the animation, if the property changes, the final property is
never applied.
Bug: 72257542
Change-Id: Id408c7820476273958e835ae99a3a934ad5a4700
- Clean up the consumer when starting quickscrub/switch in addition to
motion up
- Defer invalidating the handler until after quickscrub ends
- Ensure that we always finish the remote animation
Bug: 67957962
Bug: 70180755
Change-Id: Id5af5dc9917638f1dfb8e4a04c358aadb19fd67a
Intead of finishing the entire animation (launcher animation and
window animation), we finish just the launcher animation.
Bug: 73071035
Change-Id: Ied84cb641f3cedc367433ad99d21ab1b258ae7f8
* This ensures that the current time is used for the clock icon.
* Also switch from ImageView to View, to avoid an alpha bug.
Bug: 73000086
Change-Id: I6576d76b95fb157d0bfe8db4fda899e644773bfa
- Make use of app/home insets and minimized home size to calculate the
proper clipping and target bounds for the task view in home.
Test: Swipe up when in multiwindow
Change-Id: Ibef7a6dc319ded7867ee559dd31c5e87fd76cadb
> Resetting the state to NORMAL on every onStop so that the user
never starts on the overview screen
Change-Id: If3c17693b7125a3969809e60891a2ab978fe83bc
The app transition might change an object that the new
state depends on, causing an inconsistent state.
Bug: 72816542
Change-Id: Ia6dd52971b52be5589c88f4f6d93d06146fbadab
> Creating the launcher animation after first draw, so that the UI is in correct state
> Using correct workspace size, when layout is not valid
> Snapping pagedView to correct page when page size changes
> Resoting to correct workspace page on rebind
Change-Id: I74e61a05aae3a3c4912d4c5c8eb4d5d036d9005a
- Remove widgets option
- Add Split screen
- Add Pin
- Tap as well as long press icon to show menu
Bug: 72320614
Bug: 70294936
Change-Id: I231160286426ac3d2a23524b2f4a0170f963190e
> Adding a listener for device profile changes
> Updating various controllers instead of recreating them
> Clearing all-apps icon
Bug: 71709920
Change-Id: Ief7db199eb7494ebd8fb433198f333cd2e8e661d
- Make sure to use center pivot point
- Use correct curve for alpha
- No need for the layer hack anymore because framework issue
was fixed.
- End X should be 480dp for a 411dp device, so we need to scale
it with 1.16
Test: Close app
Change-Id: Ib4587e324aeeb11921de87da7c389b2e148dc913
Fixes: 72691044
Previously we attempted to disable the app closing transition
in multi-window. However, that didn't work because the registered
remote animation was still registered on the ActivityRecord, even
if the activity was restarted, leading to passing a null handler
into post, and then the animation never started.
Enable it in multi-window and also fix the transition.
Test: Enter multi-window, go home
Change-Id: I4d5d46688310b61365ba954fb41811efa29e41a5
Fixes: 72525431
Also temporarily removing input consumer, as that might be causing event to getmissed
(similar to b/72715390)
Change-Id: I82918133d334fae5d3da267b0d03ff2af8f02e67
Animate the task window on the background thread, until the launcher UI is ready.
After the first frame of launcher is drawn, we switch the input handling to UI thread
and fade in the launcher UI.
Change-Id: Ia3d04b697530af3db441b14ad34827208b923137
- Workspace was translating while swiping from overview to all apps
- VerticalSwipeController progress jumped a bit backwards when
flinging because sign wasn't taken into account for velocity
Change-Id: Ife5e9d87ca9f0b3429dd9045c6569868a65eb0af
* Add start delay when launcher resumes from all apps or landscape.
* Track the last app transition animator and cancel it before beginning a new one,
otherwise the animators can conflict with each other.
ie. Opening an app from all apps and then immediately pressing back to return to
all apps.
* Use class overrride instead of UiFactory.
Bug: 70220260
Change-Id: I4755d45d820f9d551e443d6c4a148e8789c5bc57
When the touch interaction service is disconnected, let's make sure
we cleanup so we don't get in a state where all touches are ignored.
Bug: 72444652
Change-Id: I089ad63f9f855651f305c4650c99743d3bde3a94
Now we directly set a static boolean as soon as we get the
onQuickScrubStart and end binder callbacks, instead of having
a member variable in QuickScrubController. Notably, QSC was
getting onQuickScrubStart() when doing quick switch, but not
onQuickScrubEnd(). This is a byproduct of some other unrelated
logic, which the new approach circumvents.
Bug: 72444652
Change-Id: I0a3d1ae2e9970cfffc38a25df0b8f04f26cb4cfa
* Same transition/animation, except we don't create a visual copy of the View.
Bug: 72314029
Bug: 70220260
Change-Id: I79898be1cae7160b5dc35cc1ea8ba3dc5b2db05c
- Sometimes the system decides to destroy our surface before we
have finished animating. While this is a bug in the system, we
need to protect ourselves against any crashes in this case by
checking getNextFrameNumber() != -1 with the new SystemUI lib.
- Apply position of animation target for multi-window open
animation.
Test: Open Drive multiple times, observe no crash
Fixes: 72301120
Change-Id: I47520cea0d11cab109bf6190ea0cc828efc62275
Using state controller ensures that when the state changes the UI is
properly updated based on the state properties.
This would prevent user getting stuck in an inconsistent UI
Bug: 72173796
Change-Id: I7690a94eed7c8a620479e4247d2b681a7374ce45
Instead of moving the entire DragLayer, we only move
AllAppsContainerView. This prevents the hard white line caused
by the AllApps background translating downwards.
Bug: 70220260
Change-Id: I8249e8bbeea616e728d5502a35c95cbae401efdc
> Removing the widgets button from the card
> Making the height of the card same as that of the second card
> Using the same swipe rage for going between Normal and Overview state
Change-Id: Ib8bd050c52294bb01522fbcd0236f2221e6fe62d
> When on home time, swiping up goes to all_apps, and swiping down goes to normal
> When on a recents tile, swiping up the tile dismisses it, swiping down launches it
> When on a recents tile, swiping up on the hotseat opens allApps.
Change-Id: I59f8c02f5c5d9cb88c0585a083fbc33d33b1c806
-> This was causing a race condition which would lead to many black
thumbnails when invoking overview from home
Change-Id: I24221fd42a18a339c1b8bbdc63e63513561be9b9
> Hotseat is tied to navbar (on left in seascape)
> Search box shows up in Overview (clicking it would crash for now)
> All-apps is no longer fullscreen in landscape
> Recents cards are appropriately scaled down
> Hotseat is visible in Overview
Bug: 70179916
Change-Id: I53149eaeac9557e8a01021b7e2d139f3d6ceef37
> Loading the recents plan before showing recents and always starting with page 0
> Fixing thumbnail not getting drawn when layout happens after task plan is loaded
> Disabling two state swipe when touch service is not connected
> When using swite gesture, once user triggers the overview mode, he cannot land
in NORMAL state in that gesture
Change-Id: I7a2e83318af6e98dcc64849690fcba6dc8f71f77
This lets us handle the edge cases where widgets are added or
removed after popuplating the menu, and updating it accordingly.
Change-Id: I5d8fff8714caa718f87aeac3b15a346b80aed7a8
We add a floating view for the menu that aligns with the task icon.
If available, the following shortcuts are present:
- Widgets
- App info
- Install (for instant apps)
It is designed to be straightforward to add to this list.
Bug: 70294936
Change-Id: I56c1098353d09fc564e0e92e59e4fcf692e486ba
Previously there was hard coded logic for portrait mode, such as
always assuming Y velocity and the upward swipe direction.
Bug: 70179916
Change-Id: Id08ae849632d766b01d67da1c6c67d4e24c697d7
> Currently swipe only works from NORMAL and ALL_APPS state
> All interpolation is spread linearly
On pausing the drag for some time, the workspace moves to overview state,
and all other transitions interpolate linearly from there over the
remaining swipe range
Change-Id: Ic79f9d0f446c9bfff11e4af4d31ddc1c86c45ab2
View layer was only being used when fading in/out hotseat in overview.
From API 21+, android automatically create layers when animating alpha
The current support for view layers does not work properly when cancelling
animations and controlling partial animations
Change-Id: I2d5785471af9819575beefe65f1f2bdd28c76bd5
> Using workspace scale and translation for all-apps
> Without quickstep, workspace has the parallex effect as before
> With quickstep, workspace scales down to match the recents card width
> Using a single animator for recents views in case of state transtion and
controlled transition to prevent going into inconsistant state.
Change-Id: I1864de6892052ca771f4d0062e3d60c28840a72d
> Tracking the touch from the start of the interaction, instead of when launcher is visible
> Animating the snapshot to the final posion after first draw
> Scheduling frame only when there are pending touch events
> Starting launcher before loading recents
Change-Id: Id9c3642ea235a1d35d31dbf28024c99dd4f47daa
> Removing duplicate state handling on onCreate and onNewInetnt when InternalStateHandler is active
> Changing PinItemDragListener to use IntenalStateHandler
Change-Id: I42dcf82d1180c49430c6cf0b85d47072c4498ecc
Instead of creating workspace view larger than the screen size (so that it can be
zoomed out), restricting the size to the parent size and bypassing the drag events
directly to Workspace (since the workspace is smaller when zoomed out, it might not
qualify for all events otherwise).
Change-Id: I45e213dd6d16bec5feb6e7cf90bc6f7de4c6d305
When the touch passes a threashold, we take a snapshot and start the launcher
activity. The launcher displays the snapshot on top of its UI.
As we get further touch events, we move this snapshot and the hotseat in reponse.
Change-Id: I4623676227000afd52805a414a4de499081feced
> Creating ShareHandlers for managing UI
> In normal build, hotseat is hidden in overview, while in QuickStepBuild, it is visible
Change-Id: I5f8d35c75b861d912d93fce186b5dd74106184c3
In QuickStep, adding a placeholder ScrollView and changing the state logic
appropriately to handle that
Change-Id: I10223c0692788d6e5dbf8c408c01cafb4e39bd2c