Commit Graph

69 Commits

Author SHA1 Message Date
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 c5c0974f0d Fix folder clipping bug
Fix: 341433475
Test: N/A
Flag: NONE bugfix
Change-Id: Id99eca043c4e70127cb93b0abe88aef007afc70d
2024-06-27 13:51:41 -07:00
fbaron 31d5b01ecf Fix folder animation clipping and RTL issue
Fix: 341433475
Test: NONE
Flag: EXEMPT bugfix
Change-Id: I05c1ca65efea2fdcebb6ff9435fda1f4bbafb9f1
2024-06-07 15:09:30 -07:00
Sunny Goyal 638a687fc8 Converting IconShape to mainThreadInitializedObject instead of
keeping it a process static

Bug: 297950111
Flag: None
Test: Presubmit
Change-Id: Id66100e0cb300659c6017c287eb38ab04290477b
2024-04-25 15:56:30 -07: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
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
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
Johannes Gallmann a82eebd286 Extract Launcher resource interpolators to Animation Library
Bug: 292080029
Test: atest InterpolatorResourcesTest
Change-Id: I65dba4eb3f96844d4f9a4d0af608c0bd8e77ccc2
2023-07-22 09:52:53 +02:00
Jordan Silva 637f4eb2f3 Update DeviceProfile to calculate responsive grid for folders
It uses the new responsive folder calculations and specs when responsive grid is enabled. The grid has to have folderSpecsId defined to use the new specifications, otherwise it will use the current scalable grid implementation.

Fix: 284155638
Test: DeviceProfileDumpTest
Test: ResponsiveHomeScreenFolderImageTest
Test: HomeScreenFolderImageTest
Flag: ENABLE_RESPONSIVE_WORKSPACE
Change-Id: I535cff4bb00e969f782447a898230fe2b2c05cc9
2023-06-21 12:18:58 +01:00
Fengjiang Li a72c216829 Clip folder chidren during folder open/close animation
Test: close folder and verify app icons are not clipped
Fix: 283527491
Change-Id: Ia2aed207d07fc210cd04f05fd2e319f393209396
2023-05-23 15:15:31 -07:00
Fengjiang Li c80d0221be Fix bug where quickly ending folder animation with back swipe caused icons not clipped to folder
1. Fix a race condition that the new animation is reading stale UI state which should have been reset in previous animation.
2. Don't set clipChildren=true on folder page view during open folder animation

Fix: 282158620
Test: open folder and quickly back swipe, verify app icons are still clipped
Change-Id: I5f0877fe4157533563df922ba50a6ad540c9ba6e
2023-05-16 10:51:31 -07:00
Federico Baron 22ea023a32 Merge "Fix spring-loaded folder animation offset bug" into tm-qpr-dev 2022-11-16 20:07:09 +00:00
Federico Baron c7e76005e0 Fix spring-loaded folder animation offset bug
The folder close animation is offset due incorrect scaling in SpringLoaded mode. We fix the folder offset by scaling offsetX() and offsetY() by the scale of the workspace in spring loaded mode (scaleRelativeToDragLayer), and the offset of the preview icons is fixed by dividing previewItemOffsetX by initialScale rather than initialScale / scaleRelativeToDragLayer

Fix: 255420905
Test: manual
Change-Id: I305c1047c14c4c9f1b4c3bd0143e9bb764c71524
2022-11-15 12:51:57 -08:00
Thales Lima b35faed6e7 Improve spaces for folders
Bug: 214582832
Test: DeviceProfileTest
Change-Id: I7c5cae0792d51baf111d0aec46be302ac6ca9994
2022-11-07 18:23:48 +00:00
Sebastián Franco 73b8ee9390 Merge "Moving the class LayoutParams to a file outside CellLayout" into tm-qpr-dev 2022-10-14 20:43:34 +00:00
Federico Baron c722e7d814 Fix bug where pagination animation comes in from outside the folder when opening folder after swiping back home from another app (left to right swipe)
Fix: 249814494
Test: Manual
Change-Id: I03008dd24ddb9a0ba4c5a44878cbdf04c65de435
2022-10-12 15:42:34 -07:00
Sebastian Franco d468299c0f Moving the class LayoutParams to a file outside CellLayout
I'm moving the LayoutParams to another file to start the decoupling
of the Reorder outside of the CellLayout.

