Commit Graph

66 Commits

Author SHA1 Message Date
TreeHugger Robot
913b5afb43 Merge "Decouple taskbar background from overveiw scrim if taskbar is in overview" into tm-qpr-dev 2022-10-19 17:18:25 +00:00
TreeHugger Robot
c9928a1ddf Merge "Implement overlay window for Taskbar EDU and All Apps." into tm-qpr-dev 2022-10-19 14:01:56 +00:00
Brian Isganitis
2d6371aa34 Implement overlay window for Taskbar EDU and All Apps.
Having EDU in the same window as Taskbar causes it to be above All Apps
and other system views such as the notification tray. This change
refactors the existing All Apps window to accomodate more AFVs so that
EDU can also exist in it.

Demo: http://shortn/_Qcki3gwvf7

Test: Manual
Fix: 232177330
Change-Id: I1bef31d798041a90a0c3e033e71be63898fa5fbc
2022-10-14 22:36:14 +00:00
Alex Chau
47a07bc704 Decouple taskbar background from overveiw scrim if taskbar is in overview
- Removed all forceHideBackground calls if taskbar would be in overview
- Make overview scrim transparent regardless of stash state if taskbar would be in overview

Fix: 234139692
Test: Go to overview from app with ENABLE_TASKBAR_IN_OVERVIEW on/off and taskbar stashed/unstashed
Change-Id: I29e811cb93894e6c9e7a75c0ea493719f15eeccb
2022-10-14 17:45:41 +01:00
Evan Rosky
14145d131a Update taskbar state when launcher pauses
With shell-transit, we need to defer updating state when resumed
(until we commit a transient launch state); however, for pause
this isn't necessary. In fact, now that taskbar exists in overview,
we must update state on-pause since the taskbar is no-longer
already-closed.

Bug: 253473765
Test: atest NexusLauncherTests:com.android.quickstep.TaplTestsQuickstep#testOverview
Change-Id: I347da03a211f5b2685f7b18666b2ebb93a1731ef
2022-10-14 00:11:25 +00:00
Alex Chau
d67ddc4920 Taskbar in overview
- Behind ENABLE_TASKBAR_IN_OVERVIEW which is disabled by defualt
- Make taskbar unstashed in overview with background visible
- Ensure taskbar is touchable in overview

Bug: 245320601
Test: Home<->Overview, Home<->App, App<->Overview, Home->Overview->App->Home, Home->App->Overview->Home, Overview->Home->App->Overview, Overview->App->Home->Overview, App->Overview->Home->App, App->Home->Overview->App
Test: Go to AllApps, call KEYCODE_HOME, go to app and taskbar should be there
Test: App->Overview->Select->Home->App
Test: QuickSwitch -> App
Test: Repeat above with ENABLE_TASKBAR_IN_OVERVIEW x taskbarStashed on/off
Test: Repeat above with gesture and 3-button
Change-Id: Ib25d68f68e89564851b226536e456d0b2f6306f8
2022-10-03 20:15:12 +01:00
Winson Chung
3f649ef892 Update Launcher for removed shared wrappers
- Launcher can reference system code directly now

Bug: 219861883
Test: Builds/Presubmit
Change-Id: I3f656b6c7fce93243ccb7591e52441e99137dec6
Merged-In: I3f656b6c7fce93243ccb7591e52441e99137dec6
2022-09-14 17:14:32 +00:00
Evan Rosky
eaaf065b73 Merge "Only animate to hotseat when launcher is on home screen" into tm-qpr-dev 2022-09-01 21:11:01 +00:00
Evan Rosky
10c1c017c9 Only animate to hotseat when launcher is on home screen
Was assuming that resume == home-screen; however, in shell
transitions, launcher is resumed while overview is active,
so make sure it is both resumed AND "isTaskbarAligned"
before making the to-hotseat animation

Bug: 241800590
Test: Open an app, long-press taskbar to stash, long-press again
      to unstash
