Commit Graph
450 Commits
Author SHA1 Message Date
TMCandClaude Fable 5.2 d0d1c031d0 Add a row size setting and give the screen edge back to Android's Back swipe
Row size (Settings, App drawer, Style): Compact is the list as it was, Comfy
has taller rows, larger icons and slightly larger names and letter headers.

In the open drawer the alphabet no longer reserves the screen edge. Its letters
rest 30dp from the edge, clear of the strip where Android starts Back. A touch
that starts on that strip becomes a scrub once it moves up or down or rests for
a moment; a sideways swipe is left to Android and goes back. The band that
starts a scrub from the home screen is narrower than the one in the drawer.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 12:09:11 +01:00
TMCandClaude Fable 5.2 4e48615b5a Show an app's latest notification under its name in the drawer list
PRD AD-11, the last buildable row of M4.

- FlexeraNotificationPreview keeps the text of the notifications that currently show a
  dot, fed by Launcher3's NotificationListener on its worker thread, and sets a second,
  smaller and dimmer line on a drawer row whenever the row's dot state is applied.
- It uses what the dots already use: the same notification access and the same filter
  for which notifications count. Without notification access nothing changes.
- PopupDataProvider now refreshes an app's icons on every posted notification, so a
  notification updated in place brings its new text to the row.
- Only rows of the drawer list take the second line (marked with a view tag); search
  result icons share the "all apps" display type but stay as they were.
- New setting under Settings > App drawer: Notification previews, on by default.

Checked on the Android 17 emulator (debug build): a test SMS showed under Messages,
a second one replaced it while the drawer was open, removing the notification put the
plain name back, and the setting switches the line off and on.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 00:05:08 +01:00
steven c154f993c8 [Fix]: Stop platform from overriding Lawnchair's own dark theme (#7267) 2026-10-30 14:43:23 +00:00
Charlie Anderson ea06691a37 Convert BubbleTextView Alpha to use spring animation
Flag: com.android.launcher3.enable_expressive_folder_expansion
Bug: 387543793
Test: Manually verifying


