Commit Graph
6897 Commits
Author SHA1 Message Date
Sam Cackett becd601c68 Merge "Translate IconMenu to top / left of thumbnail view" into main 2024-02-22 08:59:42 +00:00
Treehugger Robot a5e8751f0d Merge "Merging multiple implementations of CancellableTask" into main 2024-02-22 02:54:30 +00:00
Vinit Nayak 2b031727f0 Merge "Log split metrics through individual sessions" into main 2024-02-21 00:20:44 +00:00
samcackett 6eaa509481 Translate IconMenu to top / left of thumbnail view
When splitting a task that is already part of a split app pair from the
 TaskBar, with the enableOverviewIconMenu feature enabled, position the
 IconMenu to the left of a leftRightSplitApp pair, or the top of a
 topBottomSplitApp pair

Fixes: 317001670
Test: Manual
Flag: ACONFIG com.android.launcher3.enable_overview_icon_menu TEAMFOOD
Flag: ACONFIG com.android.launcher3.enable_grid_only_overview TEAMFOOD
Change-Id: I4740d7c96635ee9542f7061938baf6fbf2ca01d4
2024-02-20 16:05:10 +00:00
Alex Chau d564a9d26c Merge "Update pivots after taskSize is updated" into main 2024-02-20 11:57:49 +00:00
Alex Chau a6def81654 Merge "Don't run parallax animation for grid overview" into main 2024-02-20 11:35:36 +00:00
Alex Chau ec6f0bad38 Don't run parallax animation for grid overview
Bug: 286821534
Test: manual
Flag: None
Change-Id: I08c77ce5d538ee07374e9f88fc4d00cc8165f28b
2024-02-20 11:34:58 +00:00
Treehugger Robot 89170d6fab Merge "Update color of Overview ShareTarget scrim" into main 2024-02-19 14:17:47 +00:00
Alex Chau 51c09ed13e Merge "Avoid resetting RecentsAnimationController and RemoteTargetHandle without clear ownership" into main 2024-02-19 12:00:56 +00:00
Alex Chau 6ff4c1f5a4 Merge "Always run animateClose when closing TaskMenuView" into main 2024-02-19 10:27:32 +00:00
Jon @ d3693424f5 Merge "Notify home is visible when launching a translucent app." into main 2024-02-16 21:43:28 +00:00
Ats Jenk ca99653959 Merge "Create bubbles input consumer before nav bar long press" into main 2024-02-16 19:52:08 +00:00
Alex Chau c302daec2f Avoid resetting RecentsAnimationController and RemoteTargetHandle without clear ownership
- RecentsView only see itself owning RecentsAnimationController and RemoteTargetHandle after live tile is enabled via onGestureAnimationEnd to RECENTS
- RecentsView will finish recents animation if it owns RecentsAnimationController and is leaving RecentsView
- Otherwise, reset() would not reset RecentsAnimationController or RemoteTargetHandle
- Added logging for interaction between gesture and RecentsView to aid future debugging

Bug: 288557298
Test: manual
Flag: None
Change-Id: Icdcb91b98b2bb5d6d3bc30070f533ea79915bc09
2024-02-16 19:23:08 +00:00
Alex Chau 1ae5e169b0 Update pivots after taskSize is updated
- For case that there are no TaskViews, onLayout is not called, so updatePivots isn't called when folding

Fix: 325314248
Test: Manual
Flag: None
Change-Id: If7377f2e4fcbe4a874f823bb99b0b197cd5f7b87
2024-02-16 15:23:35 +00:00
Alex Chau 60ad90e519 Always run animateClose when closing TaskMenuView
- This avoid diverging code path when animation is off
- Also made sure menuTranslationX and Y always reset when not needed
- Also remove AnimatedVectorDrawable in favour of scale animation in code, as AnimatedVectorDrawable doesn't work well when animation is off