Change-Id: I117afcb006c363e50205f27f014ffc30d6f2896a
2022-08-31 22:53:02 +00:00
Tony Wickham
b6f593042d Don't rely on QuickstepLauncher instance for tests
Instead, bind to TouchInteractionService and use that binder to call into taskbar.

Test: TaplTestsTaskbar
Bug: 235986838
Change-Id: I222522bc53c9d1698542fbae52c37889f14abf41
2022-08-29 17:27:27 -07:00
Sunny Goyal
d6801af69a Inlining BaseQuickstepLauncher to QuickstepLauncher
Bug: 243022799
Test: Presubmit
Change-Id: I3706fc1f10d88ea73bd873c7e94c3e78795791eb
2022-08-24 12:51:21 -07:00
Tony Wickham
f3636d09e7 Set FLAG_RESUMED = false when expanding PiP
This allows us to play the icon alignment animation immediately, rather
than waiting for the expand to finish and launcher to be paused.

Test: Open Maps in PiP on home screen, expand it and watch taskbar
Fixes: 239506421
Change-Id: I5c04f778c4c39c2895db0a1ea1fca4d48d1f3093
2022-07-27 08:52:09 -07:00
Alex Chau
c1d26448c5 Animate inline QSB between home and apps
- Added a QSB to taskbar to be animated between inline QSB and taskbar
- Passed endValue of taskbar animator to TaskbarController to have aniamtion variation between home -> app and app -> home
- Tuned duartion of taskbar animation and also stagger animation when taskbar is present
- Disabled scaling down of taskbar and inline QSB for home -> app
- Disabled stagger animation of taskbar and inline QSB for app -> home

Bug: 220733187
Test: manual
Change-Id: I4aac0bbc343b992a0472298595770e2bf2a55990
2022-06-15 22:12:29 +01:00
Schneider Victor-tulias
766f2fc346 Coordinate the SUW All Set page first reveal with the taskbar unstash to hotseat animation.
Bug: 220096988
Test: manual
Change-Id: I1f517b322e5c18f825be8b51ebb560a4a195b666
2022-05-13 11:17:10 -07:00
Schneider Victor-tulias
9b6babf839 Translate the 3 navigation buttons to/from their in-app position when animating to/from the -1 screen, all apps and widgets.
Bug: 221455508
Test: opened all apps, widgets, -1 screen, notifications shade and keyboard in various combinations and orders; locked screen, launched app, returned home with the back/home buttons, opened overview
Change-Id: Ia0b406aacf72b34bd6b7ff1c01278ab6895a7da4
Merged-In: Ia0b406aacf72b34bd6b7ff1c01278ab6895a7da4
(cherry picked from commit 9c1a452a1d)
2022-05-02 18:45:01 +00:00
Schneider Victor-tulias
c0b30dc266 Fix taskbar 3-button truncation on rotate
- Fixed truncation issue in overview and home on rotation
- Fixed 3 buttons translating incorrectly when switching to/from overview

Fixes: 205057824
Fixes: 215482458
Test: Manual
Change-Id: I0b89010a2b6ed03a34c3443fc6e1edc81f8d9f20
Merged-In: I0b89010a2b6ed03a34c3443fc6e1edc81f8d9f20
(cherry picked from commit 8aa99c72b1)
2022-05-02 18:12:00 +00:00
Schneider Victor-tulias
fb252e7ce1 Add taskbar TAPL tests
- Added TAPL objects to support TAPL tests for taskbar features
- Added tests for major taskbar features: hiding/showing the taskbar, opening all apps, lauching apps and app deep shortcuts from the taskbar/all apps page, launching apps and app deep shortcuts in splitscreen
- These tests should only run for large devices