Change-Id: Ibadedb1fef2542a4b8373ab3a4557c10c8752a77
2026-10-26 00:00:31 +07:00
Pun Butrach eba9492be1 Revert "feat(home): live glass blur behind icons, folders and widgets (#7393)" (#7419)
This reverts commit d9afe890a3.
2026-10-21 22:19:44 +07:00
R05P0 d9afe890a3 feat(home): live glass blur behind icons, folders and widgets (#7393)
* feat(home): live glass blur behind icons, folders and widgets

Add an optional "Glass blur" setting that blurs the wallpaper behind home
screen icons, folder icons, open folders and widgets, like CSS
backdrop-filter. SurfaceFlinger renders the blur through blur regions
(a copy of the framework BackgroundBlurDrawable), so it stays live and
follows the items during page scrolls and animations.

SurfaceFlinger ignores all the blur of an app layer once there are more
than 10 blur requests on screen (kMaxBlurRequests, b/399120953), unless
the layer was created by a privileged process. With root, the regions go
to an effect layer created by the root helper and placed below the
launcher window content. Without root, they go to the window layer and
are subject to that limit.

Also fix RootHelperManager, unused until now: it reported root as not
available until a root shell had been created, and bound the root
service off the main thread.

* fix(home): redraw when a glass blur region is removed

Without a frame the pre-draw listener never sends the regions left, so a
removed blur, the last one in particular, could stay on screen until the
next redraw.
2026-10-21 19:34:15 +08:00
Pun Butrach eed2baf4ef fix: Show themed icon and notification dot for prediction row (#7177) 2026-08-18 16:03:09 +00:00
TheSuperDragon e01c47efcf feat: Animate icon swipe gestures (#6964)
This commit improves the feedback of the icon swipe gestures by providing visual animations on swipe, similar to Lawnchair Legacy.
2026-07-06 19:26:51 +00:00
Pun Butrach 1e240d94e4 feat: Vertical icon swipe gesture (#6958)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-07-05 12:25:18 +00:00
Pun Butrach 83658ce7eb perf: Cache PreferenceManager2 in memory (#6897)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-06-19 18:21:55 +00:00
Pun Butrach 8e75b4bd73 feat: Promote icon swipe gesture to stable (#6821)
* fix: Reimplement and only handle touch target on configured app

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>

* feat: Promote to stable

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>

* fix: Prevent app icons from conflicting with edit mode state

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>

* fix: Address reviewer

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>

* refactor: Make icon swipe settings enable by mandatory default

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>

---------

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-06-09 12:26:14 +07:00
MrSluffy 64e20c90cc fix: clear pressed icon state on focus/launch
Add handling to fully clear press visuals when focus returns or a launch transition ends. BubbleTextView now overrides onWindowFocusChanged to call a new clearPressedIconState() method, which clears framework pressed/stay-pressed state and resets the icon tap scale. Launcher was updated to call the new method reference instead of only clearing stay-pressed, ensuring icons match neighbors and covering ordering gaps when resume callbacks run before window focus is restored.
2026-04-03 09:32:56 +08:00
MrSluffy 657f388368 fix: reset icon scale and press state in BubbleTextView
Clear touch/pressed background and reset icon scale when recycling BubbleTextView instances to prevent inconsistent icon sizes (e.g. in All Apps) — references issue #6575. Replace setScaleY(1) with setReorderBounceScale(1f) to restore the bounce scale, and call FastBitmapDrawable.resetScale() when assigning an icon so drawable-specific scale is cleared before setting bounds.

- Closes: #6575
2026-04-03 00:26:05 +08:00
Pun Butrach 9b90822395 fix: Disable material expressive folder expansion animations 2026-01-10 20:51:07 +07:00
Abhishek Sharma 5f3a03f4fb feat: Add option to clear home screen in settings (#6125)
Signed-off-by: abhixv <abhi.sharma1@hotmail.com>
2026-01-10 20:51:01 +07:00
Pun Butrach 0e8b200bab fix: Just make submodule stay the same please intellj 2026-01-10 20:50:12 +07:00
Pun Butrach edfd0baad6 fix: Android 14/15 crash 2026-01-10 20:49:55 +07:00
Pun Butrach d36845897b feat: Better At-a-Glance perceptive wallpaper colour luminance detection 2026-01-10 20:49:46 +07:00
Pun Butrach 2e76c99dad fix: Conflict incoming changes from 15-dev 2026-01-10 20:49:12 +07:00
Pun Butrach 11f7abcb66 chore: Cleanup, and hidden feature logged
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:25 +07:00
Pun Butrach 0a446431eb build: SNAPSHOT 0 (Draft) 2026-01-10 20:47:59 +07:00
Pun Butrach 3affe5afba chore: Ready notification dot lawnchair variant in BTV
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:47:47 +07:00
Pun Butrach 78043cfc48 fix: Icon not responding to mouse cursor
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:47:47 +07:00
Pun Butrach b67168f737 Allocate insane memory just for CI
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:46:44 +07:00
Pun Butrach dd4a08be61 Merge tag 'android-16.0.0_r3' into 16-dev
Android 16.0.0 Release 3 (BP3A.250905.014)

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:46:04 +07:00
Pun Butrach 6b04c12f4b fix: Icon not responding to mouse cursor [Backport 354b64b] (#5895)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2025-10-02 16:32:34 +08:00
Sebastián Franco b11936e0f5 Merge "Moving AllApps device profile variables to their own class" into main 2025-06-02 13:34:10 -07:00
Treehugger Robot 2f9d81a9d7 Merge "Converting FastBitmapDrawable to kotlin" into main 2025-05-30 17:38:05 -07:00
Sebastian Franco 136295f62a Moving AllApps device profile variables to their own class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I6490422d04f9f0aeaadf8271d4d11172f344660a
2025-05-30 09:56:01 -07:00
Sunny Goyal e674891dfa Converting FastBitmapDrawable to kotlin
Will be adding more functionality in followup cl, and this will make it easier

Bug: 421146818
Flag: EXEMPT refactor
Test: atest FastBitmapDrawableTest
Change-Id: I7ce3ca0dc126efe410c8b7ebec6c601666b7cb54
2025-05-30 08:52:52 -07:00
Sebastian Franco 8244449a9f Moving taskbar variables in DeviceProfile to their own class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I05ec9e15ef02096326596af4835adb706473a736
2025-05-29 11:04:06 -07:00
Toni Barzic 83b8cc19ca Support workspace cells with two-line labels
Adds `maxLineCount` attribute to CellSpec. The attribute indicates the max
number of lines of text the cell was speced to support. It's used to:
*   enable two-line labels in `BubbleTextViews` for workspace (including
    folder children) items
*   Update cell dimension calculation to inform cell vertical padding

When calculating cell content size the icon text size will be included
`maxLineCount` times, so the cell content gets centered as if it
contains `maxLineCount` lines of text. That way the icon position will
be consistent between cells with text that fits into one line, and cells
that contain two lines of text.

Adds `maxLineCountMatchesWorkspace` attribute to specify that the cell
should inherit `maxLineCount` from workspace cell spec.

Bug: 30153091
Flag: com.android.launcher3.enable_scalability_for_desktop_experience
Test: Manual

Change-Id: I150a62f427a0ad755a4746a736d9846d3bea4d2e
2025-05-21 22:04:33 +00:00
Brandon Dayauon 424d5686e4 Change PS app behavior when clicking
It should show the shortcuts upon tap and not animate like if you were to longpress to shortcuts on a regular app.

bug: 406724060
Test: manually video: https://drive.google.com/file/d/1ldodFhr00lTJ5583VxMe7PasZ0jre6wd/view?usp=sharing
Flag: android.multiuser.enable_moving_content_into_private_space
Change-Id: I5762689290b4078f9b1b4fdfd09fb2cef482744a
2025-05-09 14:59:45 -07:00
Sunny Goyal 50884dadfe Lazily loading theme icons
Theme icons are generated and stored in cache, but only loaded if requested in lookup flags
This allows to keep the memory usage low, but not loading theme icons for all the apps

Bug: 381897614
Flag: com.android.launcher3.extendible_theme_manager
Test: Updated tests
Change-Id: I494eab9c4f70670e6f5aeb864ed5287f6b9f1b9e
2025-03-31 13:07:03 -07:00
Treehugger Robot b932dea54e Merge "Implement spring animations for running state changes." into main 2025-03-26 21:06:14 -07:00
Brian Isganitis c0a8f7ea99 Implement spring animations for running state changes.
Flag: com.android.window.flags.enable_taskbar_recents_layout_transition
Fix: 402683858
Test: go/testedequals
Change-Id: Icc4a3a61b6c0997564a4dcdd8eb7768459d5f2ef
2025-03-19 14:34:13 -04:00
Brian Isganitis e8b7cd7b2e Use up-to-date hover tooltip text for recents.
Flag: EXEMPT bugfix
Fix: 402776493
Test: go/testedequals
Change-Id: I6f438ce8b3cd51beaece0cf6734876f21719bf3d
2025-03-19 14:26:25 -04:00
Brandon Dayauon 91689e89e7 Merge "Update creationFlag state only on non PSApp" into main 2025-03-11 11:46:42 -07:00
Brandon Dayauon ea388ef77b Update creationFlag state only on non PSApp
Essentially reverting original change with the current test passing now.

bug: 401529887
Test: atest BubbleTextView
Flag: EXEMPT bug fix
Change-Id: Id12672cbdf66960915c4dcf75329f0c5df21ce4c
2025-03-11 16:03:52 +00:00
Brian Isganitis 26f9468db1 Animate changes in Taskbar recents indicators.
Flag: com.android.window.flags.enable_taskbar_recents_layout_transition
Fix: 356394053
Test: go/testedequals
Change-Id: Ic018695254bbfea11469c3579e242089b00b90f5
2025-03-07 15:47:48 -05:00
Brandon Dayauon 16020c58a9 Merge changes from topics "moveContentPrivateSpace", "privateProfileMoveContent" into main
* changes:
  Move privateSpace app location to after the header
  Include multiuser flag to launcher3 dependency
2025-03-06 20:02:49 -08:00
Brandon Dayauon 5a118cb57d Move privateSpace app location to after the header
Updated bubbleTextView that defaults creationFlag to 0 thus applying the
badge on the icon when there shouldn't be a badge. Tested this by
installing the privateSpace.apk and seeing that I've successfully
removed the original install icon.

bug: 360313403
Test: manually - https://hsv.googleplex.com/4736879982280704
Flag: android.multiuser.enable_moving_content_into_private_space
Change-Id: I50a277457c9c3f78214b53e4391535a2c45dca55
2025-03-06 19:20:11 +00:00
Ana Salazar Maldonado 0a128474db Merge "Fix tokens for App Contrast Pill" into main 2025-03-03 10:55:39 -08:00
Ana Salazar Maldonado d4cce41c27 Fix tokens for App Contrast Pill
Bug: 397101795
Test: update screenshots
Flag: com.android.launcher3.enable_contrast_tiles
Change-Id: Iffe86d8b1bdebbf8ddab9dcfd6197ad24edb684f
2025-02-28 11:23:44 -08:00
Jagrut Desai 536097dec2 Update Taskbar Icon content description to include state description
This cl inlcudes: while user is in desktop mode, we will add state description(active, minimized) of each app icon to it's content description.

Test: Manual
Bug: 397555157
Flag: EXEMPT bugfix
Change-Id: Iaec18e7099108e8b076b76c637a41e29ed837265
2025-02-27 09:58:31 -08:00
John Andrew Camu 2623e42dad feat : initial implementation icon gesture support (#5266)
- closes : #2787
- closes : #5259
2025-02-17 11:45:04 +08:00
MrSluffy a0b5a17ca8 fixed : label disappear in workspace
- closes : #5256
2025-02-15 07:33:33 +08:00
Sunny Goyal fe5101d8de Simplifying icon normalization for adaptive icons
Bug: 366237794
Flag: EXEMPT refactor
Test: PResubmit and screenshot tests
Change-Id: Id21e57c9d4ba83983f27aa7988a08db3fd618ce3
2025-02-14 09:09:33 -08:00
MrSluffy 473121ad53 feat : add option toggle label in dock
- closes : #4457
2025-02-14 19:47:15 +08:00
Sunny Goyal 29f9c3d231 Merging IconShape with ThemeManager
The order of initialization for IconShape is closely tied to ThemeManager
which makes it difficult for change listeners to work. Merging these keeps
all the theming information at one place

Bug: 381897614
Test: Updated tests
Flag: EXEMPT refactor
Change-Id: Ie29efa20c3308a24be3e284c1c93ed7444b68d58
2025-02-13 22:38:01 -08:00