Commit Graph

140 Commits

Author SHA1 Message Date
Alex Chau e818bcb997 Use real IDP in DeviceProfileTest
- Mock WindowManagerProxy instead of IDP in DeviceProfileTest
- Extracted NavigationMode to standalone class
- Moved parseNavigationMode to WindowManagerProxy so it can be mocked
- Moved DeviceProfileTest to internal repo

Bug: 242086027
Test: DeviceProfileTest
Change-Id: Ia5a43293b1380f04d786d2adf8503cfd10f7674a
2022-09-07 10:35:21 +01: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
Vinit Nayak 8a3d05587e Show 3 button nav on phone in Taskbar (1/2)
* TODO: Landscape/seascape support,
        Separate nav spacing out into
        separate class/add tests

Bug: 219035565
Change-Id: I8f5c007f04ea4d6df15962772806356181d764ff
2022-08-09 13:25:50 -07:00
Vinit Nayak 7db37b3d94 Use Taskbar window for phones (only works on gesture nav) with flag
* Try to avoid re-creating TaskbarActivityContext to
avoid re-inflating taskbar views
* Toggle via Flipper App (key 1101)
OR adb shell setprop persist.wm.debug.hide_navbar_window 1 && adb reboot
TODOs
* Only works for gesture nav, not 3 button
* Sampling on phone doesn't always work.

Bug: 219035565
Change-Id: I2a015f99d5f1fe86d7261eec9fd898bd4480ff9f
2022-08-01 17:48:09 -07:00
Pat Manning 5f74bfd76d Refactor DeviceProfile tests based on dump() and use real device dimensions for tests.
- Added roundPxValueFromFloat when converting dp/sp to px to deterministically round up values around .5

Fix: 240133465
Bug: 237542518
Test: DeviceProfileTest.kt
Change-Id: If4239f714487fe5bf2ef44274e2ce415bd75c86d
2022-08-01 17:54:43 +00:00
Tony Wickham d7fb7f379a Merge "Cleanup taskbar+assistant interactions" into tm-qpr-dev 2022-07-28 23:02:35 +00:00
Merissa Tan 5dbd289f18 Add running apps icons to taskbar for desktop environment.
This CL adds app icons for launched/running apps to the Launcher
taskbar hotseat. When the activity is closed, the app icon is
removed. The apps that are added to the taskbar on boot are never
removed.

Recall: http://recall/clips/ad6d3cfc-7358-4b37-846e-de843ad3000d

Bug: 183906774
Test: Launch an app and verify the app icon is added on the taskbar.
Close the app and verify the icon is removed from the taskbar.
Test: Switch navigation modes on the emulator and ensure that running
app icons are added to the taskbar after it is reinitialized.
Test: atest NexusLauncherTests:com.android.quickstep.RecentTasksListTest RecentTasksControllerTest

Change-Id: Ieaaf001530b5778871fb7a8d18cdcaa1ccbf0e31
Merged-In: Ieaaf001530b5778871fb7a8d18cdcaa1ccbf0e31
2022-07-28 17:50:12 +00:00
vadimt f6ef879cf4 Moving all sources that are shared between Launcher and TAPL in one directory
This will help SysUI test team (who uses TAPL) to set up Gradle build for their tests.

Bug: 202567877, 234414088
Test: presubmit
Change-Id: I3d923ea4b54d1a4c3d2b345be09692727d30433e
2022-07-27 20:18:46 +00:00
Tony Wickham eeb66e41e5 Cleanup taskbar+assistant interactions
- Always move the taskbar layer when voice interaction window visibility
  changes, to ensure we remove the temporary taskbar background in all
  cases (e.g. swipe to home)
- Move check to not draw taskbar background to the temporary view
  itself, so that it's at the proper layer when shown (e.g. during
  fulfillment on the home screen)
- Don't add view to window if it's already added (we already have this
  check for the removal case)

