Commit Graph

124 Commits

Author SHA1 Message Date
Sunny Goyal
cd44740567 Moving onboarding prefs to use LauncherPrefs
Bug: 301661768
Test: Presubmit
Flag: N/A
Change-Id: Iec8a5e739f394a152d5ffc57b01e0449e94b4084
2023-10-10 11:47:33 -07:00
Liran Binyamin
e41e6185e4 Make the bubble bar flag dynamic in Launcher.
Changing the flag currently requires a reboot, because it is read once when the process starts and never changes.
This change triggers a re-read of the flag value from SystemProperties whenever Taskbar is recreated.
This allows setting the flag as part of integration tests for bubble bar.

Bug: 273994695
Test: Manual:
       - turn flag off
       - create bubbles
       - observe floating bubbles are added
       - turn flag on
       - change navigation mode to gesture navigation
       - observe bubble bar becomes visible
Change-Id: I277ea6aa2c8d3ab04094537bf4cd31630310dfec
2023-10-03 10:49:30 -04:00
Liran Binyamin
a833af316b Adjust the hotseat when the bubble bar becomes visible
When the bubble bar becomes visible the space between icons in the
hotseat is now adjusted. This change only does it when the QSB is
above the icons, but this will be changed in the future to be based
on the amount of space between the hotseat and the edge of the screen.

When the hotseat is adjusted, the new width is smaller by the size of
2 icons. The icons are then translated to be evenly spaced within the
boundaries of the new width.

Since the adjustment is only applied when the QSB is above the icons,
it is resized accordingly to the new width.

All visual updates currently snap to the new position, but will be animated
in a follow up.

Demo: https://recall.googleplex.com/projects/3391fc5c-599d-4827-b6f8-d2deb160aa99/sessions/fad1a5c5-e9cf-4586-92e4-1e92df3b002e

Bug: 280494203
Test: Manual (on tangor)
      - Set device to landscape
      - Make the bubble bar visible by adding a bubble
      - Rotate to portrait mode
      - Observe that the hotseat is adjusted
      - Rotate to landscape
      - Observe that the hotseat adjustment is removed
      - Rotate back to portrait
      - Observe that the hotseat is adjusted again
      - Dismiss the bubble to hide he bubble bar
      - Observe the hotseat adjustment is removed

Change-Id: I5b02a60b6cb301ffa2507a6d825c748a782cca18
2023-09-13 17:08:42 -04:00
Winson Chung
51c94c622e Merge "Fix an issue with nav bar translations not being updated" into udc-dev am: a53261b9cd am: 273703131a
Original change: https://googleplex-android-review.googlesource.com/c/platform/packages/apps/Launcher3/+/23923806

Change-Id: Id2e78875d607f8deb1511a235d761f662eafbdd5
Signed-off-by: Automerger Merge Worker <android-build-automerger-merge-worker@system.gserviceaccount.com>
2023-07-07 20:01:47 +00:00
Winson Chung
ccd359d76c Fix an issue with nav bar translations not being updated
- There are flows where the shared taskbar state is updated prior
  to being destroyed, and not updated to the latest values when
  the taskbar is recreated.

  ie.
    unfolded -> lock screen -> LauncherTaskbarUiController's
      mTaskbarInAppDisplayProgress[SYSUI_SURFACE_PROGRESS_INDEX]
      is set to 1 due to the notif shade (lockscreen) showing.
      This is written into TaskbarSharedState's sysuiStateFlags
      and inAppDisplayProgressMultiPropValues.
    fold -> TaskbarActivityContext is destroyed
    unlock -> TaskbarManager and TaskbarSharedState's
      sysuiStateFlags are updated while the device is folded
    unfold -> TaskbarActivityContext is recreated and initialized
      which restores from the shared state's
      inAppDisplayProgressMultiPropValues. It also tries to reapply
      the shared state's sysuiStateFlags, but this doesn't update
      inAppDisplayProgressMultiPropValues because the state's
      "enabled" state is not updated (default is no flag set, and
      lockscreen sysui state is not set anymore).
    -> The restored inAppDisplayProgressMultiPropValues value
       results in the wrong translation.

- Note that after the above, the NavbarButtonsViewController state
  is actually correct and reflects the SysUI state, but the
  LauncherTaskbarUiController state is wrong.  This CL tries to
  manually update the ui controller to the correct state when it
  is recreated.
- CL also fixes a separate issue where LauncherTaskbarUIController
  could potentially overwrite the saved state progresses while
  restoring them due to the state callback being called

Bug: 283346744
Test: Unfold -> Lockscreen -> Fold -> Unlock -> Unfold and ensure
      the buttons are translated correctly



Change-Id: I43e473faf4fa2a493b9705506e3755df8f6264e7
Signed-off-by: Winson Chung <winsonc@google.com>
2023-07-06 22:01:49 +00:00
Jagrut Desai
6bf3af0b81 Match Navigation Icon Colors Folded/unfolded
Recently we did color token migration for Taskbar which included navigation icon also, but phones and foldable device can't really adapt to new color tokens because of contrast issue with underlying wallpapers.

As a result, now home screen which default back to balck and white nav icon colors while all apps and in app navigation icon color will be themed to new GM3 Color tokens.

Test: Manual
Bug: 284408922
Flag: Not needed
Change-Id: I8c8ea11ebb7237885ae4673fda0409ab463b37db
2023-06-16 20:13:15 +00:00
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