Design: go/taskbar-tapl-tests
Test: ran tests locally with invalid configurations and remotely
Bug: 215218813
Change-Id: I3c28c339707467414aa47fa633f87fa0c1fdee57
2022-03-10 13:02:35 -08:00
Brian Isganitis
56b179350b Immediately close taskbar all apps on swipe up gesture.
Test: Manual
Fix: 219981339
Change-Id: I306a8aa1c55464718a1318f87007d68c383e461e
2022-03-04 19:56:06 -08:00
Vinit Nayak
58c27cce73 Remove Taskbar and Taskbar EDU flags.
Bug: 219035565
Change-Id: I643b5d006b5759723418901ffeb463fa04a82cbc
(cherry picked from commit ec4adc1d5a)
2022-02-23 18:14:28 +00:00
tomnatan
9f12373bdd [11/n] Letterbox Education: set LAUNCHER_TASKBAR_EDUCATION_SHOWING.
The setting is set to 1 if the taskbar education should be shown as soon as the animation for opening an app starts and is set back to 0 when the taskbar education window is detached from the window.

Bug: 214590804
Test: N/A
Change-Id: Id26e3051a6e0ef1f9c2dcbeef98710efbb4df54f
2022-02-11 10:28:51 +00:00
Brian Isganitis
4edf1da6e2 Introduce initial A-Z app drawer to taskbar.
Invoking the drawer is currently hooked up to tapping empty space on the
taskbar. Apps can be launched, and drag-n-drop split screen works. The
drawer can only be dismissed by acting on an app icon or tapping the
taskbar again.

Test: Manual
Bug: 204696617
Change-Id: I7c5fdbc7d54d8209f6f15ef80bfeb5e9b80cf647
2022-01-28 15:20:00 -05:00
Tracy Zhou
bec00acf28 Delay showing task bar until the user releases their finger dragging from all apps to normal
Fixes: 208802276
Test: drag from all apps to normal, and the task bar doesn't stash until the user releases their finger
Change-Id: I53133cc80749bdc62e77d858b5714ae32facbd1d
2021-12-15 06:35:41 +08:00
Tony Wickham
c7b8957bbb Report contentInsets only based on what they will be inside apps
This avoids changing them when going from an app to launcher (most obvious when going to overview).

This also allows us to not change insets on apps when opening/closing IME, which reduces potential jumpiness.

Finally, also use this logic for 3P launchers by calling directly from TaskbarDragLayerController instead of TaskbarUIController (which was only overridden by LauncherTaskbarUIController). This fixes some bad issues like sending fullscreen insets when opening a folder from taskbar.

Test: Open Calculator, unstash taskbar, go to overview and ensure no jump as taskbar stashes.
Fixes: 200805319
Change-Id: I4f1cc187398d0051863ff44ea90b7ab9c6aaa8f9
2021-12-10 23:47:18 +00:00
Tony Wickham
f6c28a4381 Fix potential memory leak by setting mControllers = null
Test: N/A
Bug: 202511986
Change-Id: Iad7cc89e0e68ce09ebe4ca3ab89392b50b6a82c7
2021-11-30 14:37:36 -08:00
Tony Wickham
821e37b447 Stash taskbar when IME is present, including during gestures
- SysUI removes SYSUI_STATE_IME_SHOWING when starting a gesture from an app, but because unstashing has implications on the gesture transition (e.g. clips the bottom of the app), we defer handling the ime hiding until the gesture settles. Repurposed the flow that swaps the taskbar background during the gesture to support this case as well.
- Delay the unstash when IME is closing, to align with the end of the IME exit transition
- Remove TaskbarViewController.ALPHA_INDEX_IME now that we stash when IME is opening, since stashing already hides the taskbar icons
- Also support passing a starting progress to the stashed handle reveal animation, to allow it to be reversed when cancelled. For example, when returning to an app that has IME showing, we first start unstashing because we're in an app, but then we get the signal that IME is attached so we stash again almost immediately (within a frame or two).

