Commit Graph

218 Commits

Author SHA1 Message Date
Schneider Victor-tulias 44de9caaeb Send ACTION_CANCEL motion event to TIS instead of finishing the recents animation on screen off
Finishing the recents animation on screen off callback did not necessarily stop touch tracking, which would allow the user to double press the power button, but create a broken experience.

Sending ACTION_DOWN instead stops touch tracking and runs the proper clean up methods.

Flag: not needed
Fixes: 299235099
Test: single-pressed and double-pressed the power button mid-gesture
Change-Id: I2608053460f43703613bd6caead91ccb4ce08ceb
2023-09-18 16:28:43 -04:00
Treehugger Robot 5d5c7d9644 Merge "Add logs around hotseat suggested apps" into udc-qpr-dev am: 41d269a43b am: cde39e3cfd
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/24529027

Change-Id: I04f52c10ad56418d64d39cc1ec2cd083f4c4ce6c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-08-29 17:48:04 +00:00
Treehugger Robot 41d269a43b Merge "Add logs around hotseat suggested apps" into udc-qpr-dev 2023-08-28 23:09:44 +00:00
fbaron 6707ddd016 Add logs around hotseat suggested apps
Bug: 295892343
Test: n/a
Flag: no flag
Change-Id: Id6f464c8614317f58f6886734ad1f9b9709d6aa3
2023-08-24 11:15:46 -07:00
Vinit Nayak 654604037a Add back gesture support when split selection active
* Currently this exits the current launcher state
back to homescreen whenever back is performed while
split selection is active.
* Open UX question if that needs to be changed.

Test: Did back gesture from workspace, overview, all apps
http://recall/-/cMb5xTTxhmZtFt04eYnmQj/g0kpGTsqlj0RSt4OfDBkpf
Bug: 295449659
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE
Change-Id: I74fe51aaf4301fb723d2e69e6b1b39d127f492d8
2023-08-24 17:52:37 +00:00
Vinit Nayak 0989216160 Merge "Null out Activity in split controller" into udc-qpr-dev 2023-08-22 16:21:45 +00:00
Sunny Goyal 5442cbc300 Clean up RECEIVE_UNFOLD_EVENTS_FROM_SYSUI flag
Bug: b/270397209
Test: Presubmit
Flag: RECEIVE_UNFOLD_EVENTS_FROM_SYSUI
Change-Id: I4f87777fd27b5489557742b58e25dc5488b7d32b
2023-08-22 04:31:09 +00:00
Vinit Nayak b620af4612 Null out Activity in split controller
Bug: 295225524
Change-Id: I59aaed3fca07d611088cec0a4bfafc658a151bb2
2023-08-21 23:40:51 +00:00
Mateusz Cicheński 23ed054a6d Remove enable_pip_keep_clear_algorithm flag
Bug: 296239520
Test: presubmit, removing flag
Change-Id: I135d4b5fedaf094dd136924655d55c70616fa838
2023-08-16 17:55:14 +00:00
Sunny Goyal 12bf58feb9 Merge "Removing some unused overrides in Launcher" into udc-qpr-dev 2023-08-14 20:40:28 +00:00
Nicolo' Mazzucato 93e7e4b1c0 Add relayout debug support in Launcher
This adds support for measure/layout tracing in Launcher (in sysui it has already been enabled in T)

When enabled, traces for each class measure and layout are output in
a perfetto trace. This adds some overhead, so it's disabled by default, but extremely useful for testing and debugging long doFrames.

To enable request layout tracing for a specific class X, the following helper can be used:

trace_class_layouts() {
        adb shell setprop persist.debug.trace_request_layout  1
        adb shell setprop persist.debug.trace_request_layout_class $1

        adb shell am force-stop com.google.android.apps.nexuslauncher
        adb shell am force-stop com.android.systemui
}

Then, use `trace_class_layouts X` and record a perfetto trace
e.g. `trace_class_layout BubbleTextView`

