Commit Graph

282 Commits

Author SHA1 Message Date
Stefan Andonian cffeb99122 Only Show Folder Arrows if Mouse or Trackpad is Connected to Device
Bug: 394355070
Test: Verified correct behavior locally. See screen recording on https://buganizer.corp.google.com/issues/394355070#comment28
Flag: com.android.launcher3.enable_launcher_visual_refresh
Change-Id: I7132b892b3bd8ee3af2cdca58b6e70f3a219c8f4
2025-04-24 13:59:21 -07:00
Anushree Ganjam 41998110bd Move FolderNameProvider to dagger.
Helps us to delete ResourceBasedOverride class.
Delete "folder_name_provider_class" resource from config.

Introduce FolderNameSuggestionLoader for easy dagger injection for
folderNameProvider.

Bug: 361850561
Test: Presubmit
Flag: EXEMPT dagger
Change-Id: I58a68cb4ce11331458a1cccef2e692f74c14ea53
2025-04-22 19:31:51 +00:00
Treehugger Robot 5643f452d5 Merge "Merging update and modify model callbacks" into main 2025-04-21 15:15:13 -07:00
Sunny Goyal 007cfecf5e Merging update and modify model callbacks
Instead of the dispatcher specifying the type, the UI checks th diff. This
ensures that the UI is updated correctly in all paths

Bug: 390572144
Flag: EXEMPT refactor
Test: Manually verified folder edit path where these callbacks were getting dispatched

Change-Id: Ib73eed5da87a847753a78453a48ab4fc495c1199
2025-04-21 12:31:23 -07:00
Charlie Anderson 8ec6581db0 Merge "Update system shortcut icons to filled GM3 versions" into main 2025-04-18 13:20:51 -07:00
Treehugger Robot 8fc4228087 Merge "When only folder page indicator is visible, set gravity to End." into main 2025-04-15 19:44:46 -07:00
Stefan Andonian 060b364718 When only folder page indicator is visible, set gravity to End.
Bug: 394355070
Test: Verified locally that indicator dots are not cut off with 6 pages.
Flag: com.android.launcher3.enable_launcher_visual_refresh
Change-Id: I1804cc7b8de032415cb8fe557a0e98a8f4acb5cd
2025-04-15 11:31:50 -07:00
Charlie Anderson c77791ba2e Update system shortcut icons to filled GM3 versions
Flag: com.android.launcher3.enable_launcher_visual_refresh
Bug: 364950287
Test: manually and popup screenshot tests

Change-Id: I5e4c964b60a4254f9f67c8128e23f5b04b621541
2025-04-15 06:48:22 -07:00
Treehugger Robot 12f5ccddd3 Merge changes from topic "pid-iv" into main
* changes:
  Implement Folder Pagination Arrow Hover / Pressed UX
  Moved PageIndicatorDots to their own ImageViews.
2025-04-14 16:45:35 -07:00
Stefan Andonian c547affdc9 Moved PageIndicatorDots to their own ImageViews.
Previously, they were simply included in PageIndicatorDots via Canvas
drawing. This worked well to keep behavior encapsulated within
PageIndicatorDots class. But it didn't work for Accessibility Services
which require an actual view in order to focus properly.

Bug: 409629978
Test: Verified manually. See video on bug comment: https://b.corp.google.com/issues/394355070#comment23
Flag: com.android.launcher3.enable_launcher_visual_refresh
Change-Id: I212bf3dbee82e449088536fa841b02a3644df7d3
2025-04-11 16:00:12 -07:00
Charlie Anderson b71758624a update folder anim for new folder specs and spring animation
- Refactors FolderAnimationManager into several classes including new FolderSpringBuilderAnimationManager
- Changes Folder animations to use animators resembling SpringAnimation
- Split up calculations from creating AnimatorSet

Bug: 387543793
Test: tested opening closing folders of different sizes
Flag: com.android.launcher3.enable_launcher_icon_shapes
Flag: com.android.launcher3.enable_expressive_folder_expansion
Change-Id: Idf1f21374f987389979ad45544ade1506b26fc0c
2025-04-11 13:57:38 -07:00
Sebastian Franco ff1936449e Prevent non workspace items from being binded to the Workspace
Bug: 407630150
Test: Manual testing, that's why the bug happen in the first place, working on adding tests, for now this fixes the issue.
Flag: EXEMPT bug fix
Change-Id: I98c9d4bb28a3f02ee6e54c66eadb54445c56aeec
2025-04-09 11:12:45 -07:00
Treehugger Robot 430fd1219a Merge "When updating workspace items, make sure to not process Folder icons as Workspace items." into main 2025-04-07 22:32:30 -07:00
Sebastian Franco abcc99f015 When updating workspace items, make sure to not process Folder icons as Workspace items.
Also, in Folder.java the DeviceProfile obtained using the activity,
in this case the Activity is TaskbarActivityContext is returning
a different DeviceProfile form the Launcher which causes the update.

