Commit Graph

1278 Commits

Author SHA1 Message Date
Vinay Joglekar fe7878c144 Merge "Dim TaskThumbnailView on Foreground scrim" into main 2024-07-25 13:03:49 +00:00
vinayjoglekar 36ef7bf6e7 Dim TaskThumbnailView on Foreground scrim
Bug: 349601769
Test: TaskThumbnailViewModelTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: I3a9fa21d8a4c28ffe40279243030f0e47c957513
2024-07-25 11:18:20 +01:00
Treehugger Robot de1a7e067f Merge "Move TestExtensions.kt to quickstep for DeviceConfig overrides." into main 2024-07-24 22:42:00 +00:00
Treehugger Robot 5ace16c7b8 Merge "Only register RecentTasksChangedListener if flag is enabled" into main 2024-07-24 01:17:35 +00:00
Andy Wickham 75ce1a2cd6 Move TestExtensions.kt to quickstep for DeviceConfig overrides.
Fix: 353740808
Test: Run existing tests using this class
Flag: TEST_ONLY
Change-Id: Ie72fb86ea4d451e90a6629554dc717126db0b24c
2024-07-24 00:15:05 +00:00
Tony Wickham bbfa9fc181 Only register RecentTasksChangedListener if flag is enabled
Also unregister it if the feature becomes disabled (currently
this is only done in tests but in the future there will be a
user setting as well).

Added tests to verify getTasks() is not called while both
canShowRunningApps and canShowRecentApps are false.

Bug: 354087794
Test: TaskbarRecentAppsControllerTest
Flag: com.android.launcher3.enable_recents_in_taskbar
Flag: com.android.window.flags.enable_desktop_windowing_taskbar_running_apps
Change-Id: I3123501e7584ad7f877e13294454556501d2dbc8
2024-07-23 23:24:10 +00:00
Treehugger Robot ea4373c060 Merge "Add NavHandleLongPressInputConsumerTest." into main 2024-07-23 23:20:47 +00:00
Treehugger Robot e3078707a0 Merge "Move more tests to deviceless" into main 2024-07-23 23:16:08 +00:00
Mykola Podolian 126be5629b Merge "Added BubbleStashController interface" into main 2024-07-23 21:37:31 +00:00
Liam Lee Pong Lam c1d3fa453f Merge "Fixes SettingsChangeLoggerTest failures" into main 2024-07-23 21:35:41 +00:00
Anushree Ganjam 7c32ae9acf Move more tests to deviceless
Bug: 353339741
Test: Manual
Flag: TEST_ONLY
Change-Id: Ib43d5a17feb812b08d9749b1bf6dcacabf205d47
2024-07-23 13:57:28 -07:00
Liam, Lee Pong Lam 80ffa83957 Fixes SettingsChangeLoggerTest failures
To revert the preference change on PreviewItemManagerTest for on-device
test.

Bug: 354157494
Test: Unit tests
Flag: EXEMPT bugfix
Change-Id: I966cbd7bf85b0336e131c6e9e4bb306b3700a928
2024-07-23 19:33:27 +00:00
mpodolian 08e98a2c3e Added BubbleStashController interface
Added common BubbleStashController interface and implementation for the
PersistentTaskBarStashController. Added tests for the implementation.

Bug: 346391377
Flag: com.android.wm.shell.enable_bubble_bar
Test: PersistentTaskBarStashControllerTest
Change-Id: I353e5a2cfa2d39e83b0e94980938aee8a1002fd9
2024-07-23 19:32:08 +01:00
Andy Wickham 8e4faffd0e Add NavHandleLongPressInputConsumerTest.
Tests LPNH for the standard conditions (no flags or AGA configs).

Specifically tests:
 - Delegate stealing focus
 - Long press triggers with steady hold or slight slop
 - Up, cancel, or excessive slop cancels the long press
 - Touch ignored if outside the nav handle (not centered)

Things behind flags / AGA config which are not yet tested:
 - 2 stage detection (double timeout after small slop)
 - Deep press
 - Custom timeout from AGA