Test: In both 3 button and fully gestural, open a keyboard in an app, ensure taskbar gets out of the way and then reappears at the end when the keyboard is dismissed
Bug: 202511986
Change-Id: I93c298a98ba369ea6310466ff3f802231c582687
2021-11-23 16:37:06 -08:00
Tracy Zhou
e89a83b65d Track LauncherState, RecentsAnimation, resumed state for task bar in one place
TODO:
- Consider delaying animating task bar to stashed towards all apps state until user releasing their finger (tho in this change heuristic is applied for stashing and unstashing respectively)
- Further consolidate some animation logic

Bug: 204220602
Test: manual

Change-Id: I58b4d035fcf65a9f5c68e69c129eae95b89b1c4a
2021-11-09 23:46:03 -08:00
Jerry Chang
331f46fab3 Accept snapshot list when cancelling recents animation
Bug: 200813008
Test: enter overview after activated split screen, observed task
      thumbnails showing with correct bounds after roation.
Change-Id: Ifea17d2c685d16db111c4fab88e131595254b9a5
2021-11-08 09:55:43 +08:00
Nick Chameyev
0288d2e8bb Move floating rotation button handling to Launcher
Moves handling of floating rotation button when navigation
bar is not created to the launcher. This button was not
showing when taskbar is visible as it was initialized in
navigation bar (which is not created for large screens).

Bug: 200103245
Test: rotate phone when autorotate disabled on inner screen
Test: showing rotate suggestion when gesture nav enabled/disabled
Change-Id: I13dd555bcd811f1524be7ab9ad51b2b012b3b749
2021-11-01 10:36:34 +00:00
Pablo Gamito
77d3cab287 Set custom task transition spec when taskbar is visible
This is to ensure that the task to task animations look good when the
taskbar is visible (the transition background is the same as the taskbar
color, the taskbar overlay rounded corners are hidden, and the task
animates above the taskbar so it's rounded corners are visible during
the animation and not hidden behind the taskbar).

Test: Open tasks from other tasks to trigger task to task animations and
see if they look good
Bug: 200675009
Bug: 196387647

Change-Id: I8e46718829c0e6541a5c1b1a3a156285aeecd30a
2021-10-26 14:56:27 +02:00
Tony Wickham
8791e7de11 Add FallbackTaskbarUIController
- Refactor TaskbarManager to accept StatefulActivity instead of BaseQuickstepLauncher
- Update the new StatefulActivity in onOverviewTargetChange()
- Cleanup LauncherTaskbarUIController a bit to avoid initializing TaskbarActivityContext, TaskbarDragLayer, and TaskbarViewController in the constructor, and instead get these from mControllers after init()

Test: No change in behavior
Bug: 188790554
Change-Id: Ic4d69d73deb6dada416876eb265db57803c3adfd
2021-10-21 10:53:46 -07:00
Sunny Goyal
2a528a43c1 Delaying taskbar loading until user setup completed
> Also keeping it stashed while all-set activity is visible
> Creating a shared state (simiar to saved instance state) for taskbar
> Keeping taskbar stashed while all-set activity is visible

Bug: 194786060
Bug: 201782272
Test: Manual
Change-Id: Iab5e082243a206772266aece62d3028f5acb6400
2021-10-19 12:38:02 -07:00
Tracy Zhou
ae88197e5f Track LauncherState for task bar stashing better
- Animate in onStateTransitionStart
- Commit in onStateTransitionComplete

Fixes: 193938970
Fixes: 200765631
Fixes: 201644899
Test: Go home from overview; Go to all apps from home; Go to overview from home
Change-Id: I393022c86f09806fea29fb5bc7191304b473f231
2021-10-18 10:51:51 -07:00
Tony Wickham
e202a64e56 Merge "Fix taskbar layout issues in setup wizard" into sc-v2-dev 2021-10-18 16:01:38 +00:00
Tony Wickham
bb6e278f14 Fix taskbar layout issues in setup wizard
- Align nav buttons (only back is enabled) to start instead of end
- Don't animate from init()
- Provide 0 contentInsets.bottom
  - Auto-stash the taskbar during setup
  - Hide the stashed handle by adding an alpha channel for home disabled
  - Report 0 contentInsets when stashed if the handle isn't visible
