Moved all the logic for quick step/scrub/switch to QuickStepController
so touch events can be used for deciding which gesture is used. Once a
gesture is decided, the rest will not handle the other gestures.
Quickstep will trigger when passing a touch slop on navigation bar. The
event onQuickStep (with a motion event) will be sent to launcher when
this occurs telling it that systemui is not handling anymore motion
events. During quickstep motion events will still be proxied.
Used raw X and Y motion events for Opalayout and KeyButtonView so that
the moving over the touch slop can be detected to ignore button (long)
press state.
Fixes: 73971902
Fixes: 74456391
Test: swipe up
Change-Id: I40b931aa0a9f123b810ff9206c9b1ce040a68a56
When creating a new user, it creates a new OverviewServiceProxy which
connects to launcher instead of the system user version. Since the new
proxy does not have any callbacks connected to it, launcher cannot send
any data to change systemui. Preventing the new proxy from connecting
allows the original to connect.
Test: manual, create new user, wait for connection, play with quick step
Change-Id: I0838fe8294c7a3ee89062c0c9855caf5ab52482b
Fixes: 74001992
- Update the minimized state when docking an app from home to ensure that
the animation of the docked task goes to the right bounds
- Temporarily block the invocation of the old recents activity when showing
recents as a part of setting the windowing mode of another task (this is
fine right now because quickstep only allows docking via the UI and not
from the nav bar while another task is open).
- Add proto field so we can determine whether to check the recents activity
from the split screen CTS tests
- Also fix issue with invisible docked task due to wrong bounds calculated
due to launcher not notifying the divider of the first docked frame
Bug: 73118672
Test: go/wm-smoke
Test: atest CtsActivityManagerDeviceTestCases:ActivityManagerSplitScreenTests
Test: atest CtsActivityManagerDeviceTestCases:ActivityManagerTransitionSelectionTests
Change-Id: Ib1208501c311de009a9e706103134865c521cb63
Added a 4 flags to control the state of system ui:
1. Disable swipe up navigation (prevents motion events going through)
2. Disable quick scrub (& step)
3. Show overview button (hidden by default)
4. Hide back button (shown by default)
Test: manual
Bug: 67957962
Bug: 70180755
Change-Id: Ibc44af9bbdfa9611688fe12285a999d81b8287e9
- We were intercepting touch before the quickscrub controller had a chance
to handle the touch, which meant that we canceled the recents animation
before passing the quick switch event to launcher. Instead, just move
the cancel recents animation logic to the key button view (before
handling up) and ensure that we intercept from the button only in the
cases we desire (a quick switch/scrub, recents animation start, or if
it's a dock drag (not currently enabled).
Test: Fling on the nav button to quickswitch, ensure recents animation
runs
Change-Id: Id89fda56f2996a38a9aea99179b5e2870b531003
Launcher sends the text when binding to the overview service,
which stores the text for when it needs to be shown.
Also renamed some files and strings to be more generic
Test: install launcher with updated text and ensure it is shown
Bug: 72999860
Change-Id: I5998ab8867754d877f954673e03e5faf44b606ed
When switching users, it would always connect to the system user's
launcher because the user was gained incorrectly so the new user would
lose its recents button and other issues may occur. Getting the actual
user fixes it to connect to the current user's launcher.
Bug: 67957962
Test: change users
Change-Id: If49b9bea3920242c2653913b127ac65a16c13b92
- Ensures that we cancel the recents animation when handling touch
- Moving InputConsumerController to shared lib
- Add compat classes for recents controller/listener
Bug: 70180552
Test: Manual, swipe up with suitable launcher build
Change-Id: Ib57ea73ff75545b91922df188ffb7152e9d4cebd
After launching 3 apps, we create a window at the bottom
attached to the nav bar to teach users to swipe for recents.
There is an X on this window to dismiss it, but we will keep
showing the onboarding every time they open apps until they
perform the swipe up action.
Test: manual
Bug: 70180942
Change-Id: I4b15fac918b7b1633a3c09ab0819f2acb1dce697
Added debug logs for OverviewProxyService. Use "OverviewProxyService" as
the tag to get logs. The logs cover all of the binder calls from
IOverviewProxy.adl.
Test: manual
Bug: 67957962
Change-Id: Ia46848e54683fc1aacdb633644b5161c1ac58b16
Listen for broadcast intent filter ACTION_PACKAGE_ADDED to reconnect the
connection from overview to launcher.
Test: manual - enable/disable feature from launcher settings
Bug: 67957962
Change-Id: Ic069498ec2036bcb6ab6d95002d5c34027395360
- Pass graphic buffer instead of bitmap for current screenshot
- Add option to skip preloading titles
- Adding some more compat classes
Bug: 67510855
Test: Build quickstep
Change-Id: Idf4642683d3121e69f0854ac909a8c22c7238b9a
Dumps into the dependency chain of its number of connection attempts, if
user has completed setup and if the connection is currently established.
Test: adb shell dumpsys activity service com.android.systemui
Bug: 67957962
Change-Id: I1d5ffc51f99f08c21495d51a32a103ab8fed757c
When launcher is reinstalled, it may take time for it to get ready and
to reconnect to. If not available immediately it would try to connect it
later after a timeout. Instead of waiting, receive a broadcast when it
gets installed to connect immediately.
Test: manual - reinstall launcher
Bug: 67957962
Change-Id: I1e531db9646d11a1eae99abe46d5e6f852c5eeda
Sending connection callbacks from binder thread crashes any layouts
called from the listener. Use the original handler to post connections
to fix this crash.
Bug: 67957962
Test: manual, reinstall launcher to re-establish the connection
Change-Id: I958d86346c41cbf1e9a0dc8bdeae957ec64f8a55
When launcher is reinstalled, the current service is disconnected, now
reconnect it. Also added some unlinking with the death recipient.
Bug: 67957962
Test: manual, reinstall launcher
Change-Id: Id776948df50ce27de9e73037573be1e7eac989f5
Added a listener for OverviewProxyService to get updates when the
service is connected to the launcher so that the nav bar can toggle the
slippery flag to allow more touch inputs after dragging out of the it.
Bug: 67957962
Test: manual
Change-Id: Ib1ebaec318252021fa986ec554136f19d61126f8
Changed event to connect to launcher service using onUserSetupChanged
instead of onDeviceProvisionedChanged since it does not run when other
users finish setup wizard.
Test: manual - create new user and finish setup, check connection status
Change-Id: I37d55b6089ebddb0bd2ab9e5d0e0bb3fa8d73948
Fixes: 68994491
Changing users crashes system ui because service disconnected from
unprovisioned user that had no connection. Fix by always disconnecting
if connected before trying to connect to service. Requires follow up
change to have new provisioned user to connect to service.
Change-Id: I350ec45b90fa297c6ffe4932325c3b07653538f3
Fixes: 68929438
Test: manual
The first event will have navigationbar send its x and y touch events
with no delay (upon vsync) to launcher so that launcher can detect and
animate a drag gesture.
If the user has provisioned setup, the connection between overview to
launcher service will be establish to send any information as a proxy
through binder calls. Connection will be reattached if device switches
between users. Each failure to connect to launcher service will have an
exponential backoff timeout to reconnect.
To implement call Dependency.get(OverviewProxyService.class) and then
getProxy() to get the proxy to pipe events or other information across
to launcher.
Test: manual
Bug: 67957962
Change-Id: I3828474147c37b2c514a682f9124e29a5e142736