This CL adds a handler function in SplitAnimationController that manages the complicated logic flow for launching an app pair when already inside of an app.
To give an idea of the complicated logic:
If the user tapped on an app pair while already in an app pair, there are 4 general cases:
a) Clicked app pair A|B, but both apps are already running on screen
b) App A is already on-screen, but App B isn't
c) App B is on-screen, but App A isn't
d) Neither is on-screen
If the user tapped an app pair while inside a single app, there are 3 cases:
a) The on-screen app is App A of the app pair
b) The on-screen app is App B of the app pair
c) It is neither
For each case, we call a different animation and launch the app pair in a different way.
When merged, this patch will fix all animation glitches that are currently happening in these situations, and get us 90% of the way to having the ideal animation in all cases. There are still a few complicated cases that need a polished animation (like when you launch app pairs with custom ratios), which will be implemented in a following patch soon (I thought this CL was big enough already as is).
Bug: 316485863
Fixes: 315190686
Test: Manual testing of all the different launch combinations
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TEAMFOOD
Change-Id: I5c0e03512bb706360c575d833cac6ed02a5de936
This fixes the bug where user performs double swipe back to home and we
have a floating window on the screen.
Fixes: 277515917
Test: From an app, back swipe to home, and then immediately back swipe
to home again
Flag: NONE
Change-Id: If312ee55efeaadde896511c6d449826368b15a84
- Calling TIS.onUserUnlocked() will create a new InputConsumerController
and also call register() on that consumer, which will under the hood
destroy and create the consumer with WM. However, if onUserUnlocked()
is called multiple times (generally not the case), the second call
will trigger the creation of a new InputConsumerController and try
to call destroy with the new consumer's token instead of the old
one, and when it creates a new consumer WM will throw an exception
complaining that there is already a consumer.
We should instead use the same input consumer controller instance
for each registration so that we can destroy with the same token that
was previously used to create the consumer
Fixes: 313284686
Test: Force trigger onUserUnlocked() multiple times and ensure no crash
Change-Id: I67da9a1ca82568770d470fd94f17378fd50c02f4
Grant access hidden profiles permission to Launcher3
to access private profile.
Test: checked permission is granted in adb
Bug: 321988638
Flag: NONE
Change-Id: I70657e7972d184986d4bfd82f51d77ce2a275214
This fixes the bug where taskbar shows up on home screen.
Fixes: 314790864
Flag: N/A
Test: From overview, tap on app, then immediately swipe to go home
Change-Id: I3aaa8cbe67edefc43ccd6db90ee7647152a862fc
Since shell transition, recents activity will be moved to top for
recents animation if default home is not recents. And because top
activity is able to affect display orientation. Then the appearance
may not look smooth by the orientation change.
Bug: 308639215
Test: Enable auto rotation. Set a 3rd party portrait home.
Enter recents by gesture from home.
The overview should show the same orientation as home.
Change-Id: I36cce1438bef2d2b472b10eebfe00fd3e86eb308
* Previously we assume the split placeholder view shouldn't be
present in any states except launcher split selection, however
with contextual that changes.
* Now we only ensure that view isn't there in all apps when
we are not in split selection.
Test: Test runs and passes locally
Fixes: 323418145
Change-Id: Ida92030f9b139532ebb09c1d2646795bbb940bfc
Also adds a helper in popup data provider to provide categorized
suggestions. Used in follow up CL to update the UI.
Bug: 318410881
Test: WidgetsPredictionUpdateTaskTest and manual with follow up changes
Flag: ACONFIG com.android.launcher3.enable_categorized_widget_recommendations DEVELOPMENT
Change-Id: Ie80e8ba7bbe874f7c4b0e579446edf571036555e
This reverts commit 853d7d3b4c.
Reason for revert:Probable culprit for b/323976612. Will be running through ABTD for verification and before submitting the revert.
Change-Id: Ie334d4ec7d8cdad7245610b9384cd3a61f44dc9e
Soon they will be used for both launches and returns, so these names
are more accurate.
Bug: 323863002
Flag: NA
Test: still builds (no functionality change)
Change-Id: I618780f0416a466a6672a2e694cb3e3ffd3f1396
This reverts commit 1f0465e9f2.
Reason for revert: Droidmonitor investigation of test suite failure
Bug: 323976612
Change-Id: I07895d5c10984def103c240664755b96b79f1fb5
- Avoid calling resetTaskVisuals when entering Modal state with animation off, it should only be called when leaving Overview, to be consistent with animation on case
- Use a separate property to control alpha for modalness, to avoid being overridden by other transition
Fix: 320314839
Test: presubmit
Flag: ACONFIG com.android.launcher3.enable_overview_icon_menu TEAMFOOD
Change-Id: I12a35682e25c3a70bc263afdc90a7895d6c56f11
Soon it will be used for both launches and returns, so this name is
more accurate.
Bug: 323863002
Flag: NA
Test: still builds (no functionality change)
Change-Id: Iaff2589401af24c6e9f604b3d7fa11e819fc941a
This CL makes it so that isLeftRightSplit is correctly called instead of isLandscape when animating an app pair launch.
Fixes: 318756992
Test: Manual
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TEAMFOOD
Change-Id: Id766a3f9bd315abc277e36a118fd233156cf3898
* Right now we split from all apps and we stay in all apps with
contextual split.
* We now have 2 paths, if we are in contextual split then we
should select the same app from all apps again
Fixes: 323418145
Change-Id: I3bde59847b9e47951a6acdc93660b600114c3ddd