- Tint nav buttons according to theme

Test: adb shell am start -a android.intent.action.MAIN -n com.google.android.setupwizard/.SetupWizardTestActivity
Bug: 194786060
Change-Id: I4a40501e8aad2a38ec00398efe9ea3dbfa7428cd
2021-10-14 21:50:03 -07:00
Vinit Nayak
74b25ca266 Align 3 button nav with hotseat
* Animate translationY alongside icons
* When device rotates on home, update
translationY
* Add padding to contextual buttons to center
it

Bug: 189807374
Change-Id: I149ef25df570fb1fd385f1da960c827105ff975d
2021-10-14 18:32:35 -07:00
Tony Wickham
772732de9e Migrate mStashedInApp to FLAGS_STASHED_IN_APP
This is to prepare for different flags that could cause taskbar to be stashed in an app without the user explicitly long pressing to stash.

Test: run wwdebug and wwlogcat, ensure still get logs for long press stash events; other interactions like clipping tasks to above unstashed taskbar still work as before
Bug: 190192993
Bug: 193937948
Change-Id: I90846e650a438e03bdcfdf9c4bf919e19cc5abb3
2021-10-07 23:29:34 -07:00
Tracy Zhou
308851d866 Stash the bar after settling in Overview
Test: https://recall.googleplex.com/projects/81822932-8526-4ee7-b5f7-4ef6d6603f1d/sessions/f0f7a3db-76b6-4f60-87e8-8918bd6cf180
Bug: 193938970
Change-Id: Ic08d3156f5c78a34f353783b760d5cf098e442e8
2021-09-16 00:06:47 -07:00
Tony Wickham
2908eb70fc Merge changes from topics "TaskbarLogging", "taskbar-log" into sc-v2-dev
* changes:
  Add logs for taskbar and overview split action
  Add TaskBarContainer to launcher_atom.proto
2021-09-15 16:28:45 +00:00
Tony Wickham
2a10e62e92 Add logs for taskbar and overview split action
Log:
- Taskbar app launch (also from foldeR)
- Taskbar app drag (also from folder)
- Taskbar folder open
- Long press to hide taskbar
- Long press to show taskbar
- Overview Split screen action

Also add support for ActivityContext to overwrite/add to LauncherAtom.ItemInfo, which TaskbarActivityContext does to change HotseatContainer and PredictedHotseatContainer to TaskBarContainer

Test: enable logcat locally
Bug: 193009817
Change-Id: Ia82c846a727fecb8cbfd0a069c8af1276083bf83
2021-09-13 17:25:15 -07:00
TreeHugger Robot
14df808f4d Merge "Fix taskbar education not touchable if taskbar is stashed" into sc-v2-dev 2021-09-13 18:05:28 +00:00
Tony Wickham
cc6a1d6584 Fix taskbar education not touchable if taskbar is stashed
Instead of assuming taskbar window is not touchable while taskbar is stashed, fall through to the areIconsVisible() check, which already returns false if taskbar is stashed anyway. Additionally, add a check for AbstractFloatingView so we appropriately allow touches if one exists.

Test: Open Contacts, can still touch through stashed handle; start TaskbarEduView flow and can touch whether taskbar is stashed or not
Fixes: 199376513
Change-Id: If362bad5cb8262fc8c489010e4b2d306ac5f252a
2021-09-09 09:10:21 -07:00
Tony Wickham
f8a064f347 isable taskbar edu for tests
Test: clear TASKBAR_EDU_SEEN pref, ensure edu shows during normal usage
Bug: 199100151
Change-Id: I8e59cfa22ccba77c588a0902d46021dd72c6e77d
2021-09-08 08:10:16 -07:00
Tracy Zhou
527b39cd28 Stash/unstash the task bar based on states
Bug: 193938970
Test: go to any app, stash/unstash, and make sure the states are preserved
Change-Id: I3adf826407e90275687ecea8302abf7a004f1df7
2021-09-03 12:43:04 -07:00
Tony Wickham
31f787d352 Add "wave" animation when entering taskbar edu
Each icon scales and translates up, then back down. If the icon is predicted, it also plays a "slot machine" animation through random icons from AllAppsList.