So this triggers an update when is not needed but even if we make
a faulty update the workspace should be able to differentiate
between workspace item and folder items.

This issue was triggered by this flag
com.android.window.flags.enable_taskbar_recents_layout_transition .

Fix: 407630150
Test: NA
Flag: EXEMPT bug fix
Change-Id: I255052506e7d198b1384c15ebfe2f6f2753da1ed
2025-04-07 15:45:57 -07:00
Stefan Andonian 8860d1eca9 PageIndicatorDot Placement && Arrow Touchboxes.
In the previous image tests, the page indicator placement within folders
was inconsistent depending on the number of pages in a folder. This change fixes that by removing the margin_End for the page indicator in folders, as well as fixing the onMeasure call in PageIndicatorDots to be the same as the legacy calculation, just with additional space for the arrows.

Previously, the touchboxes were very small, and difficult to use. To enlarge the touchbox, enlarged padding is used. This means when the indicator & arrows are visible, we need to remove the margin from the layout container and move it to padding for the indicator.

Bug: 394355070
Test: Tested folders with 2, 3, and 18 pages in both left to right
and right to left mode.
Flag: com.android.launcher3.enable_launcher_visual_refresh

Change-Id: I3a5d9d6d77dec963865adede1c4bfe38890d608f
2025-04-02 22:35:35 +00:00
Sunny Goyal 0479ff832c Using ItemInflator for inflating Folder instead of duplicating code
Bug: 406668365
Flag: EXEMPT refactor
Test: atest FolderTest
Change-Id: I63186ba620b5380edfc5e8cded253a85379a5d82
2025-03-27 09:48:46 -07:00
Sunny Goyal ca1f87d8f5 Update Launcher UI when model changes are made outside of Launcher UI
Bug: 305877212
Flag: EXEMPT bugfix
Test: Verified manually by modifing folder in taskbar
Change-Id: I513dcfbc9e4ffcd970766ce8352815571e576461
2025-03-26 13:52:53 -07:00
Stefan Andonian 386a7b2c40 If Folders would show extremely cropped title, hide title.
This is an edge case, not standard behavior. This only happens when
the text / display size is at the highest level, and when a folder has
10+ page indicator dots.

Bug: 394355070
Test: Verified manually that this works well, and looks great in LTR mode and RTL mode.
Flag: com.android.launcher3.enable_launcher_visual_refresh
Change-Id: Id31aad47b94d20d9945495366d5381de27282153
2025-03-19 12:01:47 -07:00
Sunny Goyal 1ac78b6ec6 Removing listeners from FolderInfo
Folder and FolderIcon are UI objects and can talk to each other directly.
FolderInfo changes are already propogated via model callbacks, and doesn't need a separate listener pattern.

Bug: 398791288
Flag: EXEMPT bugfix
Test: atest FolderTest

Change-Id: Iefd47b8ea12a8ecaf34211a3d908220a0e999187
2025-03-13 10:28:07 -07:00
helencheuk 69193807f7 Reland - Not refresh predicted app in right click
When users right click the mouse/touchpad, predicted apps in hotseat refresh and it is weird.
It refreshes because the right click is treated as a drag and a drag would trigger predicted apps refresh.
This fix adds a PreDragCondition when right click to avoid it from starting drag.

Bug: 343650193
Test: Manual, connect to touchpad and right click on widget and folderIcon
Flag: com.android.launcher3.remove_apps_refresh_on_right_click
Change-Id: Id0be87beb8a0e9baf78a4ba8ec4c93462ec7bb3e
2025-03-12 15:56:53 +00:00
Sunny Goyal 476d926972 Simplifying some view iteration methods
Bug: 393703968
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: Ieffa3a66fbf8595d542995c348df578a3aec9083
2025-03-04 10:39:55 -08:00
Sihua Ma 4160ad3967 Fix jumpcuts in folder background color when opening/closing
Background drawable is not associated with any folder view, and as a
result invalidating the drawable doesn't cause it to be redrawn on the
screen

Fix: 392617057
Bug: 399674389
Test: Manual
Flag: EXEMPT bug fix
Change-Id: I6d2bd97f66b53cdbeb4a715e53ff89b3450546f0
2025-02-27 18:48:51 +00:00
Tony Wickham e6cb984fdf Don't close Folder from system nav region while editing name
Fixes: 359127164
Test: Manual, add language, change it from IME switcher while
editing folder name
Flag: EXEMPT bug fix