Also, I change the name from LayoutParams to LauncherLayoutParams to prevent confusion with ViewGroup.LayoutParams making it explicit that this are different LayoutParams.

Bug: 188081026
Test: atest ReorderWidget
Change-Id: I92251c5540ffcf5ece7b933e6f6c836eb825c997
2022-10-12 16:14:42 +00:00
Jon Miranda b77878ebe3 Update folder preview and folder background colors.
Bug: 201332301
Test: light theme / dark theme
      open and close folder, ensure colors are accurate

Change-Id: I49198eb2faee03111be33051fd1cb08094844c77
2021-10-06 16:57:33 -07:00
Thales Lima 78d00adcbe launcher: create more space options
The grid doesn't have a constant space between cells anymore, so we need
new attributes for the different spaces in different situations.

Bug: 191879424
Test: checking cell size and extra space in dumpsys
Change-Id: I4b6aae5b3fea281490c00cd13d0cd3a25372f21b
2021-10-05 12:26:05 +01:00
Jon Miranda fa1e14c4b8 Polish folder icon bugs.
- Fix bug where folders are misaligned.
- Fix bug when closing on 2nd page of large folder.

Bug: 184822585
Test: drag folder originally in hotseat to workspace, vice versa
      test on grid where isScalable=true and isScalable=false

Change-Id: I08a79b8d280df3e3974baaa07e80db6bc4165e58
2021-06-22 11:12:47 -07:00
Jon Miranda 9d41499a33 Fix bug where preview item icon fades/disappears for a frame during
- Remove fade since we no longer clip icons.
- Ensures a clean handoff between drag view and folder icon preview item.

Bug: 175329686
Test: create folder / add items to folder
Change-Id: Iaab592410734b0b5239dbbddbb9b2ed5a9f5d8b0
2021-06-15 21:14:47 +00:00
Jon Miranda 5688010306 Folder polish - update color extraction, fix contrast issues.
- Also fixes open/close animation when items were not getting clipped
  due to folder not being measured yet.

Bug: 190210234
Bug: 190164147
Test: manual
Change-Id: I230c33d7e4e1871d8d702737c56c79ce46504b8f
Merged-In: I230c33d7e4e1871d8d702737c56c79ce46504b8f
2021-06-14 17:54:19 +00:00
Jon Miranda f564b65f2a Folder preview polish.
- Fixes notification dot not aligning in 4x5 grid
- Fixes clipping issues with large folders
- Fixes clipping issues with preview item animations

Bug: 188095988
Test: manual

Change-Id: I6821b3cb3c65e5928c7be1cddd7f292a37842698
2021-06-09 10:04:39 -07:00
Jon Miranda e41dd483e6 New folder icon style (uncropped icons).
- Switch Circle to PathShape as it allows for more flexibility on
  choosing what gets cropped.
- Remove shadows, and stroke.

Bug: 188095988
Test: manual
Change-Id: I602b3efcd35c2c11dc3461f49099c2f2a56eae59
2021-06-04 18:32:10 -07:00
Jon Miranda 7bbd03160f Fix contrast issue with folder background and text colors.
Bug: 187797251
Test: dark wallpaper, light wallpaper, toggle dark theme on both
Change-Id: I57ddfc91878d68735d5ae5ec5ab78222fda101ca
2021-05-11 17:01:53 -07:00
Jon Miranda 0b6fa71deb Add local wallpaper color extraction to folder backgrounds.
- Starts listening to local wallpaper colors as soon as folder
  is positioned.
- The folder open animation already has a background color
  animator.
- For simplicity, folder open animation always starts
  first, and then we cancel its background color animator,
  and start a new animator to the extracted color.
- setAutoCancel would be handy here, but it does not work, will
  track in a separate bug.
- Since folders are reused, we clear our the color extractor on
  folder close.