To just see class breakdown of measure/layout setting `persist.debug.trace_request_layout` is sufficient.

Test: record a trace after enabling options
Bug: 266090955
Change-Id: I4f621ebaaec6a07cd7c0693aa8876158cc60e208
2023-08-14 08:18:27 +00:00
Sunny Goyal c1d1e68a82 Removing some unused overrides in Launcher
> Changing AddItemActivity to use RemoteAnimation directly
  to avoidTransitionManager override

Bug: 273828110
Test: Manual
Flag: N/A
Change-Id: I49777e7eeba00319476b0a239bc1cdac37833457
2023-08-11 12:31:49 -07:00
mattsziklay 95c85034ea Allow split select transition from desktop mode.
Introduces a new controller to manage an app entering split select mode
from desktop mode.

Video: http://recall/-/gjymLwjdDT07aWqaK6101a/gU56zTDcWov6ukbKuH8tFx
Flag: ENABLE_SPLIT_FROM_DESKTOP_TO_WORKSPACE
Bug: 286550932
Bug: 279586624
Test: Manual

Change-Id: Ib94402553c88286894d94c95c38cac125be23a0d
2023-08-09 17:23:03 +00:00
Jeremy Sim 6390654526 Merge "App Pairs: Implement save, inflate, launch, and delete" into udc-qpr-dev 2023-08-08 00:56:04 +00:00
Jeremy Sim 94fd07e5da App Pairs: Implement save, inflate, launch, and delete
This is the third of several patches implementing the App Pairs feature behind a flag.

This patch includes:
- AppPairIcon and associated XML. Actual icon asset is placeholder for now
- Ability to launch split pair on click
- Icon can be moved around, incl. to Taskbar
- App pair can be deleted by dragging to "Remove" drop zone
- Icon persists on Launcher reload

Change-Id: I88aec6fbc814be98f9ef048bbc5af889d0797970
Flag: ENABLE_APP_PAIRS (set to false)
Bug: 274835596
Test: Not included in this CL, but will follow
2023-08-02 12:08:41 -07:00
Ats Jenk 97c6160359 Merge "Fix tap on navbar handle when on desktop" into udc-qpr-dev 2023-08-01 17:28:57 +00:00
Ats Jenk 7d72bcd46e Fix tap on navbar handle when on desktop
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
2023-07-28 17:33:00 -07:00
Vinit Nayak a1d0d8269c Remove split instructions view on split launch success
* 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
2023-07-27 14:11:27 -07:00
Fengjiang Li bebcaaae19 Merge "Log appear animation's scale factor" into udc-qpr-dev 2023-07-20 21:02:42 +00:00
Fengjiang Li da718e9749 Log appear animation's scale factor
Test: Grabbed a bug report b/291974797
Flag: N/A
Bug: 290320302
Change-Id: Ic33dc94806b838a03a2203bdd5701a1eeaeeb7bf
2023-07-20 11:08:14 -07:00
Vinit Nayak 5f09091583 Show split select instructions toast when starting split on workspace
* Used same animation properties that RecentsView uses to
show the instructions view unfolding
* TODOs:
  * UI polish (correct asset, animation timings, etc)
  * Hook into existing animations (if possible)
  * Migrate recentsView splitInstructionsView to use same/similar code path;
    remove RecentsView#safeRemoveDragLayerView

Bug: 276361926
Test: Create split w/ and w/o flag, works as expected
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE
Change-Id: I7a51b71c358902399ad73b650287cdbf1dad07c6
2023-07-14 17:49:42 -07:00
Vinit Nayak cf6b71a14e Merge "Allow pressing home button on recents if command queue not empty" into udc-qpr-dev 2023-07-12 20:58:59 +00:00
Vinit Nayak f909a72f3f Merge "Cleanup ENABLE_SPLIT_FROM_WORKSPACE flag" into udc-qpr-dev 2023-07-12 20:57:22 +00:00
Vinit Nayak 46b2beea26 Cleanup ENABLE_SPLIT_FROM_WORKSPACE flag
Fixes: 270393906
Flag: none
Test: Compiles
Change-Id: I1431f544b26cef5cd417c9a5a97f183b49fe7adc
2023-07-11 17:05:17 -07:00
Vinit Nayak f6c2e87747 Dismiss split select when tapping on home button
Bug: 276361926
Test: Initate split, dismiss whenever home is pressed,
doesn't dismiss when all apps dragged down
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE

Change-Id: Idc95123e27963c3913d04c6eb27f0e4c9b1eb401
2023-07-10 11:06:42 -07:00
Vinit Nayak a6b441bdee Allow pressing home button on recents if command queue not empty
Fixes: 290252373
Test: Go home from overview, works
Flag: None
Change-Id: Ie40eb1891f38b1561eda89ad0f7987cdecd9da16
2023-07-07 14:03:37 -07:00
Vinit Nayak 5e2a2564e8 Reset split selection state when swiping to home
Bug: 276361926
Fixes: 238651489
Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE

Change-Id: Ic1439561f37b50ebf9dfb99edbeece21520798b1
2023-07-06 15:08:05 -07:00
Holly Sun 35b9960b63 [a11y] Fix crash when using talkback to add to home screen.
1. Fix a crash from http://cs/android-internal/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java;l=1928;rcl=d677caa75de74f1c3a88367cad67ae405fd2903d. It can also be `ITEM_TYPE_SEARCH_ACTION`. Remove the `itemType` check and just use the `PendingAddItemInfo` class type.
2. Override `startConfigActivity` in `PinShortcutRequestActivityInfo`, so that `Launcher#onActivityResult` can be triggered properly from `Launcher#processShortcutFromDrop` (http://cs/android-internal/packages/apps/Launcher3/src/com/android/launcher3/Launcher.java;l=1939;rcl=d677caa75de74f1c3a88367cad67ae405fd2903d )
3. Then we call to `Launcher#completeAdd` -> `completeAddShortcut`. The original `info` passed to `processShortcutFromDrop` doesn’t have a `componentName` (new code), so remove the component non-null check from `completeAddShortcut`.

Bug: 287166186
Bug: 287167527
Bug: 287166771
Test: manual
Flag: N/A
Change-Id: Id3e1444de188f2d2af760f58e3d9814a2b7abd88
2023-06-30 08:42:31 -07:00
Winson Chung 551cbc4969 Merge "Workaround for handling the restart of an already visible task" into udc-dev am: 0da5208bb3 am: c8a2f9111b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23785437

Change-Id: I2a7ebbac3c510d32b70ee57dd8323123800ff09a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-28 07:52:58 +00:00
Winson Chung 57c2a79e47 Workaround for handling the restart of an already visible task
- If a task is already visible, then startActivity is a no-op and the
  remote transition that launcher expects to run is not started. As a
  workaround (until restarts are an actual transition), listen for
  the case where a task is restarted and invoke the end callbacks

Fixes: 286016555
Test: Repro steps on the bug
Change-Id: Iec3ab97c8817a5e95399cec90f891d65f369d234
2023-06-28 05:51:54 +00:00
Sunny Goyal b02dafc1d4 Removing explicit target SDK for launcher
> It will automatically target the latest SDK it was compiled with

Bug: 284349887
Test: Presubmit and manual
Flag: N/A
Change-Id: I32629b0dd710c3c04d8f70f988b7279e7cae6731
2023-06-26 10:15:14 -07:00
Schneider Victor-tulias 9c18ce4871 Remove unnecessary method from StatefulActivity
Flag: not needed
Fixes: 284920213
Test: quickly tapped overview button and quickly tapped scrim; added logs to check error case
Change-Id: I6cb66012379d30e8ce91533a9f4350bf309f1341
2023-06-22 17:50:58 +00:00
Schneider Victor-tulias 7a12786c79 Merge "Skip sending user home when the overview command queue is pending." into udc-qpr-dev 2023-06-21 21:50:56 +00:00
Schneider Victor-tulias cb0de75242 Skip sending user home when the overview command queue is pending.
Tapping the overview scrim during an app -> overview transition in 3-button nav can replace that state transition's aniamtion, leaving the device in a broken state. The assumption is that the user did not mean to tap the scrim while quickly tapping the overview button. Skipping the startHome request if the overview command queue is not empty.

Flag: not needed
Fixes: 284920213
Test: quickly tapped overview button and quickly tapped scrim; added logs to check error case
Change-Id: I8fea76d810e550e28a61a4528796b358103cb5b3
2023-06-21 17:53:03 +00:00
Vinit Nayak 1c81f07eb5 Allow starting split from home, selecting second app from overview
* KI: After entering overview, swiping to exit doesn't
clear split state. That's because LauncherRecentsView#reset()
gets called both when entering and exiting overview.
We'd need to check or pass through what state we're moving to
to determine whether or not actually to reset state in
SplitSelectStateController, or handle that at the gesture level

Flag: ENABLE_SPLIT_FROM_WORKSPACE_TO_WORKSPACE
Test: Manual, split paths work w/ and w/o flag enabled
Bug: 276361926
Change-Id: I39391ac5f92b774d8198930829caabe84d950598
2023-06-20 15:17:48 -07:00
Andy Wickham e769a86dc5 Merge "Enable returning to the previous app after Overview -> All Apps." into udc-qpr-dev 2023-06-08 22:22:06 +00:00
Treehugger Robot 9c9764c28b Merge "Moved TISBinder lifecycle handling to TISBinderHelper" into udc-qpr-dev 2023-06-07 19:37:13 +00:00
Schneider Victor-tulias 19d085107a Merge "Add null-check to findLastActiveTaskAndRunCallback" into udc-dev am: bfa0fae851 am: 396bb7c262
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23590296

Change-Id: Ifd444206ac34ba591bf2f6033bf6961fadb5425f
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-06-07 18:21:17 +00:00
Schneider Victor-tulias 871d7fc351 Moved TISBinder lifecycle handling to TISBinderHelper
- All instances where we used TISBinder will now use TISBinderHelper#getBinder. This will allow TISBinderHelper to handle its lifecycle
- Moved all instance of TaskbarManager and OverviewCommandHelper as well since TIS and TISBinder handle their lifecycles
- Cleaning up launcher instance from TaskbarManager when TISBinder is being destroyed

Flag: not needed
Bug: 283490010
Test: ran launcher and performed gestures
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:248794e698417b1156bf911adb31682186fe2e34)
Change-Id: I8415a6b2c1dba0776e7c0e1ee32ad3c683100bde
2023-06-07 17:15:18 +00:00
Andy Wickham adce95394e Enable returning to the previous app after Overview -> All Apps.
Back gesture from All Apps (history for state):
If previous state was background, use quick switch state to return
to the previous app.