Change-Id: I275bf8ee43d591d1adce98cef99e59c9ffa2baf1
2025-02-01 00:30:45 +00:00
Sihua Ma a5d096b922 Add debug logs to folder open anim
Bug: 383526431
Flag: EXEMPT logs only
Test: None
Change-Id: Ib18d63e7f8ab194f8fda74aa99d99c9aa27f5f19
2025-01-08 22:53:53 +00:00
Stefan Andonian 3593b6a9e2 Fix ConcurrentModificationException in Folder by not sorting. Already done elsewhere.
Bug: 385682296
Test: Verified locally that folder behavior remained identical to before.
Flag: EXEMPT bug fix
Change-Id: I9c3ca9aa456f0ac724f4f002a8ec0385f019ee0d
2025-01-07 13:43:41 -08:00
Sihua Ma 4cc729ebca Remove disruptive announcement when exiting folder
Accessibility announcement needs to be disabled when folder is closing

Test: Manual
Flag: EXEMPT bug fix
Fix: 383248901
Change-Id: Ie6077a1214c234946bc9fb59ce54dfa7107188bd
2024-12-20 22:06:38 +00:00
Toni Barzic 2c72b9bd1a Fix cropped folder name text in arabic
Centralize the folder name within folder footer using gravity property
instead of adding padding to the folder name view. Padding as calculated
was cropping the folder name to the text line height, which was
insuficient in some cases, as eveidenced by the linked bug.

Bug: b/358006967
Test: Open a folder on home screen with arabic system language.
      Verify that the folder name displays correctly.
Flag: EXEMPT bugfix

Change-Id: I4436c224f7f6541f447e3a5354ff870cf4d50698
2024-09-26 04:57:45 +00:00
Sebastian Franco 7f9518145a Adding logs to find which call is responsible for the animation error
Bug: 311077782
Test: not aplicable
FLag: EXEMPT bugfix
Change-Id: I2d5a28a8244819a795402fdcf599009ad1abd0dc
2024-08-26 17:08:01 -07:00
Treehugger Robot d8d1532825 Merge "Test Week - Add more coverage for Folder.java" into main 2024-07-22 16:22:18 +00:00
fbaron f8962a5406 Test Week - Add more coverage for Folder.java
* Refactored Folder class
* 30  methods covered
* Adding more coverage for Folder.java

Bug: 353303621
Test: Not Applicable
Flag: TEST_ONLY
Change-Id: Ibd7ca8c2121ddc71c33f91262b46e593670eadfe
2024-07-19 14:35:29 -07:00
Sebastian Franco c794aca69f Refactoring FolderPagedView to make it more testable
Bug: 353588686
Test: Compiles
Flag: NONE refactor
Change-Id: I612523282a57beac90b14a890a333a1670ab0d48
2024-07-17 23:32:17 +00:00
fbaron df62b6ffd7 Add test for Folder undoing behavior
Fix: 341799410
Test: FolderTest#undoFolder
Flag: TEST_ONLY
Change-Id: I8bfb3fc9348290274b33f4b5b6531126c658037c
2024-07-02 15:02:09 -07:00
Vinit Nayak 247c6ac8ec Merge "Allow app pairs in folders" into main 2024-04-04 17:55:34 +00:00
Jagrut Desai e0330e17e3 Merge "Folder Title Change Listener" into main 2024-04-03 23:50:44 +00:00
Jeremy Sim a596f589c4 Allow app pairs in folders
This CL substantially refactors folders to be able to take contents of type AppPairInfo. App pairs can now be moved in and out of folders, and launch from folders.

This CL contains only logic and model changes; animation and style changes (for dropping items into folders, color changes to app pair surfaces, etc.) will be in a following CL. Another CL (hopefully) will contain tests. I'm planning to submit them together, but this patch should also be able to stand alone with no issues (except janky transitions).

Bug: 315731527
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Manual, more to follow in another CL.
Change-Id: I73732fcaefbdc61bf6e02a5be365962b8bbc3e41
2024-04-03 16:47:42 -07:00
Jagrut Desai 06a05c3806 Folder Title Change Listener
Bug: 305877212
Test: Manual
Flag: NONE
Change-Id: I10c7e0827a05010720daeb9da7a0be854ee06112
2024-04-03 10:42:15 -07:00
Jeremy Sim 742630c2f8 Reparent folders and app pairs
Previously, app pairs and folders shared a common data model, FolderInfo. Now we need to separate them, so a new type, CollectionInfo, will serve as the parent of both types.