Test: Open an app, invoke Assistant, swipe home; Taskbar background is
removed; invoke and fulfill assistant from home screen, in app, in 3
button mode, and in gesture mode (all permutations)
Fixes: 236924161
Fixes: 240101132
Fixes: 235895444

Change-Id: I5958f1dbe14a6d190d3808014429f7f8146c9f96
2022-07-27 12:52:59 -07:00
Alex Chau 62572c04e2 Revert "Move BaseActivityInterface task size methods to DevicePr..."
Revert "Move BaseActivityInterface task size methods to DevicePr..."

Revert submission 19279487-baseactivityinterface

Reason for revert: As per discussion in ag/19341332, make sure DeviceProfile can properly react to inset changes before moving task size calculations there
Reverted Changes:
I30324d34c:Move BaseActivityInterface task size methods to De...
Ia9c1d0387:Move BaseActivityInterface task size methods to De...

Bug: 238593212
Change-Id: I0d40fdd4a5d4468494e30cef32a284479ddd2feb
2022-07-25 18:38:03 +00:00
Pat Manning 4e73e5e352 Move BaseActivityInterface task size methods to DeviceProfile.
Fix: 238593212
Test: DeviceProfilePhoneTest.kt
Test: DeviceProfileVerticalBarTest.kt
Test: DeviceProfilePhone3ButtonTest.kt
Test: DeviceProfileVerticalBar3ButtonTest.kt
Test: DeviceProfileTabletLandscapeTest.kt
Test: DeviceProfileTabletPortraitTest.kt
Test: DeviceProfileTabletLandscape3ButtonTest.kt
Test: DeviceProfileTabletPortrait3ButtonTest.kt
Test: DeviceProfileTwoPanelLandscapeTest.kt
Test: DeviceProfileTwoPanelPortraitTest.kt
Test: DeviceProfileTwoPanelLandscape3ButtonTest.kt
Test: DeviceProfileTwoPanelPortrait3ButtonTest.kt
Change-Id: I30324d34ca119a467f530b590949743c2ba7b91a
2022-07-18 16:35:02 +01:00
Tracy Zhou 1092ccacbf Merge "Show IME switcher only when physical keyboard is connected in 3 button nav (instead of also when virtual keyboard is visible)" into tm-qpr-dev 2022-06-29 21:27:17 +00:00
Vaibhav Devmurari 207e374413 Allow taskbar and taskbar all apps window to receive split touches
Adding feature to allow UI interaction during Drag and drop.
To allow user to interact with taskbar UI during D&D, the window
should support FLAG_SPLIT_TOUCH to receive touch events while user
using D&D.
DD: go/global_drag_and_drop

Test: manual
Bug: 220109830
Change-Id: Icd549aa272c140d865d89eeb9f5619b5ab13c015
(cherry picked from commit 0074baa82e)
2022-06-27 10:11:58 +00:00
Tracy Zhou 849a0c4e81 Show IME switcher only when physical keyboard is connected in 3 button nav (instead of also when virtual keyboard is visible)
Bug: 226489759
Test: connect to a physical keyboard in 3 button nav and make sure the ime switcher shows; and doesn't show with virtual keyboard
Change-Id: Ib9a5880eb1bd6d5b877a9f3789ce858f399c4910
2022-06-24 23:40:41 -07:00
Alex Chau ccc55f1668 Merge "Detect force visible nav bar based on kids mode." into tm-qpr-dev 2022-06-16 13:55:14 +00:00
Pat Manning c773d7cdc8 Detect force visible nav bar based on kids mode.
WM was changed to use NAV_BAR_KIDS_MODE instead of NAV_BAR_FORCE_VISIBLE, this needs to update to match.

Fix: 229580780
Test: manual.
Change-Id: I38fb23dcc85676593a3f8f0851676bc526802d2e
2022-06-15 15:03:52 +01:00
Tony Wickham 9a54d2aa43 Hide taskbar while VoiceInteractionWindow is visible
- Fade out icons (or stashed handle if stashed)
- Move background to APPLICATION_OVERLAY layer (behind VIW)
  - Only for gesture nav