Bug: 175329686
Test: multiple folders on rainbow background
      open each folder, ensure bg animates to proper color
Change-Id: Ie0f2c0632fa2361f7710ba247d74f882620dec16
2021-05-07 16:16:36 -07:00
Jon Miranda c1e66b523e Fix folder outline not matching the v28 radius.
Bug: 175329686
Test: manual, open folder and verify no visual artifacts
Change-Id: If7cfaf6f95e43ad6f2636b136bc98961554ebf36
2021-03-11 19:05:45 -05:00
Jon Miranda e126d72fa8 More grid changes, closer to final specs.
* Added isScalable, minCellWidth, minCellHeight, and borderSpacing attrs

When isScalable is true, we use set workspace cell values to
minCellWidth/minCellHeight and then scale the cell values to
fit the available space. This allows us to have consistent
aspect ratios when two devices match the display/grid options.

This is different from the dynamic grid, which calculates
cell values based on iconSize/textSize/etc and then allows
the cell width to be as wide as space allows.

I adjusted some variables so that they will auto adjust
based on another value, indepenent from whether the
grid isScalable or not. An example of this is the folder
label text, where it's always set to be 1.14x of whatever
the workspace icon text size is. This is so we don't need
to add a bunch of more variables to DisplayOption/GridOption.

Bug: 175329686
Test: - switching between device profiles,
      - testing folder open/close
      - testing in multiwindow
      - testing in landscape
Change-Id: Ia469ae0d65b518469ef264b726db46f4a3210056
2021-02-25 17:34:56 -05:00
Tony Wickham 1906cc33f9 Refactor Folder to use ActivityContext and BaseDragLayer
These are the more generic versions of Launcher and DragLayer, so
that Folders can be used in other surfaces.

Test: Open and close Folders on home screen, ensure works properly
Bug: 171917176
Change-Id: I39b9aedbd8319ca61ea0e776bc95eab585e023d5
2021-02-16 15:06:50 -08:00
Sunny Goyal 8b37c57804 Fixing widget sheet not scrolled using external mouse
> Fixing crash when some properties are not initialized if draw is not called
> Adding robolectic support for UI testing
> Adding robo tests to verify workspace, all-apps, widgets and folder scrolling

Bug: 147312357
Change-Id: Id7756e07f06396359e441cdff2e4f992bdcb97bb
2020-03-31 12:17:09 -07:00
Lucas Dupin 4918ed38d2 Add wallpaper zoom to areas that have blur
Whenever blurring, the wallpaper should also zoom out. This is the
mental model of our Depth System.

Test: manual
Bug: 149792636
Change-Id: I1783eb87fefeb6f917f0ba64f2c6ec8f1f2004fa
2020-03-18 13:29:58 -07:00
Winson Chung 8687bc2131 Initial changes to support blur
- Add a new controller to update the background blur on either the
  launcher or app surfaces based on state or transition

Bug: 149792636

Change-Id: I6103cd3d53a00c8025558dd49bb73137e2980014
2020-03-06 14:45:20 -08:00
Jon Miranda 4744701f60 Fix folder open/close animation when grid size is small.
The issue was that the scaled folder size was smaller than the clip size.
To ensure that the folder size is always larger than the clip size, we
instead scale the contents of the folder instead of the folder itself.

Bug: 143703075
Change-Id: I6eadcc487148fe7e2b7dd9f0ff94a9205048b992
2019-11-19 14:42:48 -08:00
Sunny Goyal 11a50747ed Refactoring some folder binding logic:
> Moving grid calcutation in a separate class
> Moving content saving logic to folder instead of relying on item bind

Bug: 139051851
Change-Id: I81b226dbebe13652482a767c992e8cc8f4f35a60
2019-08-14 12:03:09 -07:00
Hyunyoung Song d8c71598ee Make folder backgrounds opaque
Bug: 130451254
Change-Id: I3b15d97e44e4ccc2968cfb4402d2479cca958afe
2019-05-15 17:12:39 -07:00
Hyunyoung Song e751d90c44 Implement 3 shades of folder icon/container fill color
Bug: 130451254

