Commit Graph
1243 Commits
Author SHA1 Message Date
TMCandClaude Opus 5.5 f5d7cf07ed Line up every widget with the icons, as the Pictures widget does
Widgets of other apps used to fill their cells minus Launcher3's widget
padding, which is a few pixels wider than the icons' edges and reaches down
into the room kept for icon labels; on the owner's phone they hung about
13 px past the icons sideways and 40 px below. Now the room a widget keeps in
its cells is the distance from the cell edges to the icon edges, worked out
as IconFrame does for the launcher's own widgets, so every widget's edges
meet the edges of the icons around it.

The one function (FlexeraWidgets.appWidgetPadding) is used for the layout,
for the size the app is told, for the drop animation and through
WidgetSizes for previews. The cells a widget needs are still worked out
with Launcher3's padding, so no widget changes its cell count. A new switch
under Settings, Home screen, Widgets ("Line up with icons", on by default)
turns it off; Lawnchair's Widget padding slider shows only then.

Checked on the emulator against lines drawn at the icon edges: Google
Calendar's widgets meet them within 2 px; Google Clock's sits about 20 px
inside, because it draws an empty margin of its own.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
2026-11-13 12:19:33 +01:00
TMCandClaude Fable 5.2 fba65e091f Add quick launch: a swipe past the first or last home page opens a chosen app
Swiping on from the first home screen page, towards the page that is not
there, now does what the owner chose under Settings, Gestures, Quick launch:
open an app, or any other of the launcher's gesture actions. The last page has
a choice of its own.

The stretch the pages already show at either end is an edge effect; quick
launch replaces it with one that also counts how far the finger has pulled.
Lifting the finger after a pull of about a seventh of the screen, or after a
flick, does the action; a short pull or one that is taken back does nothing.
An app opens out of the screen edge the finger pulled from.

