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>
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>
* 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.
* 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>
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.
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
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
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
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
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
Essentially reverting original change with the current test passing now.
bug: 401529887
Test: atest BubbleTextView
Flag: EXEMPT bug fix
Change-Id: Id12672cbdf66960915c4dcf75329f0c5df21ce4c
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
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
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