Change-Id: I36d885a2b0247f1bb84cb98073459853ae723331
2019-05-14 10:15:11 -07:00
vadimt 1b383af652 Not using magic constants for navbar height
Change-Id: I6783b8a2ebb059ce35748d8c3e818cbe732ff40d
2019-05-08 17:20:34 -07:00
Sunny Goyal 905262c1a7 Adding utility method to get adaptive icon scale
Change-Id: I5ff190c3b794bb13309375782ccd420e85b59091
2019-05-03 21:31:46 -07:00
Sunny Goyal 066ace1b88 Replacing setAlphaComponent with setAlphaComponentBound for better animation interpolation
setAlphaComponent throws expetion for invalid range, which can cause brashes in overshoot
interpolation

Bug: 118390004
Change-Id: Ic9c5ff3d660eba353b982c4c47ccfaf329b3e296
2018-11-06 09:59:03 -08:00
Sunny Goyal d0ae492e9f Changing the FolderIcon shape based on AdpativeIcon
> Creating an abstract interface to represent a folderIcon shape
> Defined few common folder shapes
> Picking the folder shape closest to the AdaptiveIcon shape

Bug: 111433118
Change-Id: Ib35eddbdd6692767aa9dbe6aae1a379a68cc456a
2018-10-17 12:14:41 -07:00
Tony Wickham 6a71a5bd77 Add undo snackbar for deleting items
- Add methods to ModelWriter to prepareForUndoDelete, then
  enqueueDeleteRunnable, followed by commitDelete or abortDelete.
- Add Snackbar floating view
- Show Undo snackbar when dropping or flinging to delete target; if the
  undo action is clicked, we abort the delete, otherwise we commit it.

Bug: 24238108
Change-Id: I9997235e1f8525cbb8b1fa2338099609e7358426
2018-08-30 16:22:25 -07:00
Sunny Goyal d230307a95 Migrating to android-x
Change-Id: I9a774152d13a541e8496dd84f2469bfed407f86d
2018-08-14 15:22:12 -07:00
Sunny Goyal 849c6a2b18 Removing Launcher activity dependency on various animations
(This cl reverts change-Id: I455edcd17bda83ab51c2c04fa40e66097a4d6975)

Various animations were marked for cancellation when launcher activity is
destroyed. This this does not work with multiple activities (Launcher,
fallback recents, shortcut confirmation). Also since launcher activity
handles configuration changes, the activity is not destroyed often.

Instead associating a target with various animations which automatically
cancels the animations when that target goes away.

Change-Id: I64cd095a28075561a9e20c9dcdeb9f90c18e1047
2018-08-10 13:31:46 -07:00
Sunny Goyal ed7a6937cb Unifying and maintaining the text-alpha and text visibility property
Bug: 76228194
Change-Id: I70be5f9fd22c53864a9a0308f256baa7dc1f3ab7
2018-04-17 20:08:10 +00:00
Sunny Goyal aeb1643ec6 Launcher state management cleanup
> Removing Widgets and related states
> Fixing different durations being used when opening/closing all-apps
> Removing some unnecessary object allocations when changing state without animation
> Differentiating widget bootm sheel and full sheet in logs

Bug: 67678570
Change-Id: Ic169528736d04ee0b38564b4f96595ba066eabda
2017-10-17 12:42:08 -07:00
Sunny Goyal add3d8322d Removing some folder customization options
The old folder preview and animation relied on creating bitmaps for transition.
As we move to hardware bitmaps, creating custom bitmaps which rely on icon bitmaps
would be costly (hardware bitmaps are immutable and cannot be drawn on a software canvas).

Bug: 35428783
Change-Id: I39869ed44feb6a886985ad15775bc1ab55565727
2017-09-08 12:07:24 -07:00
Jonathan Miranda 9ad87463a8 Revert "Update Folders to match spec."
This reverts commit fd8fa136f5.

Change-Id: Ifb8ce81e23f38df2eb2c26f93376eca19caae5b1
2017-07-26 11:05:29 -07:00