From Android 12, where the stretch is Android's own. Infinite scrolling takes
those swipes for itself, so the two do not combine.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 14:36:03 +01:00
caizhixingandcaizhixing c1d296813e fix: NPE in Workspace.onDropExternal when the dropped view fails to attach to the workspace (#7524)
Co-authored-by: caizhixing <caizhixing@users.noreply.github.com>
2026-11-11 14:58:30 +08:00
B Vishal ChandrakanthandCopilot ce82ac1248 feat: add tilt to swipe pages for home screen rearrangement and fix app drawer gap (#7500)
* feat and fix : Add Tilt to swipe pages setting

Replace the multi-level Motion controls with a single Home screen toggle named “Tilt to swipe pages,” positioned below Infinite scrolling. Update the description to explain that tilting the phone moves between pages while rearranging apps or widgets, and make the pan controller use the toggle directly while retaining the existing preference key for compatibility. Fix for "[BUG] Large empty gap between app drawer search bar and app grid when app suggestions are disabled
 #7490"

* EDITS : Coderabbit suggested edits for PR #7500

* Coderabbit suggested changes (2) #7500

* Update gradle-daemon-jvm.properties

* Remove unrelated Gradle toolchain changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add docstrings for pan-to-move and all apps header changes

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>

* Add a tilt sensitivity control

---------

Co-authored-by: Copilot <223556219+Copilot@users.noreply.github.com>
2026-11-09 20:59:50 +08:00
caizhixingandcaizhixing 0614d0b48a fix : NPE in Workspace.onDrop when the dropped cell is detached from the workspace (#7457)
Co-authored-by: caizhixing <17589399+caizhixing03@user.noreply.gitee.com>
2026-11-09 16:58:58 +07:00
Charlie Anderson c754a217b9 Fix folder view sticking during close anim when transitioning launcher page and/or state
Bug: 470662985
Test: manual
Flag: EXEMPT BUGFIX
Change-Id: I7a4841ad49cbc0339f6905869a1bb092e7f0c094
2026-10-26 00:12:20 +07:00
x-JOCandClaude Opus 5.5 6c2c2c22ef fix(workspace): rework infinite scrolling without wrap state (#7413)
Infinite scrolling kept a wrap state (target page, saved scroll bounds,
a cached feed flag) that every path out of a swipe had to tear down.
Paths that missed it caused the bugs: a short or backward swipe on the
last page wrapped anyway, the first page flashed when a layout pass
reset the bounds mid-wrap, touching during a wrap jumped to the target,
two-panel layouts got stuck between pages, and the page indicator lost
its active dot.

The wrap now follows from the scroll position alone: on an end that
wraps, the scroll may run one screen further, and the screen from the
other end is translated into that gap. Workspace decides which ends
wrap; other paged views behave as in AOSP.

Co-authored-by: Claude Opus 5.5 <noreply@anthropic.com>
2026-10-21 19:41:57 +08:00
Pun Butrach 6d084bfa43 feat: Reimplement placing widget on hotseat (#7272) 2026-09-10 10:41:05 +00:00
wellorbetter c92a59b0ae fix: infinite scroll wrap animation direction (#6653)
This commit fixes the infinite scroll wrap animation so it scrolls one page in the correct swipe direction instead of animating through all intermediate pages.
2026-08-27 11:05:19 +00:00
Pun Butrach a9d0bac2b5 feat: Richer haptic feedback (#7121)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-08-08 22:30:20 +07:00
John Andrew Camu 99a4e77713 feat: implementation scroll dock page (#7120)
- Closes: #3491
2026-08-08 18:04:55 +08: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
John Andrew Camu 8f09ab7e78 feat(workspace): edit-mode page reorder, default home, and page strip (#6809)
* feat: initial implementation reorder of workspace

* fix(edit-mode): page strip 48dp touch target and label refresh on reorder
2026-05-29 11:23:54 +08:00
Pun Butrach c7eb6d6a09 feat: Reimpl icon gesture
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-22 18:51:52 +07:00
Paul 0f0a75726d feat(workspace): Add "Set as default page" option (#6395)
Allow users to designate any workspace page as the default home page
via long-press popup menu. Pressing HOME navigates to the chosen page
instead of always page 0. Resets to page 0 if the default page is deleted.
2026-02-22 17:37:13 +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 92a0965d4f fix: Allow disabling the smartspace feature 2026-01-10 20:50:43 +07:00
Pun Butrach 0e8b200bab fix: Just make submodule stay the same please intellj 2026-01-10 20:50:12 +07:00
Pun Butrach 1bed5c06c6 fix: Allow disabling the smartspace feature 2026-01-10 20:50:10 +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 549597ca66 chore: Logging cleanup
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:44 +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 7a5699e721 fix: A lot of stuff 2026-01-10 20:48:21 +07:00
Pun Butrach 0a446431eb build: SNAPSHOT 0 (Draft) 2026-01-10 20:47:59 +07:00
Pun Butrach 87301f3724 chore: Mark TwoPanel status with tracking number
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:47:47 +07:00
Pun Butrach b42904a5d3 Play vibration if MSDL is enabled for locked workspace
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:46:49 +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
Sebastian Franco cc18ee380e Do not modify the original item info when adding a new item in Worksapce
Fix: 418114270
Test: NA
Flag: EXEMPT bug fix
(cherry picked from https://googleplex-android-review.googlesource.com/q/commit:dbd6f0d18f69d5d33862aaad015c4c8c5907fb46)
Merged-In: Ic0dd00da4f363868a1c2abeeb736b86f6f706631
Change-Id: Ic0dd00da4f363868a1c2abeeb736b86f6f706631
2025-06-25 21:04:11 -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
Sebastián Franco e1d31e5406 Revert "Revert "Moving DeviceProfile properties into DevicePrope..."
Revert submission 33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Reason for revert: Error is fixed

Reverted changes: /q/submissionid:33716851-revert-33672643-DataDeviceProfile1-XHYRAPLEBK

Change-Id: Ib86824134955903c11e51e52dbfd6368aba1cd50
2025-05-23 14:08:11 -07:00
Priyanka Advani (xWF) 7705e92d93 Revert "Moving DeviceProfile properties into DeviceProperties da..."
Revert submission 33672643-DataDeviceProfile1

Reason for revert: Droidmonitor created revert due to b/419867875. Will be verifying through ABTD before submission.

Fix: 419867875

Reverted changes: /q/submissionid:33672643-DataDeviceProfile1

Change-Id: Icb66aefbbcee24e05806b2139923e1f2ea1c65e3
2025-05-23 13:53:04 -07:00
Sebastian Franco e1111e28c2 Moving DeviceProfile properties into DeviceProperties data class
Bug: 419264653
Flag: EXEMPT refactor
Test: DeviceProfileDumpTest
Test: All Image tests
Change-Id: I638f88cd76b926917965dbf9e70b5bdfff5971e0
2025-05-23 10:42:26 -07:00
SuperDragonXD 9f874617ef Move icon swipe gestures to experimental features
Fixes #5297
Closes #5451
2025-05-12 16:08:23 +08:00
Sunny Goyal 7a332e02aa Removing Smartspace as a widget flag
Bug: 300140279
Flag: EXEMPT removing dead code
Test: Presubmit
Change-Id: If24db0b4c2c119f5cbe1153e3d77599d12ff80a6
2025-05-01 16:00:04 -07:00
Sebastián Franco d23b8fc142 Merge "Always change the container when dropping in icon" into main 2025-04-29 09:51:09 -07:00
Sebastian Franco fea773a5c2 Always change the container when dropping in icon
I was being cautios on my previous fix for this same
isse, cautios because I'm modifying an object by reference
That's why I was only updating the container when the icon being
dropped was PendingAddShortcutInfo but we can change the container
on every icon (we don't need to in the Widget case which is the
other if statement), we can be sure it is a safe operation because
we later update the info anyway rendering the previous info invalid.

Fix: 413784315
Test: WIP
Flag: EXEMPT bug fix
Change-Id: I60ecdb52be1c7bf0584cb1c74ee15b85961e5012
2025-04-28 11:57:17 -07:00
Sunny Goyal 07cfe33533 Renaming CONTAINER_PREDICTION to CONTAINER_ALL_APPS_PREDICTION
This avoids confusion with CONTAINER_HOTSEAT_PREDICTION

Bug: 390572144
Flag: EXEMPT refactor
Test: Presubmit
Change-Id: I0e110e2884dd0566bd2e621e60e7458605b9bad7
2025-04-28 09:30:12 -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
Sunny Goyal 613db2b609 Removing flag enable_smartspace_removal_toggle
Test: Presubmit
Flag: EXEMPT cleanup
Bug: 303471576
Change-Id: Iae8cc3afbf15c66612589fd1e19377e4339af7fc
2025-04-16 10:54:45 -07:00
Sebastian Franco 04b0a4a0d8 Use correct container for predictive icons
Fix: 408280336
Test: Manual Testing
Flag: EXEMPT Bug Fix
Change-Id: I20432ee13247bd4dbd089fc936476333900150e6
2025-04-11 14:51:29 -07: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
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
Treehugger Robot 57cab7794a Merge "Simplifying some view iteration methods" into main 2025-03-04 18:42:06 -08:00