Bug: 319086207
Test: OverviewMenuImageTest
Flag: ACONFIG com.android.launcher3.enable_overview_icon_menu TEAMFOOD
Change-Id: I4a18cf4aac3237031095c2600c777b6c4c3e518f
2024-02-16 14:58:14 +00:00
Ikram Gabiyev 1979abe353 Merge "Move IPip and IPipAnimationListener to common" into main 2024-02-15 23:42:51 +00:00
Jon Miranda 26447ddc98 Notify home is visible when launching a translucent app.
To fix the taskbar stash delay when launching an app, ag/18875100
sets the state so that the taskbar stashes immediately after
app is launched.

Since we cannot know if the app is translucent at that point,
we have to check after the animation is started so we can update the
launcher visibility state.

Bug: 314792981
Flag: ACONFIG ENABLE_HOME_TRANSITION_LISTENER TRUNKFOOD
Test: HomeObserverTest
Change-Id: Ifc3a6559d7a8c6fda4c08a0fc2d6791da46b38d6
2024-02-15 13:55:42 -08:00
Schneider Victor-tulias 00a484bf03 Merge "Fix alt-tab initial focus in overview on phones" into main 2024-02-15 21:06:08 +00:00
Sunny Goyal cc1dad0cae Merging multiple implementations of CancellableTask
Bug: 318539160
Flag: None
Test: Manual
Change-Id: Ie855427c2676e0ce76655e4dd67472c0b5e435d8
2024-02-15 13:01:10 -08:00
Ikram Gabiyev f32c27f773 Move IPip and IPipAnimationListener to common
Move IPip.aidl and IPipAnimationListener.aidl to common.pip
package as a part of PiP2 refactoring.

Make sure users of these Binder interfaces in Launcher
also reference the updated classname and package.

The plan is to use these interfaces to implement
PiP2 <-> Launcher IPC to facilitate transitions and animations
for gesture nav and auto-enter PiP for instance.

Note: this CL shouldn't yield any behavioral changes.

Flag: NA
Bug: 325481148
Test: mp droid
Change-Id: I065334f6777cd1489c739d95abf0fab8285860ed
2024-02-15 11:17:36 -08:00
Schneider Victor-tulias 5c6263afc5 Fix alt-tab initial focus in overview on phones
Flag: LEGACY ENABLE_KEYBOARD_QUICK_SWITCH ENABLED
Fixes: 325057678
Test: used alt+tab on a phone from home and from an app
Change-Id: I98388fea448fd1932d767c420e232d1451e0bbfe
2024-02-15 18:07:54 +00:00
Alex Chau a841753785 Update color of Overview ShareTarget scrim
Fix: 323091847
Flag: None
Test: manual
Change-Id: I234aea721eaa81e42551899c6692ea0e9df468cc
2024-02-15 12:14:42 +00:00
Ats Jenk 32664125af Create bubbles input consumer before nav bar long press
NavHandleLongPressInputConsumer handles long presses on the nav handle
and passes the touches on to a delegate if the touch is not a long
press.
When bubbles are expanded, we create a new input consumer that does
nothing and allows bubble input consumer in shell to take over.
Change the order how the input consumers are created. Create the bubbles
input consumer first, so it can be passed in as a delegate to the
nav handle input consumer. And this avoids bubbles overriding the nav
handle behavior.

Flag: ACONFIG com.android.wm.shell.enable_bubbles_long_press_nav_handle DISABLED
Bug: 324910035
Test: manual, expand a bubble, long press on home button for CtS
Change-Id: I05c219145c096a567bb0bb5a9cb3a40046b29519
2024-02-14 11:25:16 -08:00
Alex Chau 76502e84f2 Merge "Refactored StateManager logs" into main 2024-02-14 17:40:08 +00:00
Schneider Victor-tulias 6e32385838 Merge "Show scrim immediately when animating to overview from app through KQS" into main 2024-02-14 15:21:35 +00:00
Vinit Nayak 5a9d4af170 Log split metrics through individual sessions
* Now we log the original source of the first selected app
as soon as the user selects it (previously we only did when user
selected second app)
* We log the item info for the second app to determine second
surface.
* Added new metrics to log after user has started a split session
and ended a split session
* We log different cancellation reasons (cancel button,
home gesture, general other app interruptions, etc).
* One KI/Bug: When the second app is selected via taskbar in
overview, the container will say hotseat because we are using
Launcher's logger and not Taskbar's. Taskbar's logger manually
overwrites the container in TaskbarActivityContext, we may be
able to make something hacky that can allow us to overwrite, but
that'll have to be a separate change