Fix: 353613291
Test: NavHandleLongPressInputConsumerTest
Flag: TEST_ONLY
Change-Id: I5ada3a07ccec9062ac22fa21b00d5a030f6d134a
2024-07-23 01:23:45 +00:00
Alina Zaidi 3835f93237 [Dev options][DW flag] Update all usage of enable_desktop_windowing_mode flag to use DesktopModeFlags
Test: Current tests pass
Bug: 348193756
Flag: com.android.window.flags.show_desktop_windowing_dev_option
Change-Id: I96107f7c2964ee8261ad0a161163491d6f7d4d39
2024-07-22 20:33:02 +00:00
vinayjoglekar 82bb770738 Support sysUiStatusNavFlags for refactored TTV
Bug: 350743460
Test: SysUiStatusNavFlagsUseCaseTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: Id7576cb2eda14e6c72f34fe3fea3323a104a5164
2024-07-22 12:44:52 +01:00
Jordan Silva 426f74369a Introducing Manual DI for Overview
This CL adds the RecentsDependencyContainer to maintain singletons and dependencies related to RecentsView. RecentsDependencies is a singleton that requires the application context to be initialized. Unlike regular singletons, this class has an initialize function where it gets initialized and can be retrieved with getInstance without providing the appContext each time.

- We've updated the refactored classes behind the -enable_refactor_task_thumbnail flag to use this DI solution rather than relying on .parent or recreating dependencies.

- To inject dependencies, you can use RecentsDependencies.inject for lazy initialization or RecentsDependencies.get for eager initialization.

- At the moment, we don't have a singleton or factory definition. All dependencies created by RecentsDependencies will be stored in a specific scope, making the instance a singleton within that scope.

- You can create or retrieve a dependency in a particular scope by calling RecentsDependencies.inject(scopeId).

- If you don't need the dependency to be stored in RecentsDependencies, you can create it manually in your code and inject the necessary parameters from RecentsDependencies (see the viewModel in TaskOverlayHelper).

- Handling the cleaning/resetting of dependencies will be addressed in b/353917593. RecentsView lifecycle is more complex and doesn't get recreated every time. We need to determine which dependencies or scopes can be destroyed and recreated.

Fix: 349055024
Test: NONE
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: I27b92e3038f1cce0fd53b637dba5054c05b40283
2024-07-19 11:54:20 +00:00
Treehugger Robot 2495e980ed Merge "Throw exception from SystemUiProxy.getRecentTasks for invalid result" into main 2024-07-19 11:01:40 +00:00
Alex Chau 3210f73125 Throw exception from SystemUiProxy.getRecentTasks for invalid result
- The reason Recents is empty after a force-stop is when RecentsTasksList.getTasks is called first time after restart, the result is always invalid but we cached the invalid result with a chagneId(=1). The next time we call getTasks again, we think the cached result is valid, and returend an empty list.
- The fix is to mark such result as invalid to avoid caching the wrong result

Fix: 353926204
Test: RecentTasksListTest
Flag: EXEMPT bugfix
Change-Id: If15ab8fd7454db8a08c22b17eaac73f0c78aa75f
2024-07-19 09:21:40 +00:00
Liam Lee Pong Lam 0002e9cfc9 Merge "Add unit tests for SettingsChangeLogger" into main 2024-07-19 01:53:21 +00:00
Charlie Anderson c22b0ea47b Merge "[Test Week] unit tests for LauncherRestoreEventLoggerImpl" into main 2024-07-18 18:44:15 +00:00
Liran Binyamin a2aa555faf Merge "Update bubble notification dot drawing" into main 2024-07-18 18:42:01 +00:00
Liam, Lee Pong Lam c56711c669 Add unit tests for SettingsChangeLogger
Bug: 353584526
Flag: EXEMPT bugfix
Test: Unit tests
Change-Id: Ib1bac2471d9cc467b8b6697ae4d79f561eea75e4
2024-07-18 18:32:36 +00:00
Charlie Anderson ee3cc97fd3 [Test Week] unit tests for LauncherRestoreEventLoggerImpl
5 public methods tested
No previous testing class

Flag: TEST_ONLY
Test: unit test
Bug: 353303621
Change-Id: I97273e7eebebfa4aac1e7c3db8bf089f3e49f150
2024-07-18 15:38:08 +00:00
Liran Binyamin 5013028596 Update bubble notification dot drawing
The notification dot drawing state depends on changes in the bubble
bar, so the bubble bar now directly requests updates to the dot at
specific states.

Flag: com.android.wm.shell.enable_bubble_bar
Fixes: 351904597
Fixes: 350782375
Test: atest BubbleViewTest
Test: manual basically just hammering on it trying to break it
       1. Dot appears for new bubble in all states of the bar
       2. Expand bubble bar
          - Dot is removed for selected and shows for others
            that have a dot
       3. After removing bubble while expanded
          - Dot is removed from newly selected bubble
       4. Collapse bubble bar
          - Dot is hidden for all bubbles
       5. Dot removed after tapping on a bubble when expanded