Swipe down from All Apps:
Return to previous state (which will be Normal or Quick Switch).

This animates from All Apps overview scale/translation to full
screen of the previous task. In this case we are animating from
0.5x Overview scale and 0 translation (centered).

Video: https://drive.google.com/file/d/1cpQjtFemtJ4zu9aWu7IiUftWWVGFrbtM/view?usp=drive_link&resourcekey=0-1zuMEvYNsk81YBxv8o10hA

Note: This is mostly for the gesture/state handling but it would
be nice to polish this transition in the future.

Bug: 283336332
Test: Manual
Flag: ENABLE_ALL_APPS_FROM_OVERVIEW
Change-Id: Iec92df933ce6522f181d3d5ca889b6a6469f4cc6
2023-06-06 17:13:59 -07:00
Schneider Victor-tulias ab51f2110a Add null-check to findLastActiveTaskAndRunCallback
ItemInfo.getTargetComponent is nullable, so we can't always create a ComponentKey. Added a null-check and proper creation of ComponentKeys

Flag: not needed
Fixes: 286053950
Test: started and completed splitscreen selection from home, taskbar and overview
Change-Id: Ifa30f194ae064fab8aad79c5116f8c859dfd8cf1
2023-06-06 11:02:09 -07:00
Nick Chameyev c1eafd92ab Merge "[Unfold animation] Do not preemptively start the animation if it has run already" into udc-qpr-dev 2023-06-01 12:55:27 +00:00
Schneider Victor-tulias fc32303ebf Merge "Fix launcher activity leak in TouchInteractionService" into udc-dev am: 8f95307087 am: 9dd8eacd99
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23375885