Test: Visual
Bug: 180605356
Change-Id: Ia41cb0e340347eea6b580d23c8a2386837e9c399
2021-08-26 13:00:43 -07:00
Tony Wickham
3974edc46a Don't draw taskbar background during gestures
In this case, the ScrimView for BackgroundAppState will handle drawing behind the whole screen, and prevents taskbar from drawing the rounded corners on top of TaskViews.

Added a hack to defer resuming last task by a frame to ensure taskbar is drawing first.

Test: Quick switch to an app, ensure it isn't covered by the taskbar's rounded corner
Bug: 196257194
Change-Id: Ibc81d80bc3bf1d908e6912b179cbcafbdcc56c0f
2021-08-17 15:07:50 -07:00
Andy Wickham
b8eac86b63 Only show Taskbar Edu once (first time an app is opened).
Bug: 180605356
Test: Manual
Change-Id: I2cc102d7ce36e0b1c2c75482e2bbb97218618e61
2021-08-17 09:57:55 -07:00
Andy Wickham
13f3ffed95 Adds initial Taskbar Edu implementation.
Currently it just pops up with one placeholder image for splitscreen.
The Next button doesn't do anything.

Screenshots:
Light: https://screenshot.googleplex.com/B27CwBcwobHTghN.png
Dark: https://screenshot.googleplex.com/48EuJZv8evd5RGW.png

Known issues:
 - Back gesture is picked up behind by the app behind the taskbar.
 - When the flag is enabled, the Edu shows up each time you open
   an app, rather than only the first time.

Bug: 180605356
Test: Manual
Change-Id: Ifba9aa59abf1501b5f8ddebb3fcc13df85f6efaa
2021-08-17 09:57:47 -07:00
Tony Wickham
635e180e56 Extend taskbar color to entire screen in overview
Only when taskbar is unstashed in apps:
- Scrim workspace with the taskbar color when opening apps and in BackgroundAppState
- Crop opening apps to above the taskbar
- Crop TaskViews to above the taskbar during gestures

If taskbar is stashed in apps, behavior is the same as before, i.e. no scrim over the wallpaper and no cropping of tasks.

Added a field DeviceProfile#taskbkarPresentInApps to distinguish these cases. LauncherTaskbarUIController and TaskbarStashController ensure this value is set appropriately.

Test: Ensure tasks don't appear behind taskbar when it's unstashed; set ENABLE_SCRIM_FOR_APP_LAUNCH = true to test the whole screen scrimming when opening an app

Bug: 196257194
Fixes: 190681228
Change-Id: I481501457a5a6d49c380feea3db3b4058e4cf3f8
2021-08-16 16:50:52 -07:00
Tracy Zhou
ae0c16dd0c Taskbar should animate immediately when tapping a live tile
Fixes: 194728948
Test: manual
Change-Id: Ia2bf9e4d050367ac08e3308a308f19f04577c49e
2021-08-10 16:30:29 -07:00
Tony Wickham
8a2c1cbc5a Add taskbar stashing feedforward, i.e. hint at upcoming stash/unstash
Also fix unstashing not working in 3P launchers by moving the unstash call from LauncherTaskbarUIController to TaskbarActivityContext

Test: long press taskbar background and stashed handle, watch it hint towards the new stashed/unstashed state respectively and then complete the animation when the long press is triggered
Fixes: 193926311
Fixes: 192926350
Change-Id: I0e538be9129bf5c600d07f360b8106d7077862ad
2021-07-19 14:09:33 -10:00