- On home screen in 3 button mode, translate buttons down when assistant
  is invoked

Test: Invoke assistant, ensure it draws above taskbar background and
taskbar stops drawing icons or stashed handle
Bug: 225200928

Change-Id: I7807d30df8f358295b8231d89217c7413f32c6f9
Merged-In: I7807d30df8f358295b8231d89217c7413f32c6f9
2022-06-09 05:21:42 +00:00
Brian Isganitis a9a78117c7 Have separate DeviceProfile instances for taskbar and all apps windows.
We want to scale down the DeviceProfile for taskbar, but the all apps
window should rely on the original DeviceProfile.

Test: Manual
Fix: 232907361
Change-Id: Ia09f674ada9e445c1d7278fa94c536ea9de13ef9
Merged-In: Ia09f674ada9e445c1d7278fa94c536ea9de13ef9
2022-05-25 18:11:51 +00: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
Tony Wickham a681cf6abe Migrate from InsetsInfo.contentInsets to WindowManager.LayoutParams#providedInternalInsets
- This allows us to distinguish taskbar's ITYPE_EXTRA_NAVIGATION_BAR insets from its ITYPE_BOTTOM_TAPPABLE_ELEMENT insets
- Set nav bar insets as before (contentInsets)
- Set tappable elements insets the same, except when taskbar is stashed, in which case set to 0

Test: TaplTestsTaskbar; manually stash/unstash taskbar, open IME, open Calculator (which uses tappableElement() insets) and Contacts (which uses systemBars())
Fixes: 215411414
Change-Id: If00f7a590b0780715d5b8159f5135054364ce84e
2022-04-21 16:15:41 +00:00
Tony Wickham 74641da5b8 Merge "Move taskbar insets logic to TaskbarInsetsController" into tm-dev 2022-04-20 23:43:50 +00:00
Tony Wickham 36c9d888d8 Move taskbar insets logic to TaskbarInsetsController
Test: TaplTestsTaskbar; manually stash/unstash taskbar, open IME
Bug: 215411414
Change-Id: I73622dc020c4f8c8b3d317fcb1dd072bcfc3d274
Merged-In: I73622dc020c4f8c8b3d317fcb1dd072bcfc3d274
2022-04-20 19:27:48 +00:00
Brian Isganitis 6d780af405 Merge "Log taskbar all apps entrypoint, launches, and drags" into tm-dev 2022-04-20 17:13:52 +00:00
Tony Wickham 2604dd348c Move Taskbar background drawing to TaskbarBackgroundRenderer
Currently used by both TaskbarDragLayer and TaskbarScrimView

Test: stash and unstash taskbar, background drawn as before; open a
Bubble and ensure taskbar is still scrimmed
Bug: 225200928

Change-Id: I3f7f4c1b1232b53c3eacb0e000d1c3aec25bb49d
2022-04-14 14:18:35 -07:00
TreeHugger Robot d9939d8174 Merge "Adjust the insets frame providing method per API change" into tm-dev 2022-04-13 01:53:04 +00:00
Brian Isganitis 5b89b31b12 Log taskbar all apps entrypoint, launches, and drags
Test: wwdebug, wwlogcat, ensure container is formatted as follows:
    container_info {
      all_apps_container {
        taskbar {
        }
      }
    }
Bug: 204696617
Change-Id: I2492b133f95fccb059010bc9e5ed6cce73c211f9
2022-04-11 12:14:14 -07:00
Alex Chau e0227551cf Clone mInsets when copying DeviceProfile to taskbar
- Set mInsets with windowBounds.insets when initialized, and set windowBounds.insets when cloning DeviceProfile
- Added more bottom sheet / all apps in DeviceProfile dump
- Also dump taskbar's device profile in dumpsys