Bug: 322551862
Test: Logged metrics manually with event and itemInfo
Change-Id: I177623fd00ce62acf2d4ee983b58561d8c946d59
2024-02-13 17:55:08 -08:00
Schneider Victor-tulias bd5ffee884 Show scrim immediately when animating to overview from app through KQS
Flag: LEGACY ENABLE_KEYBOARD_QUICK_SWITCH ENABLED
Fixes: 324888882
Test: opened overview from app/home with finger swipe/KQS/overview button
Change-Id: Ia4a15f5a64956ec56fc9aae3511173219616245e
2024-02-13 19:00:04 -05:00
Saumya Prakash e1c6312800 Merge "Update back gesture tutorial strings to align with UX" into main 2024-02-13 22:48:17 +00:00
Alex Chau 4e6e1555c4 Refactored StateManager logs
- Make the log permanaent behind a DEBUG flag
- Logs are currently enabled with b/279059025 marked as the related bug

Bug: 279059025
Flag: None
Test: Manual
Change-Id: I60a75d73d40d00e7d42292f3d42cc9dd8c9b0825
2024-02-13 15:35:15 +00:00
Jordan Silva 3a42f0e0eb Merge "Log split button visibility to debug spacing issue" into main 2024-02-13 11:44:11 +00:00
Saumya Prakash 96ce6873dd Update back gesture tutorial strings to align with UX
This change updates the feedback shown to users to align with the
strings in figma for the back gesture tutorial.

Fix: 300919987
Test: Went through both the redesigned and previous gesture tutorial and
ensured the updated strings show up in the redesigned tutorial.
Flag: LEGACY ENABLE_NEW_GESTURE_NAV_TUTORIAL ENABLED

Change-Id: I057af6e8631b86ffaec8093ffbfbeae01c9d917c
2024-02-13 00:35:37 +00:00
Schneider Victor-tulias 11e19c139b Merge "Add debug logs to MotionPauseDetector" into main 2024-02-12 22:28:28 +00:00
Schneider Victor-tulias 49bdc5d7ea Add debug logs to MotionPauseDetector
Flag: NONE
Bug: 321123090
Test: checked TIS logs
Change-Id: If389226c60b5115fcf90e76733383c74ceb7fbcd
2024-02-12 15:09:34 -05:00
Jordan Silva 2d55c9c679 Log split button visibility to debug spacing issue
Bug: 321291049
Flag: N/A
Test: N/A
Change-Id: Id998be1c8337dfc3617893726dcb5d96fb6a35b8
2024-02-12 16:46:43 +00:00
Alex Chau 8cb873d8fb Merge "Use bigger task size in app to overview carousel" into main 2024-02-12 16:17:30 +00:00
Alex Chau beb3053f3b Use bigger task size in app to overview carousel
- Introduced carouselTaskSize that represent size of TaskView in app to overview carousel, that is bigger than size of TaskView in Overview state
- Use nonGridScale and translation to scale TaskView to the desired carousel size
- For current task, inroduced carouselScale and translation to apply similar transformation at the carousel. They will be reset in `onPrepareGestureEndAnimation` after gesture is released and form the grid. Carousel translation can be invalidated and aniamte to 0.
- Fixed current task left/right wiggle that is caused by task shrinks and translate in different direction. Pivot is now moved to top right (or top left for RTL), to align with movement of current task.
- To compensate for the pivot change, current task is translated back to the carousel position by taskTranslation, and again translated by carouselTranslation for carousel -> fullScreen scaling. A complex interpolator is introduced to make current task moves in a vertical straight line rather than a curve.
- Fixed a bug in AnimatorControllerWithResistance when scaleStartResist==scaleMaxResist that causes division by 0. For grid overview, resistance kicks in after reaching carousel size, and current task size won't reduce further
- Added PendingAnimation#addAnimatedFloat that uses animator provided by AnimatedFloat, so the animator can be canceled and reaniamte from AnimatedFloat side; AnimatedFloat now clears the property values during cancel so the canceled animator still referenced by PendingAnimation can no longer change the values

