Commit Graph

118 Commits

Author SHA1 Message Date
Winson Chung de1b42b957 Only refresh the launcher resume state when the task launch fails
- The previous call from TaskbarLauncherStateController caused a
  regression due to the inability for the code to distinguish
  Normal -> Background -> Normal when tapping on the bar area
  or from failing to launch a task, so both cases were triggering
  the resumed state to cycle and start an animation.  For now we can
  only handle the task-launch fail case.

Bug: 268448123
Fixes: 281966662
Test: Quickswitch to an activity that finishes when resumed
Change-Id: Ie4692dd85252540ff47633978c0e6e4adbb1bdd0
2023-05-11 23:31:14 +00:00
Mike Schneider 593ff77267 Revert ag/22195243 and solve the initialization issue it was supposed to fix differently
The fix caused a flicker tests to fail, but that is specific to the persistent taskbar used in tests only.

Bug: 277470898
Bug: 277003116
Fixed: 277470898
Fixed: 277003116

Test: Flicker tests passes
Test: Manual (http://shortn/_kiAZykhZsp)
Test: Tapl presubmit tests
Change-Id: Ib9daebf3b06af2f1a4a3b7461acf91f204ff281b
2023-04-13 11:37:39 +00:00
Brian Isganitis 3ef917a4e3 Cleanup ENABLE_TASKBAR_EDU_TOOLTIP: remove EDU sheet.
Test: Manual
Fix: 270396268
Change-Id: I3cebdb6646060cf6793e5ffc638213dde41338c0
2023-04-10 12:55:18 -04:00
Tony Wickham 38e185ddcb Merge "Restore proper nav buttons translation when taskbar is recreated" into tm-qpr-dev am: 3292947a73 am: 75a0c72d00
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22090087

Change-Id: I7e4613202ceaa9e66e4592438668fadb057fc993
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 16:26:40 +00:00
Mike Schneider 2736f2ed5b Do not play unstash animation when unlocking the device am: 94f46e14f4 am: 14db451c21
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/22119728

Change-Id: I201404e1642a22dabae740e01d4b8bd06d36ca3b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-22 16:18:10 +00:00
Tony Wickham 3292947a73 Merge "Restore proper nav buttons translation when taskbar is recreated" into tm-qpr-dev 2023-03-22 15:27:00 +00:00
Mike Schneider 94f46e14f4 Do not play unstash animation when unlocking the device
The unstash is ignored by TaskbarStashController, while the TaskbarLauncherStateController positions the hotseat on the launcher correctly without animation.

Since the TaskbarStashController is used even with 3p launchers, both of these actors keep track of whether the device is locked independently, based on the SysUI flags.

Bug: 270139677, 266890635, 274084408
Test: manually, Tapl
Change-Id: Iae94522b5d57cc89c9a4d219ad1254b150a3400d
2023-03-22 09:10:03 +01:00
Mike Schneider 308b7849db Do not perform invisible transitions while the screen is off.
This change caches whether launcher was active at the time of the screen
off, and assumes this last state when the screen is actually off.

While trying to understand the code, I renamed a couple class-internal
methods and flags, plus added comments. If they are not accurate, its
due to a misunderstanding on my part, and I will gladly revisit and
check whether all the assumptions I made still hold.

Bug: 261418621
Test: manually

Change-Id: I2ad25caf478100781a063c356c5fd2d20d3e1917
Merged-In: I2ad25caf478100781a063c356c5fd2d20d3e1917
2023-03-21 21:02:55 +00:00
Mike Schneider 7b410f24b4 Do not perform invisible transitions while the screen is off.
This change caches whether launcher was active at the time of the screen
off, and assumes this last state when the screen is actually off.

While trying to understand the code, I renamed a couple class-internal
methods and flags, plus added comments. If they are not accurate, its
due to a misunderstanding on my part, and I will gladly revisit and
check whether all the assumptions I made still hold.

Bug: 261418621
Test: manually

Change-Id: I2ad25caf478100781a063c356c5fd2d20d3e1917
2023-03-21 10:27:13 +00:00
Tony Wickham 0c6ccca22d Restore proper nav buttons translation when taskbar is recreated
Since mTaskbarInAppDisplayProgressMultiProp is set by various states
that are hard to query in init() (e.g. state of all apps, -1, widgets,
etc.), we store the last mTaskbarInAppDisplayProgressMultiProp in the
TaskbarSharedState and restore those values in init().

Also updated some debug logs in the dump.

Test: manual: from home screen, swipe down to quick settings and toggle
Dark theme, ensure nav buttons don't translate; do the same but over
launcher all apps
Flag: none
Fixes: 267325761

Change-Id: Ib8e6778582ed39c674cd3c1e95312e673659f6a7
2023-03-16 00:06:22 +00:00
Brian Isganitis d1b7b5141f Merge "Log when taskbar is in task switcher container." into tm-qpr-dev am: ba5b25c198 am: cba28f0b3f
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21780681

Change-Id: Iac3de6884edf1a160da9baeb33929fcdd92eaf3c
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-08 19:45:04 +00:00
Brian Isganitis ba5b25c198 Merge "Log when taskbar is in task switcher container." into tm-qpr-dev 2023-03-08 18:56:02 +00:00
Brian Isganitis c762ef68d4 Log when taskbar is in task switcher container.
Test: wwdebug & wwlogcat
Bug: 261177876
Change-Id: Id4eda7ee7e4e2c1aa60e07d5b65410b3847d9ac6
2023-03-07 03:29:21 +00:00
TreeHugger Robot 0ef1f9eae0 Merge "Translate taskbar to hotseat without jump when swiping up from overview" into tm-qpr-dev am: 3dd1440520 am: f5153d5de2
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21592805

Change-Id: Icf82154155ba1a54c36d72658102d2661b6bec30
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-07 03:16:40 +00:00
Brian Isganitis 8ecb5eeb62 Merge changes from topic "running-in-test-camel" into tm-qpr-dev am: d2d2913812 am: 0c15dabc48
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21725479

Change-Id: I3d02a42c2d0bdebc2487def8696d9a489aca7311
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-07 00:08:07 +00:00
Brian Isganitis 2790c9dbbf Merge "Implement light mode for persistent Taskbar." into tm-qpr-dev 2023-03-06 23:07:41 +00:00
TreeHugger Robot 3dd1440520 Merge "Translate taskbar to hotseat without jump when swiping up from overview" into tm-qpr-dev 2023-03-04 00:18:16 +00:00
Brian Isganitis d2d2913812 Merge changes from topic "running-in-test-camel" into tm-qpr-dev
* changes:
  Expose IS_RUNNING_IN_TEST_HARNESS as static method.
  Make isTooltipEnabled a getter due to its mutable dependencies.
2023-03-03 23:15:38 +00:00
Brian Isganitis 473cfe0a1a Implement light mode for persistent Taskbar.
NavbarButtonsViewController has been massaged to make sure the buttons
contrast well with the color of the Taskbar background that they are on,
if applicable.

Test: Manual
Fix: 268052229
Change-Id: I917a1a1be013c304910b0f674ae8a13abb8e47a1
Merged-In: I917a1a1be013c304910b0f674ae8a13abb8e47a1
2023-03-03 00:35:20 +00:00
Brian Isganitis 977a62fa41 Merge "Implement light mode for persistent Taskbar." into udc-dev 2023-03-03 00:34:02 +00:00
Brian Isganitis fdd044e16e Expose IS_RUNNING_IN_TEST_HARNESS as static method.
This variable is now mutable, making the uppercase format misleading.
For instance, users might assume they can use this value in other
immutable properties, when they really should be accessing the latest
value every time they need it.

Context: https://source.android.com/docs/setup/contribute/code-style#follow-field-naming-conventions

Test: Manual
Bug: 271160958
Change-Id: Iaaa51d9153cb8a7d686c72e1210b1948029dcfd5
2023-03-03 00:17:33 +00:00
Tony Wickham 10c78b94f5 Translate taskbar to hotseat without jump when swiping up from overview
Also use this code path to reset translation when going from an app to
launcher.

Test: swipe up from overview, goes home without hotseat jumping
Fixes: 262826748
Change-Id: If8a4278a61e3786cfe16c388eabefacc63e8f327
2023-03-01 19:20:57 +00:00
Alex Chau cbab01c721 Merge "Land ENABLE_TASKBAR_IN_OVERVIEW" into tm-qpr-dev am: 6a10a003d6 am: a1907c710e
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21538759

Change-Id: Ibf2a35e5d54d2938a00cb251ddb71656f6308207
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-03-01 18:19:32 +00:00
Alex Chau 8aa3f00238 Land ENABLE_TASKBAR_IN_OVERVIEW
Fix: 270393449
Test: manual
Change-Id: I731bfa8ee86154fd034781e27272abc81a6fe6c6
2023-02-28 20:18:32 +00:00
Brian Isganitis cae62a563a Implement light mode for persistent Taskbar.
NavbarButtonsViewController has been massaged to make sure the buttons
contrast well with the color of the Taskbar background that they are on,
if applicable.

Test: Manual
Fix: 268052229
Change-Id: I917a1a1be013c304910b0f674ae8a13abb8e47a1
2023-02-27 23:25:42 +00:00
Tiger Huang 210c689996 Merge "Use insetsRoundedCornerFrame to check if taskbar is expanded or not" into udc-dev 2023-02-23 04:37:01 +00:00
Schneider Victor-tulias 34f8c2f14a Merge "Keyboard quick switch polish" into tm-qpr-dev am: 8129ebfd04 am: 42f0aaac4b
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21466357

Change-Id: Ic68faa66297ea8bd2b960ec485bc0c421142122b
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-21 22:46:07 +00:00
Schneider Victor-tulias 8129ebfd04 Merge "Keyboard quick switch polish" into tm-qpr-dev 2023-02-21 21:03:30 +00:00
TreeHugger Robot af1c102e69 Merge "Translate the taskbar icons to match nav handle shape." into tm-qpr-dev am: 9769b2844c am: 90cf9e6855
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21452616

Change-Id: I2b925e0e493bd3dc303d41e940962d9cd9c55d7a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-21 05:35:44 +00:00
Tiger 2d2e34cf81 Use insetsRoundedCornerFrame to check if taskbar is expanded or not
When taskbar is expanded, insetsRoundedCornerFrame will be set to true
via LayoutParams. We can adjust animation bounds or crop the taskbar
surface based on the insetsRoundedCornerFrame. In this way, the insets
types in TaskTransitionSpec can be removed.

This is a step to remove ITYPEs.

Bug: 234093736
Test: atest LetterboxUiControllerTest SizeCompatTests
Change-Id: Ibffd5beaf49f3196356b140938c4b2c8cc9d424e
2023-02-20 19:20:52 +08:00
Schneider Victor-tulias 0bba3d6184 Keyboard quick switch polish
- Added support for escape(backtick on some keyboards) keyboard keys
- Added support for d-pad left and right keyboard keys
- Fixed janky behaviour when quick switching too quickly.
- Removed unused code

Bug: 269618928
Test: Tried quick switch very quickly, tried escape, d-pad left and right keys in RTL and LTR modes
Change-Id: Ie03207cb349891e9c2de18502f3f65b7c8f9c018
2023-02-17 15:44:04 -08:00
Jon Miranda 13e9b9f889 Translate the taskbar icons to match nav handle shape.
- We need to reset icon alignment whenever icon layout bound
  changes. This fixes the issue where we build an icon
  alignment animator before any of the views are laid out.
- Separated animation logic between.
  createTransientAnimToIsStashed and createAnimToIsStashed
* The values still require a bit more tuning but this gets us
  a lot closer to spec for many of the motion polish.

Bug: 267806083
Bug: 246634367
Bug: 246635237
Test: manual
Change-Id: Id122134b22ef4e418ce632e4a8137239dc8bb313
2023-02-17 10:56:59 -08:00
Jagrut Desai 2f0b433e57 Merge "Making taskbar to stay stashed if user launches app for split screen view from all apps view" into tm-qpr-dev am: 4ffc71262d am: f13a3413a8
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/20840305

Change-Id: If38a667631f3e68316b510a2d26af32b2d8d870a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-16 00:42:07 +00:00
Jagrut Desai 4ffc71262d Merge "Making taskbar to stay stashed if user launches app for split screen view from all apps view" into tm-qpr-dev 2023-02-15 23:03:19 +00:00
Schneider Victor-tulias 556d37bf01 Merge "Add the KeyboardQuickSwitchView (1/2)" into tm-qpr-dev am: 673e6437b8 am: 031e3d38b8
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/21087434

Change-Id: Ib0389210f200baa71f346edbc0ca78678702707a
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-02-14 19:43:13 +00:00
Schneider Victor-tulias f908729fa8 Add the KeyboardQuickSwitchView (1/2)
Preparatory change for adding the KeyboardQuickSwitchView and associated flows.

Test: Manually tested alt-tab and alt-shift-tab in and out of overview on a tablet and phone
Bug: 258854035
Change-Id: I468481a023e82d3ef7c7d4d44c5b9435173b49ae
2023-02-13 15:34:39 -08:00
Tony Wickham ef03a14980 Making taskbar to stay stashed if user launches app for split screen view from all apps view
Test: Visual
Fix: 263058045

Change-Id: Idcbc4ce90e8d4ff1084780bf331f2cea8b9335ca
2023-02-08 21:53:37 +00:00
Evan Rosky af55007a17 Only interrupt taskbar state during gesture.
We only want to prevent updating taskbar stash state during
the swipe-to-overview gesture. Previously, we were blocking all
resumes into a "non-aligned-with-hotseat" state to prevent the
taskbar from hiding until the gesture completed. This, however,
also selected for situations where the launcher is resumed
directly into Overview outside of a transition (which is
triggered by some Tapl tests).

This narrows the check to only when resuming into a non-interactive
state (which basically just selects for BackgroundApp state).

Bug: 266246618
Test: TaplTestsQuickstep on a device with taskbar
Change-Id: I414ba7384f4ca3901211855b26c6c200319a2996
2023-01-22 10:05:35 -08:00
Brian Isganitis b21ad2da8c Implement initial transient Taskbar EDU tooltips.
Since this tooltip looks and behaves differently than the existing EDU
sheet, it has its own view and controller implementations (I also may
have wanted to write some Kotlin).

To keep transient taskbar open while on the second EDU step, another
autohide suspend flag is defined. Additionally, special casing is added
to avoid hiding transient taskbar if autohiding is currently suspended.

Tooltips use the same assets as the bottom sheet for now, and are scaled
down to fit the tooltip dimensions.

Reset `Taskbar Education` in Developer Options to try EDU again.

[Demos]
- First: https://screenshot.googleplex.com/ASBeGvrb2EA5wEF.png
- Second: https://screenshot.googleplex.com/7fnfcTh9bMYezDc.png

Test: Manual
Test: Open app, see swipe-up tooltip.
Test: Swipe up to show transient taskbar, see features tooltip.
Bug: 263157739
Fix: 258460203
Change-Id: I473f5fccbae279db0614763b640da0a120b6b7f7
2023-01-20 15:16:12 -08:00
Sunny Goyal 00e3c1ace4 Using AnimatedFloat for maintaing TaskbarInAppDisplayProgress instead of a float array
Bug: 265352919
Test: Verified on device
Change-Id: I603a817c18720d5f18fe0c2be7bdfd8cf2d6defc
2023-01-12 16:02:42 -08:00
Alex Chau a5c6aad231 LauncherTaskbarUIController should only translate nav buttons on inAppProgresst if icon is aligned with hotseat
Fix: 261364559
Test: Pull notification shade in overview, 3-buttons stay in place
Test: Pull notification shade in home, 3-buttons translated down
Test: Go to -1, 3-buttosn translated down
Test: Go to AllApps, 3-buttons translated down
Test: Go to widget picker, 3-buttons translated down
Change-Id: I53da354266c60e86599011ba3ddd8b44cde70beb
2023-01-03 18:41:21 +00:00
Federico Baron 47d81686e6 Move AnimatedFloat from quickstep to launcher
We are moving AnimatedFloat to launcher to be able to use this in class in launcher. Having it in launcher will allow us to do restore icon treatment animations to do with scaling the icon size

Bug: 254858049
Test: verified that the device still works
Change-Id: I1c4c47ab436c389a94abf7c910c1a44724efc955
2022-12-08 13:58:07 -08:00
Alex Chau cd76ac24b6 Fade in/out taskbar when launching apps from or back to AllApps/-1
- Added isHotseatIconTopWhenAligned to control both iconAlignment and stash animation to just fade in if hotseat icon isn't on top of the screen in the aligned state

Fix: 257355864
Fix: 213455090
Test: Launch apps from/back to home, taskbar animate from/to hotseat
Test: Launch apps from/back to AllApps/-1, taskbar fade in/out
Test: Repeat aboth with transient or persistent taskbar
Change-Id: I6bdae615ff9e199d23cbfe2d26c8d46a08fbc436
2022-12-01 18:56:30 +00:00
Brian Isganitis 92400681a9 Remove Taskbar EDU icon wave animation.
As per the latest mocks, the taskbar will be stashed during EDU to
prevent taskbar interactions that inadvertently close the EDU sheet.
Thus, this animation is no longer needed.

Test: Manual
Bug: 217261955
Change-Id: I8c5999121b7bb927b748d6163575dc4555ece84c
2022-11-28 15:46:17 +00:00
Jon Miranda 5eba9000df Update transient taskbar transition duration to match spec (417ms).
Bug: 246632728
Bug: 246641848
Test: manual
Change-Id: If3f73774444c6074a81101d91d291ef33edcaf9c
2022-11-14 12:28:20 -08:00
Jeremy Sim d5525c3bda Merge "Allow user to select second split app from Taskbar" into tm-qpr-dev 2022-11-10 18:56:22 +00:00
Jeremy Sim 93fc0f3a7c Allow user to select second split app from Taskbar
This patch makes it so that (when we enable Taskbar in Overview) users will be able to select their second app for splitscreen by tapping the Taskbar icon, or the icon in AllApps.

This was done by performing a check to SplitSelectStateController when a taskbar icon is hit. If we are currently in split select mode, Taskbar/AllApps icons will no longer launch their respective fullscreen apps, but instead confirm the split attempt. The confirmed app will either be an already-running instance of the app, or a fresh instance of the app (if none is currently running). The split confirmation function is located in TaskbarUIController, where it is accessible to both LauncherTaskbarUIController (for 1P Launcher) and FallbackTaskbarUIController (for 3P launchers).

Also cleans up ~2 lines of unused code from the old splitscreen instructions toast.

Outstanding issues:
- When selecting a second app from within AllApps, the AllApps shade does not animate away in a satisfying way
- When selecting a second app and launching a fresh instance of that app, the animation appears to come from the wrong location
- Intent + Intent splitting does not currently work
- If the selected app is already running with multiple instances, it picks the oldest instance. Ideally, the newest instance is preferred.

Bug: 251747761
Test: Manual testing with Taskbar in Overview flag enabled
Change-Id: I302dc092740bb880f9134ba8e2e587c4f2c29d01
2022-11-08 14:38:05 -08:00
Jon Miranda caa398ed35 Merge "Have responsive taskbar UI during swipe up gesture." into tm-qpr-dev 2022-11-08 17:53:05 +00:00
Jon Miranda 29f7474056 Have responsive taskbar UI during swipe up gesture.
- Makes taskbar threshold an absolute Y threshold
  instead of a distance threshold.
- Moves handle, taskbar view, and taskbar background
  during the swipe up gesture

Next CL will address transforming the nav handle <-> taskbar
and ensuring that there's a clean handoff

Bug: 246631059
Test: swipe up on taskbar, release. see bounce
      swipe up on taskbar to go home, proper icon alignment
      swipe up on taskbar, pause for overview, see bounce
      -> further movement should not move taskbar
      test launcher3

Change-Id: I141236fd72428cda7edd0ff116de1d478d18c722
2022-11-08 14:50:02 +00:00
Jon Miranda b0523697c6 Stash taskbar if user touch down above the gesture height.
Bug: 252905206
Test: open taskbar, tap in gesture area, confirm no stash
      open taskbar, tap on taskbar item, confirm no stash
      open taskbar, tap to the side above gesture area, confirm stash

Change-Id: Ide030840440b5f0541d0ccfb055b8a8a7e851657
2022-11-07 10:37:28 -08:00