* WM checks that the number of insets don't change for
a given window once it's added. Previously when we changed
nav modes the window was removed and a new one was added, so
changing insets amounts/types didn't matter.
* Now that we use the same window and re-provide the insets,
the number of them provided have to match (insets values themselves
can change as much as needed)
* Fix minor bug when checking bit mask for gravity
Test: Switch between nav modes, no crash; no change in behavior
w/ flag turned off
Bug: 274517647
Flag: persist.wm.debug.hide_navbar_window
Change-Id: I750f843e8210ba1c800b61ac79664265924c054a
Change-Id: Idba4e8e1888fa58bf872c04cb042f77a8b5b0573
Desktop task snapshots are shown inside the desktop tile in overview.
They use the window corner radius, when shown on the desktop. Keep the
same radius for the snapshots in overview. Only the desktop tile
background should use the task corner radius.
Bug: 280827930
Flag: persist.wm.debug.desktop_mode_2
Test: open some apps on desktop, swipe up for overview, observe the
desktop task corner radius remains the same as when on desktop
Change-Id: I55ced9f704b83a6c7619508aa3e7a8080ccc5c35
Subclasses can add more animations to the set to animate other
components in sync with themselves.
Test: Manual
Bug: 289290185
Flag: No
Change-Id: I96d9afe166e243bb0d2a9cecb8158e2e7d431a6c
Tapping on navbar handle was hiding the stashed taskbar handle.
When tappin on navbar handle, it starts the recents animation. Which
gets cancelled. Normally, the fullscreen app being visible, it means
launcher activity will be paused after. But when on desktop, launcher is
visible in the background and we need to manually set it to paused
state.
When recents gesture is cancelled after navbar handle tap, the gesture
end state is null. Detect this in DesktopVisibiltyController and mark
launcher as paused in this case.
Bug: 286140120
Flag: persist.wm.debug.desktop_mode_2
Test: open an app on desktop, tap on navbar, observe that user remains
on desktop
Change-Id: Iee915026265721d42a0b722d6b1595521f20a59a
A single bubble and the bubble stack dismiss functionality is implemented using `BubbleDragController`. It attaches a touch listener to the corresponding views and handles gesture interactions.
* When the view is long clicked the dragging to dismiss interaction starts. It scales up the dragged view and presents the dismiss view in the bottom of the window.
* When the bubble or the bubble stack is dragged close to the dismiss target area, it gets pulled towards it and sticks to it. The `MagnetizedObject` and `MagneticTarget` classes are used for it.
* When the dragged view is released outside of the dismiss area, it moves back to the initial position with animation.
* When the dragged bubble is released inside of the dismiss area, it will dismiss the bubble with animation and remove it from the stack.
* When the dragged bubble bar stack is released inside the dismiss area, all the bubbles will get dismissed and the bubble bar will dissapear.
Bug: 271466616
Test: manual, TBD
Flag: WM_BUBBLE_BAR
Change-Id: I83393898be61ec522db92688ac2e111ef7d72fe6
* Added WMShell related proxy methods.
* Added DismissView dimensions and drawable resources.
* Added DismissView extension file to set it up with dimen and drawable resource ids.
Bug: 271466616
Test: manual, TBD
Flag: WM_BUBBLE_BAR
Change-Id: Iddac977a9c8a63facee45e9dd2eb234bb18d030b
* We weren't removing the instance of the view
that is created when split initiated from workspace
* Fewer bugs like this once RecentsView + workspace
instructions view are consolidated
Bug: 292590703
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE
Test: Swiping to home after split apps launch
hides the view
Change-Id: I6b5037c024e6e0c456b687bc802076f691a955b2
The bounds of the bubble stash handle is calculated based on the bounds of
the bubble bar. The problem is that the bubble bar could be invisible, which
results in incorrect bounds set for the handle.
This change sets the bounds for the handle based on the width of the screen.
Fixes: 290992144
Test: Manual
- Remove bubbles
- Restart Launcher
- Open the bubble test app and double tap on a chat
- Observe that the handle animates in
Change-Id: Ida260014d59b88387de010891c18057f3b091e93
Fixes: 290608658
Test: Manual:
- Remove all bubbles
- Lock and unlock device
- Observe that bubble bar is not displayed
- Remove all bubbles
- Restart launcher process
- Observe that bubble bar is not displayed
Change-Id: I850d307394230968f86abc23ba0b4e94f55e10f0
`MyDepthController` in `QuickstepTransitionLauncher` assumes that we
want the background to always animate the same way, matching the rest
state of the workspace (depth == 0). However, in Taskbar All Apps the
background is visible, and depth != 0. We now initialize the one-off
`DepthController` for launches to take into account the latest depth set
by the top level `DepthController`, so there is no jumpcut at the
beginning of the animation.
Note that in my opinion we should use the same `DepthController` for all
cases, rather than having this one-off. I'm looking into the feasibility
of that change, but for now this fixes the issue at hand.
Fix: 292959100
Flag: N/A
Test: manual, see videos in the bug
Change-Id: Id90e8e728cc3e2ccf7d92148fbb0d6ff3e6fd6ca
Put logic to stash desktop apps behind a flag. Turn it off by default.
Bug: 292109910
Flag: persist.wm.debug.desktop_stashing
Test: turn off the flag, open an app on the desktop and go home
observe that user is taken to home screen and subsequent launches
are in full screen
turn on the flag, open app on the desktop and go home
observe that there is a toast shown for desktop and next app is
launched to desktop
Change-Id: Ic6f9a3644bb09d4fb877f4694843a7c20969f925
Flag: None
Test: adb logcat -b events | grep jank_cuj_events
- Verified quick switch from home gets begin and end
- Verified quick switch then swipe back or up to home
gets begin and cancel
- Verified quick switch then swipe up to overview
gets begin and cancel
Fixes: 290323639
Change-Id: I4f1991251b111c0531b30c48ba610ce85dcafdd3
ag/23852178 introduced a clean up for launcher state when invoking
transient taskbar. It was checking launcher activity resumed state with
`isResumed()` method. This breaks transient taskbar for desktop mode as
we are marking the launcher activity to be paused using the launcher
flags. `hasBeenResumed()` method is the one we can used instead as it is
checking the launcher flags and not the resumed state of the activity
itself.
Bug: 292266259
Test: open transparent activity on top of launcher
unstash taskbar
go home
Test: move an app to desktop, unstash taskbar
Change-Id: I98d14dbfdde4b857f50e62206fc0f308e8f54231
If floating search is active in Overview (flag enabled and we are
the active Launcher), these buttons will be aligned to the search
bar relative to the bottom of the screen. Otherwise, the buttons
will be aligned below the active task like before.
Demo for Launcher3 build:
https://drive.google.com/file/d/1fVzRRnW5AFDMPkW-E8_w4BOCzTAOURQ_/view?usp=drive_link&resourcekey=0-6-EbFZXkBqcu0rw7uuEzjw
Bug: 292000892
Test: Manual with floating enabled/disabled and
SEPARATE_RECENTS_ACTIVITY enabled/disabled (simulating not being
the active Launcher). Also tested with a 3P Launcher, Nova.
Flag: N/A; this change is enabled by default, but also verified
UI looks correct with ENABLE_FLOATING_SEARCH_BAR.
Change-Id: Ia45f88d2c691c4525b1e73cca4707498d058a917
- The second start activity was causing issues with 3p launchers which
may not expect another new intent (ie. if it handles gestures at
the bottom of the screen). We can't completely remove this logic
because for button navigation we don't want to fall through to the
launch-next-task animation below, but we can can continue to
finish the recents animation immediately.
- With shell transitions, leashes for opening apps are always hidden
by default so when transitioning to a 3p launcher from
RecentsActivity we also need to show the surface if we want to
animate it in
Bug: 289609734
Test: Set 3p Launcher as default, in both gesture & button navigation
- Go from 3p home -> overview, then overview -> 3p home
- Go from app -> 3p home
- Go from app -> overview, then overview -> 3p home
- Quickswitch from app
Change-Id: I6875083931de63a8097d23d180553885ed7cfb01
Signed-off-by: Winson Chung <winsonc@google.com>
* In ag/23680185, a null check was removed that was
checking if individual mLastAppearedTaskTargets were null;
we check if the array overall is null, but individual
elements can also be null, ex 3P launcher
Bug: 289609734
Test: Repro steps from b/289609734 don't cause crash
Flag: none
Change-Id: Iddfde6d9ac2b708380b70b5fb6301b629506619c
Launching the gesture nav tutorial in portrait mode on tablets causes fragments with the wrong layout file to be inflated (uses the default phone layout).
Reinflating fragments whenever they need to be switched. Added a new rotation prompt fragment
Flag: ENABLE_NEW_GESTURE_NAV_TUTORIAL
Fixes: 291062054
Test: Launched the tutorial in portrait mode and landscape mode, then rotated the screen several times. tried with the flag disabled as well.
Change-Id: I0215d7589285007d04ef81d3a63e404c2cda3895