Change-Id: I4a940d38a8c77bddaf058b7ef882bab06886bcf4
2024-07-18 10:38:29 -04:00
Alex Chau 1d75081a5f Merge "Apply PreviewPositionHelper matrix to TTV and Overlay" into main 2024-07-18 13:56:42 +00:00
Alex Chau 893f4c6a45 Apply PreviewPositionHelper matrix to TTV and Overlay
- Added GetThumbnailMatrixUseCase to retrieve task using taskId and calcualte Matrix using provided canvas size and isRTL
- TTVM and OverlayVM will uses GetThumbnailMatrixUseCaseTest with runBlocking to obtain the matrix from the loaded thumbnail
- TTV and Overlay listen for size change, and call VM to get the latest Matrix and apply to the view

Fix: 343101424
Test: GetThumbnailMatrixUseCaseTest
Test: TaskThumbnailViewModelTest
Test: TaskOverlayViewModelTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: If3f37824bed84d5cbaa54d7a4b12f5f1ef4e2c09
2024-07-18 13:07:14 +01:00
Treehugger Robot 2397ffd437 Merge "Disable model loading in Taskbar unit tests." into main 2024-07-17 21:14:10 +00:00
Treehugger Robot 4997c14218 Merge "Adding screen record for the bug where com.google.android.apps.nexuslauncher:id/popup_container is not present" into main 2024-07-17 14:10:16 +00:00
Treehugger Robot c2a36a6fcd Merge "Add Repository for RecentOrientedState and DeviceProfile" into main 2024-07-17 12:25:09 +00:00
Alex Chau 5837a4628c Add Repository for RecentOrientedState and DeviceProfile
- DeviceProfile have java fields that cannot be mocked, nor can be freely instantiated, so I've to use FakeInvariantDeviceProfileTest to give me some predefined DeviceProfile for testing

Bug: 343101424
Test: RecentsOrientedStateRepositoryTest
Test: RecentsDeviceProfileRepositoryTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: Iaa34ef60a418eb336859d260f5808b263de6b4f7
2024-07-17 11:29:20 +01:00
Brian Isganitis 2477f89fd2 Disable model loading in Taskbar unit tests.
We do not need this for now and it is making development more difficult on macs.

Test: Taskbar unit tests
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I2e74e91e21aa650544d8264fab7b336b97b52547
2024-07-16 18:37:28 -04:00
Vadim Tryshev be508f4aa1 Adding screen record for the bug where com.google.android.apps.nexuslauncher:id/popup_container is not present
Bug: 349439239
Test: presubmit
Flag: TEST_ONLY
Change-Id: I177080040244462c8d1ca36ec433d36a7fbd7897
2024-07-16 13:24:33 -07:00
Jagrut Desai c9174e17a2 Merge "Add support for different container and space calculation logic." into main 2024-07-16 20:16:10 +00:00
Brian Isganitis 984d782024 Merge changes from topic "taskbar-pinning-preference-rule-fixes" into main
* changes:
  Add subrule for controlling an individual Taskbar preference.
  Taskbar Pinning Preference Rule fixes.
2024-07-16 18:05:33 +00:00
Jagrut Desai 84151055b7 Add support for different container and space calculation logic.
This CL includes
	- Taskbar container enum class and interface for container to calculate their space needed.
        - Inits and getter of util classes in taksbar activity context.
        - Taskbar Icons specs not have default margins and minimum touch target specs
	- Updates to the test
        - Logic for calculating the space needed for taskbar container

Test: Presubmit
Bug: 341146605
Flag: com.android.launcher3.enable_taskbar_customization
Change-Id: I89e9d521476902a9027f6fd0cebdc2690b2e5f31
2024-07-16 10:48:51 -07:00
Riddle Hsu ebc6bf5014 Merge "Avoid changing transform when touching in progress" into main 2024-07-16 04:50:11 +00:00
Brian Isganitis d52e15b35a Add subrule for controlling an individual Taskbar preference.
Test: TaskbarPreferenceRuleTest, TaskbarPinningPreferenceRuleTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I382c7e17a5739823c25fc8d64c981405af56e3e4
2024-07-15 22:39:27 -04:00
Brian Isganitis e3d3d653d1 Taskbar Pinning Preference Rule fixes.
- Actually evaluate statement in tests.
- Enable aconfig flag for taskbar pinning.
- Allow DisplayController Taskbar mode to change in test harness.
- Make DisplayController think it's in desktop mode when needed.

Flag: TEST_ONLY
Bug: 230027385
Test: TaskbarPinningPreferenceRuleTest