Fix: 226968237
Test: Taskbar AllApps should have correct top padding
Test: adb shell dumpsys activity com.google.android.apps.nexuslauncher
Test: adb shell dumpsys activity service com.google.android.apps.nexuslauncher/com.android.quickstep.TouchInteractionService
Change-Id: I7739c699fb16544b92dc820354a643f745694c25
2022-04-06 19:44:43 +01:00
Yunfan Chen e3f7624ecb Adjust the insets frame providing method per API change
The frameworks side made a change to provide different insets frames for
different types of insets. Update the corresponding code to reflect that
change.

Test: build
Bug: 215411414
Change-Id: I57ecbb778fd0f0d3a19cc6712d747cad6664644b
2022-04-04 17:59:54 +09:00
Vinit Nayak 26b6b577b9 Add metrics for taskbar 3 button nav
Fixes: 221075063
Test: wwlogcat shows right events,
new events show up on aster dashboard

Change-Id: I3864ac02ea00f281d33ccb26b95a4916bd8b6be9
Merged-In: I3864ac02ea00f281d33ccb26b95a4916bd8b6be9
2022-03-31 19:36:47 +00:00
Tony Wickham 538c9a0b52 Fix problems with taskbar floating views on rotation
- Close all views except TYPE_REBIND_SAFE
- Make All Apps TYPE_REBIND_SAFE again
- Reapply fullscreen to ensure any remaining floating views such as taskbr edu are laid out correctly upon rotation

Test: Rotating with folder and/or popup closes them; rotating with all apps stays open; rotating with all apps + popup closes popup but not all apps; rotating taskbar edu lays out correctly; opening shortcut or notification from all apps popup still closes all apps
Fixes: 220074790
Fixes: 219981733
Change-Id: I1dfea4ed0a636ab84bcc4e33304c80a689da01cd
2022-03-28 14:48:20 -07:00
Schneider Victor-tulias 44aadeaef6 Fix issue cauing the taskbar to show in the all set page of the SUW.
Some missing state handling was causing the taskbar to show in the all set page of the SUW.

Fixes: 218507703
Test: build change, flashed and factory reset device
Change-Id: If3a280ef6416f0821cf6a9b1ab0a65d58c5c8221
2022-03-22 10:50:26 -07: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
Nick Chameyev 41b7f53805 Merge "Do not run unfold taskbar animation when in portrait" into tm-dev 2022-03-09 10:26:21 +00:00
Nick Chameyev fe9ec740cc Do not run unfold taskbar animation when in portrait
Limits taskbar icons translation animation
only when the display is in natural orientation.

Bug: 219958588
Test: fold/unfold in portrait and landscape
Change-Id: I33e26829ae37f1df39e8c7234f98d20eb7993b93
2022-03-08 12:03:32 +00:00
Sunny Goyal 4403d078a6 Moving NavigationMode to display controller
Navigation mode affects display properties like bounds and
most listeners already had a similar display listener. This
will remove race conditions when managing the two events.

Bug: 221961069
Test: Presubmit
Change-Id: If7a22e006e6b969ecddf075001066809aa72995c
2022-03-04 18:11:33 -08:00
Brian Isganitis 1bc23b7662 Ignore touches in taskbar and all apps windows during system drag.
Touches are ignored as soon as we want to start system drag so that system drag can start sooner (i.e. before any AbstractFloatingView animations finish). This approach utilizes ViewTreeObserverWrapper's compute insets listener by temporarily setting the touch region to empty. The taskbar window remains fullscreen until the drag finishes so the touch region is reset at the right point. Similarly, the all apps window is kept open during its drag operations until the drag finishes. System drag state is now exposed through the drag controller to skip predrag.

Test: Manual by dragging to split screen and triggering dismissal
animation from both windows. Verified predrag works.
Fix: 221104066
Fix: 220070070