Fix: 318352235
Fix: 308643507
Flag: ACONFIG com.android.launcher3.enable_grid_only_overview TEAMFOOD
Test: presubmit
Change-Id: I2872d8b2204798fe5e05c10d08480a81e60bb498
2024-02-12 12:06:05 +00:00
Jordan Silva 9d9276810e Merge "IconAppChipView wrong position after rotation with menu opened" into main 2024-02-12 11:02:42 +00:00
Sunny Goyal b999979bbb Merge "Creating GestureExclusionManager for a single place to listen for gesture exclusion region changes" into main 2024-02-10 08:17:50 +00:00
Jordan Silva 3fc2298a45 IconAppChipView wrong position after rotation with menu opened
The chip menu was updated to a wrong position when the chip menu was visible and the display orientation changed. An animation to hide the TaskMenuView was happening during the rotation. The animation started before the rotation with wrong positions associated to it, thus, updating the position of the IconAppChipView with wrong X and Y position.

Fix: 320633351
Flag: ACONFIG com.android.launcher3.enable_grid_only_overview TEAMFOOD
Flag: ACONFIG com.android.launcher3.enable_overview_icon_menu TEAMFOOD
Test: TaplTestsSplitscreen.testAppChipIsPositionedCorrectlyAfterRotation
Change-Id: Id19ce02f09fa5ff50c6caeab02286d548a520c94
2024-02-09 18:02:15 +00:00
Uwais Ashraf c2f73d9091 Merge "App chip refactor" into main 2024-02-09 13:43:03 +00:00
Uwais Ashraf 99fdf7a75e App chip refactor
- Adds background outline replacing 2 circles + rect approach. This
enables easier shadow drawing code.
- Simplify structure of AppChipView.
- Adds an anchor View to simplify laying out of menu around app chip

Bug: 313644427
Bug: 317007147
Fix: 322760765
Flag: ACONFIG com.android.launcher3.enable_grid_only_overview TEAMFOOD
Flag: ACONFIG com.android.launcher3.enable_overview_icon_menu TEAMFOOD
Test: OverviewImageTest
Change-Id: I56c2644779863c083ae475a740a84321b1d0c396
2024-02-09 12:09:42 +00:00
Jeremy Sim b9c2a1b735 Merge "Fix app pairs launch from in-app Taskbar" into main 2024-02-09 08:10:11 +00:00
Jeremy Sim cf9132e07c Fix app pairs launch from in-app Taskbar
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
2024-02-09 13:41:29 +08:00
Sunny Goyal ab67e938db Creating GestureExclusionManager for a single place to listen
for gesture exclusion region changes

Bug: 273828110
Test: atest GestureExclusionManagerTest
Flag: None
Change-Id: Ida257b47d4f34b247af0f25310d589b89f790e65
2024-02-08 18:31:35 -08:00
Jon @ 356401e663 Merge "Ensures that we end back to home animation on the last animation frame." into main 2024-02-09 00:43:41 +00:00
Jon Miranda 5441cce805 Ensures that we end back to home animation on the last animation frame.
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
2024-02-09 00:43:31 +00:00
Winson Chung 7a9923c2c7 Merge "Fix issue with wrong token used for input consumer unregistration" into main 2024-02-08 19:05:44 +00:00
Winson Chung b917c9ef52 Fix issue with wrong token used for input consumer unregistration
- 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
2024-02-08 19:05:30 +00:00
Jon @ f670b96e31 Merge "Update state for when task launched in live tile mode gets cancelled." into main 2024-02-08 00:00:21 +00:00
Tracy Zhou e14948d0f6 Merge "Show hotseat instead of stashed taskbar handle after entering stage split from fullscreen app via keyboard shortcut" into main 2024-02-07 22:04:20 +00:00