Change-Id: I1c55f73cb5a4bb903cd2d628fa47fbd5e8b1bb86
2024-07-15 22:34:01 -04:00
Cosmin Băieș 1a0406e1be Merge "Add IME switch button long click support" into main 2024-07-15 18:06:02 +00:00
Riddle Hsu cbc84d96ef Avoid changing transform when touching in progress
After swiping from a landscape app to portrait home, the touch
orientation may be changed if there the touch event comes in a
short time (e.g. click app icon immediately):
 DOWN
 MOVE...
 SimpleOrientationTouchTransformer#onDisplayInfoChanged
 MOVE... (start to transform with inconsistent orientation)
 UP

That could disturb the gesture detection:
OverviewInputConsumer#onMotionEvent
 > BaseDragLayer#proxyTouchEvent
  onInterceptTouchEvent, findControllerToHandleTouch
  > PortraitStatesTouchController#onControllerInterceptTouchEvent
   > BaseSwipeDetector#onTouchEvent
which may show the app drawer unexpectedly.

http://recall/-/b2qm27pJZxFIWQccA9qE9Q/ggLXlE5kf7AWMOjUc0FCUU

Bug: 351755391
Flag: EXEMPT bugfix
Test: atest NexusLauncherTests: \
            com.android.quickstep.OrientationTouchTransformerTest# \
            testSimpleOrientationTouchTransformer
Change-Id: Ic0e9d8292606837feb4775663abb60229c90e9c5
2024-07-15 16:41:42 +08:00
Brian Isganitis fd1cc12054 Merge changes I2b87ab88,I939d8202,Ibedd8cae into main
* changes:
  Introduce rule for changing taskbar pinning preferences.
  Reinject controllers when Taskbar recreates itself.
  Inline showTaskbarFromBroadcast.
2024-07-13 19:01:33 +00:00
Brian Isganitis 803c85ac21 Introduce rule for changing taskbar pinning preferences.
Test: TaskbarPinningPreferenceRuleTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I2b87ab8823b17c364b3797a325c8b0d569a1d39a
2024-07-12 18:04:17 -04:00
Brian Isganitis c79c2fd28d Reinject controllers when Taskbar recreates itself.
Test: TaskbarUnitTestRuleTest
Bug: 230027385
Flag: TEST_ONLY
Change-Id: I939d820271ba7e5426303ac4662d1d621d86c08b
2024-07-12 18:04:17 -04:00
Treehugger Robot 1d73fdd4ac Merge "Add icon loading to TasksRepository" into main 2024-07-11 11:26:23 +00:00
Cosmin Băieș 33f8bfbadf Add IME switch button long click support
This adds support for handling long clicking on the IME switch button.
Initially it will behave exactly like short clicking, i.e. show the IME
switcher menu.

Flag: android.view.inputmethod.ime_switcher_revamp
Test: atest
  TaskbarNavButtonControllerTest#testPressImeSwitcher
  TaskbarNavButtonControllerTest#testLongPressImeSwitcher
Bug: 311791923
Change-Id: Ibd0d6bce2bab11511bc082f46731ec86038c8cf8
2024-07-11 11:42:16 +02:00
Uwais Ashraf b59d86112c Add icon loading to TasksRepository
Bug: 334826842
Test: TasksRepositoryTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: I75f2e0e9aae4663993ca54742f653f4c7c04fdfe
2024-07-11 09:40:57 +00:00
Alex Chau 0ac34a3388 Add use case for split animation to retrieve thumbnail
Fix: 349120849
Test: TaskSplitAnimationHelperTest
Flag: com.android.launcher3.enable_refactor_task_thumbnail
Change-Id: I7d4bcbdbeacd56356c71eb18c73ceef8446011d1
2024-07-10 09:37:33 +00:00
Treehugger Robot 6f7be465c0 Merge "Taskbar running apps: show one icon per task + tap opens that task" into main 2024-07-09 19:01:02 +00:00
Gustav Sennton f3108c59ed Taskbar running apps: show one icon per task + tap opens that task
Before this CL we would show only one Taskbar icon per app, making it
impossible (through the taskbar) to switch between several windows of
the same app.
With this CL we add one icon per task instead, making it possible to
bring each task to the front individually.

Flag: com.android.window.flags.enable_desktop_windowing_taskbar_running_apps
Bug: 351118893
Bug: 349790805
Bug: 351156858
Test: Started several Chrome windows -> taskbar has one icon per window

Change-Id: Ia692977effceb9ce339906bf6ca24d73e19d8769
2024-07-09 14:48:04 +00:00