Change-Id: I424106269c841f58cbe5338d30b6c33fbd889019
2022-03-02 11:31:47 -08:00
Pat Manning 281182739a Merge "Refactor force visible nav bar into new secure setting." into tm-dev 2022-03-02 13:51:27 +00:00
Pat Manning 2da28dcdc9 Refactor force visible nav bar into new secure setting.
Decouples force visible from kids mode setting.

Bug: 217668440
Test: manual
Change-Id: Ia8a2b30eab7633e3b686c9afebd7e683ef984deb
2022-02-28 14:55:47 +00:00
Brian Isganitis a1370bfc5f Put taskbar all apps in separate overlay window and stash taskbar.
All apps should display below system UI components such as the
notification tray and power menu, so an overlay window is more
appropriate. As a result, all apps has a separate window activity
context, but some properties are delegated to the taskbar activity
context. Taskbar should also be stashed while all apps is open.

Change-Id: I593457708779d84a0ab8b949a966d247d0a2e1b7
Test: Manual
Bug: 216843189
Fix: 217383817
(cherry picked from commit 473b980bf9)
2022-02-23 15:06:56 +00:00
Brian Isganitis 7b046e7e27 Merge "Add predictions row to taskbar all apps." 2022-02-15 19:24:53 +00:00
Brian Isganitis 099945b075 Add predictions row to taskbar all apps.
- We need to listen to DeviceProfile changes in case the number of
  columns changes in the grid. I made an interface/mixin separate from
  ActivityContext to avoid polutting the latter with too many things. I
  also applied this change to existing taskbar A-Z grid.
- Added all apps visited count to onboarding preferences for only
  showing "All Apps" label in place of divider 20 times. Label is also
  tracked on taskbar side and should be kept in sync.

Test: Manual
Fix: 216843395
Bug: 174174514
Change-Id: I97aa91397c334123626caf18251f19e17c7104fb
2022-02-14 11:24:16 -08:00
Yohei Yukawa 697ae451d4 Use config_imeDrawsImeNavBar in Launcher
With this CL, the Launcher starts checking

  config_imeDrawsImeNavBar [1]

instead of

  config_navBarInteractionMode

when determining whether the IME should render the back and IME
switcher buttons or not.

There should be no observable behavior change as long as

  config_navBarInteractionMode

is set to true when the gestural navigation is enabled.

Bug: 216118048
Test: presubmit
Change-Id: Ia8269e240e0b18e1c7b8bd550dbb197ad58a6dbc
2022-02-08 07:47:29 -08:00
Brian Isganitis 25b2ac8527 Do not scale down taskbar all apps icons.
Test: Manual
Bug: 204696617
Change-Id: I2ede15d8beaef65661984fe63bd99d0e7e726774
2022-01-28 16:43:24 -05:00
Brian Isganitis 9e80fb355c Inflate taskbar all apps in abstract slide-in view.
All apps can now be dismissed via the scrim or swiping down. To properly
behave as an AFW, the apps view can no longer be within the taskbar's
layout, and will instead add and remove itself from the drag layer.

Test: Manual
Bug: 204696617
Change-Id: I86a0ffc06faa653c65b3797a57ba6512c6874221
2022-01-28 15:21:11 -05: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
Pat Manning 900ef936ad Animate icon dimming in taskbar when force showing in immersive mode.
Test: manual
Bug: 203748818
Change-Id: Iab3c65db502e7dbde3141429e9ae70eec1fabde1
2022-01-27 17:59:35 +00:00
Tony Wickham c4f2560b0f Merge "Don't create new nav bar layer when IME is rendering nav buttons" 2022-01-25 20:17:43 +00:00
Schneider Victor-tulias bce63e06ed Merge "Fix taskbar icon dragging issues" 2022-01-25 19:03:06 +00:00
TreeHugger Robot 3e25f29128 Merge "Add log dumps for taskbar state" 2022-01-21 15:05:32 +00:00