Change-Id: I7b6cfeb031aefc61441a030aac15d2674ef83b1d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-31 19:20:54 +00:00
Nick Chameyev 6d756970e7 [Unfold animation] Do not preemptively start the animation if it has run already
Currently if we open an app, unfold the device and then go to home
screen we will start the unfold animation preemptively in Launcher
because Launcher activity will receive updated configuration change
(where isTablet = true) only after going back to home screen, not
when unfolding the device.

This causes a problem because SystemUI won't send the unfold animation
events after going back home as the animation has already run, so we
end up with wrongly started animation in Launcher.

This CL fixes the issues by checking if SystemUI has finished the
animation (or if it is currently running) to avoid preemptive animation
start in this case. This is done by subscribing to the original
unfold transition progress provider which emits progress events
sent through IPC from SystemUI.

Bug: 285150685
Test: open an app on folded screen, unfold, go to home screen =>
  check that icons are not squished
Test: fold/unfold when launcher is open
Change-Id: Ic437ff4d19cbd5764635f3007d99880622150f5b
2023-05-31 17:12:08 +00:00
Kateryna Ivanova 7120373bbc Migrate Interpolators from Launcher3 to the public animation library
Test: atest
Bug: 271850966
Change-Id: Iba999f2e753764a37d35e508e707df02388432e9
2023-05-30 07:20:38 +00:00
Schneider Victor-tulias f304ab8e2b Fix launcher activity leak in TouchInteractionService
TouchInteractionService cannot be garbage collected until it has been cleared from the sysui process. Switching to use a WeakReference to help with garbage collection.

Flag: not needed
Bug: 283490010
Test: ran launcher and performed gestures
Change-Id: I37aa5f858f2ae0ac78b46478ab4c5f24770bd64f
2023-05-26 14:39:14 -07:00
Tracy Zhou 6a71c2a6f5 [Trackpad] Gesture navigation in 3-button mode
Back gesture will be in a separate change

Bug: 279948218
Test: https://recall.googleplex.com/projects/3388b17c-d22f-46f8-b140-a102690377b4/sessions/0b8e838a-89b0-4451-ad44-df2916db877d
Change-Id: I1f14ca873efa33684e36ac1f0f72d766815752ae
2023-05-21 22:45:37 -07:00
Vinit Nayak c83f94cde3 Merge "Separate code paths to launch split from existing pair vs new pair" into udc-dev am: 258019fe8e am: 1f27273c06
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23320818

Change-Id: I11104b119109468f3b0984fb670b6196c418b97d
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-05-19 18:43:42 +00:00
Vinit Nayak 6ab2786d16 Separate code paths to launch split from existing pair vs new pair
* Launching existing pair doesn't rely on any existing
data/state in SplitSelectStateController or SplitSelectDataHolder
* Consolidate launchTask*() methods in GroupedTaskView

Test: TaskThumbnailViews measured correctly, animation
correct on small+large screen, initiating split
still working
Fixes: 274540670
Flag: none needed

Change-Id: Id359f53ac5f2bba19948d4ae3231092fb90cc7c5
2023-05-18 10:43:17 -07:00
Sunny Goyal e274d97fe5 Removing support for lagacy shortcuts
> Addition/removal of  shortcus is already removed. This just
  cleans up the unused code path

Bug: 275875209
Test: Updated tests
Flag: N/A
Change-Id: I8ab7f57b693f996920e50e8beecafcffab5167e9
2023-05-17 09:20:45 -07:00