Bug: 315731527
Fixes: 326664798
Flag: ACONFIG com.android.wm.shell.enable_app_pairs TRUNKFOOD
Test: Manual, unit tests to follow
Change-Id: Ia8c429cf6e6a376f2554ae1866549ef0bcab2a22
2024-03-29 15:39:28 -07:00
Federico Baron f6fd1f3d46 Merge "Fix bug where folder with 1 icon can exist" into main 2024-03-14 20:02:04 +00:00
fbaron 5645c3ec55 Fix bug where folder with 1 icon can exist
Fix: 329357132
Flag: NONE
Test: TaplDragTest
Change-Id: If381ff56e051c89e9f6162f8a44f8df9e2ae5060
2024-03-14 10:13:00 -07:00
Federico Baron e81e048183 Merge "Fix folder name touch target size" into main 2024-03-08 17:30:21 +00:00
fbaron 0b2253b532 Fix folder name touch target size
With this update, the touch target height for the folder name is now to match the footer height

Flag: NONE
Test: Verified on device with talkback turned on
Fix: 318463992
Change-Id: I77f07280eb54b442efadf7e7373952ea160fc5d2
2024-03-07 09:39:51 -08:00
Sunny Goyal 72a74669e7 Adding support for async view inflation
Bug: 318539160
Test: atest AsyncBindingTest; atest ItemInflaterTest
Flag: aconfig enable_workspace_inflation DEVELOPMENT
Change-Id: I77a373db7a5805f68f4b8cbfa9b586b5674252de
2024-02-22 10:58:48 -08:00
Sebastian Franco 01a134349f Removing the Hotseat from the dragNdrop accessibility targets if the dragObject is a widget
Fix: 319036474
Test: manual
Flag: NA
Change-Id: I7404c02f8ef3c0eee41694729b4d174bcea7c7d4
2024-02-09 10:40:15 -08:00
fbaron 1f265cc907 Fix indexoutofbounds in Folder
Flag: NONE
Test: n/a
Fix: 322875847
Change-Id: I14f6ebe135014c806aee310e5919a72a6e8820f7
2024-02-01 13:09:55 -08:00
Andy Wickham b922dccbf5 Cleanup API checks for P, Q, and R.
Test: Build with gradle
Flag: NA
Change-Id: I3ef17090741d14bebd76cf09cf3dc5ac4f11e686
2024-01-24 14:58:08 -08:00
Thales Lima df643c4540 Merge changes from topic "numFolderRows" into main
* changes:
  Update dump tests
  Make numFolderRows/Columns accept more values
2023-12-11 10:54:04 +00:00
Thales Lima 1faa4edc42 Make numFolderRows/Columns accept more values
InvariantDeviceProfile hold values that are not related to current DP in use. Now other classes get the value correctly from DeviceProfile, and each posture can hold different values, making it akin to iconSize.

Fix: 309800141
Test: DeviceProfileResponsiveDumpTest
Test: DeviceProfileResponsiveAlternativeDisplaysDumpTest
Test: DeviceProfileDumpTest
Test: DeviceProfileAlternativeDisplaysDumpTest
Flag: ACONFIG com.android.launcher3.enable_responsive_workspace TEAMFOOD
Change-Id: I32295738585de67205dcd6c8942d08a3d07d169a
2023-12-08 22:00:48 +00:00
Saumya Prakash 86285d477d Ensure Taskbar stashes when launching an app from folder
We use the folder closing callback to trigger a call to stash the
taskbar if an app was launched. We can check whether an app was launched
from a folder based on whether a folder's view is open when
an app is launched. This ensures that the taskbar only stashes after the
folder is done animating.

Flag: NA
Fix: 295296529
Test: Launched an app in a folder on taskbar. Also ensured that other
taskbar behavior remains unchanged.

Change-Id: Ib5a797186978ee960e44b6b62c833eead03bccd0
2023-12-08 20:16:15 +00:00
Thales Lima 09d42d5340 Revert "Make numFolderRows/numFolderColumns accept more values"
Revert submission 25438456-5x5_folder
Reason for revert: http://b/313567919
Reverted changes: /q/submissionid:25438456-5x5_folder

Revert "Use DeviceProfile numFolderRows and numFolderColumns"
Revert submission 25313018-numFolder
Reason for revert: http://b/313567919
Reverted changes: /q/submissionid:25313018-numFolder

Change-Id: I4890016e310c0a2122861f36fcdbf33e98e727c0
2023-11-30 11:47:37 +00:00
Thales Lima 07c6b8d96d Use DeviceProfile numFolderRows and numFolderColumns
Invariant hold values that are not related to current DP in use. This is a change needed for IDP to hold more values in the future akin to iconSize.

Bug: 309800141
Change-Id: Iefb388a5f6590d7da3452d2c388c02bd5e9d32bb
Flag: N/A
Test: NexusLauncherTests
2023-11-21 11:47:21 +00:00