Commit Graph
23694 Commits
Author SHA1 Message Date
TMCandClaude Fable 5.2 8aba905d9c Thumb-friendly drawer: compact list, Niagara-style alphabet, dark backdrop; QR code on About
Requests from the owner on 12 November 2026, after using 0.3.1 on the Pixel 9a, with a
photo of Niagara Launcher's alphabet as the reference.

Drawer list
- Rows are 50dp with 34dp icons and 15sp names (were 64dp, 46dp, 17sp); letter headers are
  34dp. A row grows with a large system font so a notification preview still fits.

Alphabet
- Letters sit 20dp apart at most (was 30dp). The strip keeps a stretch of edge as tall as
  26 letters, low on the edge with its end 40dp above the navigation bar, and centres the
  letters that exist in it. It used to spread over the whole edge, which put "A" out of a
  thumb's reach.
- The wave follows Niagara's: letters keep their size, the wave is wide (104dp) so about
  five letters on each side of the finger curve around the thumb, and the selected letter
  is shown large in a light bubble just beyond the wave's peak. This replaces the enlarged
  letter on a dark spot from 0.3.1, which collided with its neighbours at this spacing.
- The list dims a little during any scrub, more where the wave lies over it.

Backdrop
- The drawer's scrim is black at 78% in every theme (AllAppsState). Lawnchair's grey at 40%
  left a light grey behind white names over a light wallpaper. LawnchairScrimView judges the
  status bar icons by the scrim's own colour again, since that colour is now always dark.

Scrub from the home screen (PRD AD-10)
- On by default, the owner's decision; this closes the PRD's open question.
- It opens the drawer in 120 ms instead of the state manager's 600 ms, like swipe up and hold.
- A touch that lifts within 200 ms was a flick and opens the plain list.

Fix: undoing a scrub that was not meant
- 0.3.1 put the list back to "where it was", read from the list's rows. A closed drawer has
  been told to return to the top but lays its rows out only when it opens, so the rows
  still reported the place the drawer was last left at, and a quick swipe reopened it
  there. The list now goes where a plainly opened drawer stands.

About
- A QR code for the release page, generated on the phone with ZXing core (new dependency),
  black on white in every theme, with the address under it.

Checked on the Android 17 emulator with timed touches, a thumb-sized shape over the
screenshots, a 1.6 font scale, and by decoding the QR code from a screenshot.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 09:00:22 +01:00
TMCandClaude Fable 5.2 4771d2928a Start the alphabet scrub the moment a hold is noticed; keep the selected letter clear of the thumb
Two reports from first use on the Pixel 9a (PRD AD-5, AD-6, AD-17).

Swipe up and hold was slow to hand over to the alphabet:
- After the hold was noticed, the drawer was sent to its open state through the state
  manager, which takes 600 ms, and the alphabet took the finger only after that, and then
  only on the next touch movement. A finger held perfectly still never started it.
- Now the alphabet takes the finger's position in the same call that notices the hold, and
  the drawer finishes opening under it by playing the swipe's own animation to its end in
  120 ms.
- A still finger counts as holding after 150 ms instead of 300 (MotionPauseDetector gains
  setForcePauseTimeout, reset by clear()), and the swipe has to travel 32dp instead of 72dp
  before a hold counts.
- Because the list now jumps at once, a finger that lifts within 200 ms of the hold being
  noticed is treated as an ordinary swipe that slowed down at its end: the scrub is undone
  and the list stays where it was.

The selected letter sat under the thumb:
- The wave's peak was 52dp beyond the finger, about 8 mm, and a thumb hides about 11 mm to
  each side of where it touches. It is now 104dp, and at least 96dp out from the edge.
- The peak may travel to within 36dp of the far edge (was 70% of the width), so the gap
  holds when the finger is in the middle of the screen.
- A taller wave is wider (a third of its reach), so the neighbouring letters bend around
  the thumb instead of vanishing under it.
- A soft dark spot behind the selected letter keeps it readable where it lands on an app
  name or a light wallpaper.

Checked on the Android 17 emulator with touches injected at millisecond timing (a monkey
script) and a thumb-sized shape drawn over the screenshots.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-12 08:02:20 +01:00
TMCandClaude Fable 5.2 c9744a1994 Add scrub from home, fix the work profile layout, and let swipe up and hold work with three buttons
Scrub from home (PRD AD-10)
- New setting, off by default: a vertical slide along the alphabet's edge of the home
  screen opens the drawer and scrubs it in the same touch (FlexeraEdgeScrubController).
  It claims a touch only once it has clearly moved up or down, and never during an item
  drag. Nothing is drawn on the home screen.

Work profile (PRD AD-14)
- The Personal and Work tabs and the work info card were one icon wide, because their
  width came from grid maths that assumes several columns. In the one-column list they
  now line up with the search bar.
- The info card's own scroller section no longer shows up as a letter in the alphabet.

Navigation modes (PRD SI-2, AD-17)
- With three-button navigation, the controller that carries swipe up and hold stood aside
  completely, so a hold did nothing there. It now takes the ordinary swipe up from the
  home screen in that mode too.

Wave alphabet
- The list darkens under the wave where the letters cross icons and names: always from
  the left edge, and from the right edge in proportion to how far the wave reaches in.

Release script
- -BuildOnly builds and checks the APK without publishing, so a version can be tried
  first and then published with -SkipBuild.

Checked on the Android 17 emulator (debug build): work tabs at full width, scrub from the
home screen's edge, the search field keeping its background while typing. The
three-button change and the right-edge darkening were written after that build and are
not yet checked.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 23:10:16 +01:00
TMCandClaude Fable 5.2 9f66d06f4d Add the wave alphabet, swipe up and hold, and the transparent fading drawer
PRD M3 (AD-4 to AD-6, AD-17), plus three look changes the owner asked for.

Wave alphabet
- WaveAlphabetView (flexera/src): a strip of letters on the drawer's end edge showing only
  letters that have apps. Touching it jumps the list to that letter with a haptic tick; the
  letters near the finger bulge away from the edge and reach further the further in the
  finger moves; the selected letter is enlarged.
- The strip reserves the edge from the system back gesture and tells the drawer not to
  drag closed under a scrub.
- Launcher3's scroll bar is hidden by default and no longer takes touches while hidden.

Swipe up and hold
- NoButtonNavbarToOverviewTouchController reuses its motion-pause detector on an ordinary
  swipe up from the home screen: a pause finishes opening the drawer and hands the same
  touch to the alphabet. Swipes that start on the navigation bar keep their stock meaning.

Look
- The drawer fades in over the home screen instead of sliding up from the bottom.
- No background panel or drag handle (drawer opacity default 0); the wallpaper keeps
  Lawnchair's blur and scrim.
- App names, letter headers and alphabet letters are white with a soft shadow.

Tested on the Android 17 emulator: quick swipe opens the drawer, edge scrub jumps the
list, swipe up and hold opens the drawer and scrubs from mid-screen, Back closes it.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 22:12:40 +01:00
caizhixingandcaizhixing f4b71266fa fix: crash when starting home with fade-out remote transition on Android 14+ (#7528)
Co-authored-by: caizhixing <caizhixing@users.noreply.github.com>
2026-11-11 18:38:26 +08:00
Pun Butrach 849fec9ef6 feat: QoL improvement to suspend application usage (#7338)
* fix: Tint suspend icon

* feat: Check if icon is suspendable

* fix: Resolve app name correctly

* fix: Improve permission detection

* chore: Please the spotless lord

* fix: Apply suggestions

* chore: Apply suggestions

* chore: Apply suggestions
2026-11-01 15:08:31 +07:00
Pun Butrach 7436e7408d refactor: Pass swipe down gesture notifications panel to native touch controller (#7448)
* refactor: Pass swipe down gesture over to native touch controller

* chore: Spotlessified

* fix: Apply reviewer
2026-10-27 22:34:29 +07:00
Pun Butrach 9f1ed85224 fix: Adapt BaseDepthControllerImpl and folder spring animation properties 2026-10-26 00:49:09 +07:00
Charlie Anderson e9c655dbf6 Add functionality to DepthController to control wallpaper zoom indepedently of blur
Also add wallpaper zoom to folder motion

Bug: b/387543793
Flag: com.android.launcher3.enable_expressive_folder_expansion
Test: manually and DepthControllerTest
Change-Id: I94142806ffb6dfb93d363017ef4d13b3a5e74681
2026-10-26 00:08:46 +07:00
Pun Butrach d2d1775131 fix(QuickSwitch): Transition behaviour compat for 16.0 (#7282) 2026-09-13 20:04:50 +07:00
Pun Butrach e62fec7471 fix: Compensate text style for predicted app icon (#7250) 2026-09-06 13:32:36 +00:00
Pun Butrach 3ad4ea1206 revert: feat: Add Quickstep Protolog for Baklava
This reverts commit 5f65f736dc.
2026-08-31 01:45:25 +00:00
Pun Butrach 5f65f736dc feat: Add Quickstep Protolog for Baklava (#7217) 2026-08-30 21:39:51 +07:00
Pun Butrach 2f3891c0a4 fix: Prediction settings intent open from Lawnchair instead (#7187) 2026-08-20 14:49:54 +00:00
Pun Butrach a98747abd5 fix: Disable managed/private space user on affected 37.2 Beta 3 (#7172) 2026-08-18 12:51:44 +00:00
Pun Butrach 95adc9ebbf fix: Crash on Android O, O_MR1, Q (#7131) 2026-08-10 22:11:24 +07:00
8a3a05ea6a feat: Reimplement support for non-root app predictions (#6745)
This commit reimplements support for app predictions without root.

---------

Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
Co-authored-by: TheSuperDragon <70206496+SuperDragonXD@users.noreply.github.com>
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-08-09 21:31:22 +08:00
John Andrew Camu 99a4e77713 feat: implementation scroll dock page (#7120)
- Closes: #3491
2026-08-08 18:04:55 +08:00
Pavel VolkovandCursor 26606067e1 fix: Clear stuck workspace icon blur on home (#7032)
* fix: Clear stuck workspace icon blur on home

Drop leftover All Apps RenderEffect from workspace/hotseat when settled on NORMAL, including after resume and skipped depth animations.

Co-authored-by: Cursor <cursoragent@cursor.com>

* refactor: Simplify workspace RenderEffect clear path

Use clearWorkspaceRenderEffects when shouldBlurWorkspace is false instead of a null-effect loop.

Co-authored-by: Cursor <cursoragent@cursor.com>

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-08-05 14:29:59 +08:00
Pun Butrach 2de2036f4d fix: Avoid calling file related to Protolog under S (#7090)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-08-01 16:28:19 +07:00
Matt Van Horn e7cfc41580 fix: prevent clock widgets crashing on Android 14 (#7075) 2026-07-29 01:12:10 +07:00
Pun Butrach d400b6f129 fix: Protolog init crash on Q and R (below Release 41) (#7071)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-07-27 11:58:03 +00:00
Pavel VolkovandCursor c32af3c8c5 fix: Clear stuck workspace blur after drawer/folder close (#6998)
Depth blur could leave RenderEffect on workspace/hotseat when SurfaceControl apply returned early, then setDepth(0) skipped re-apply. Always sync view blur with depth and force re-apply when settling to NORMAL; also clear leftover effects on folder dismiss.

blurWorkspaceDepthTargets can run on API 30; setRenderEffect and
createBlurEffect require API 31 and would throw on R.

---------

Co-authored-by: Cursor <cursoragent@cursor.com>
2026-07-14 09:26:23 +08:00
John Andrew Camu 6741c3416d feat: Add option to have two-row dock (#6979)
- Closes: #3216
2026-07-11 16:58:57 +08:00
John Andrew Camu 0677ba2420 fix: crashes on android 8 (#6978) 2026-07-11 14:26:02 +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
MrSluffy 5ed5758ead fix: address crashes on A10
- Closes: #6945
2026-07-04 09:49:27 +08:00
266c07c808 feat: Improve Lawnchair grid specifications (#6583)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Co-authored-by: TheSuperDragon <70206496+superdragonxd@users.noreply.github.com>
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-06-28 08:37:50 +00:00
Pun Butrach 7678c9b922 fix: Don't run onBackInvoked() on less than Android 14
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-06-20 17:11:23 +07: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
John Andrew Camu fd1197efdb fix: restore workspace alpha on cancelled swipe-to-home reveal (#6793) 2026-06-15 15:56:15 +08:00
John Andrew Camu 1ab5594f5b fix(bug): Restore back navigation on Android 13 and below (#6791) 2026-05-24 16:17:11 +08:00
John Andrew Camuandcoderabbitai[bot] 6492e5a5f7 fix(bug): address issue crashes when adding widget in 13 below (#6790)
* fix(bug): address issue crashes when adding widget in 13 below

- Closes: #6781

* 📝 Add docstrings to `fix/adding-widget-13-below`

Docstrings generation was requested by @MrSluffy.

The following files were modified:

* `quickstep/src/com/android/launcher3/uioverrides/QuickstepLauncher.java`
* `quickstep/src/com/android/quickstep/util/AsyncClockEventDelegate.java`

---------

Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
2026-05-24 16:16:15 +08:00
Pun Butrach 08e7f6ef44 fix: Hide destructive popup from locked home screen (#6774)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-05-20 15:32:38 +00:00
Pun Butrach 34e0497d14 fix: Support Android 17 QPR1 Beta 3 (#6773)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-05-20 09:30:15 +00:00
Pun Butrach 0bd70f3bd0 fix: Link app drawer background opacity to correct colors (#6636)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-05-10 20:05:50 +08:00
Pun Butrach 762583c3e4 feat(QuickSwitch): Initial Android 15 QPR2 (#6624) 2026-04-12 11:23:01 +00:00
Pun Butrach 78dc821b52 feat: Link materialColorSurfaceDim to SurfaceDimColor
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-26 21:46:56 +07:00
Pun Butrach 2bc605058a fix(QuickSwitch): NSME on InsetsState
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-25 01:43:11 +07:00
Pun Butrach 8a6eb2a4ff feat(QuickSwitch): Initial work
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-25 01:17:47 +07:00
Pun Butrach 02b46fdb16 fix(QuickSwitch): Remove DesktopExperienceFlags
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-25 01:17:47 +07:00
Pun Butrach 3b38dd5c1f fix: Move A11_R41 workaround earlier to QuickstepLauncher
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-22 16:11:06 +07:00
Pun Butrach 617bd2212f fix: Crash in Android 8
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-06 21:34:33 +07:00
Pun Butrach eb93520e03 fix: Widget configuration activity fail to open due to BAL hardening
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-02-28 18:42:19 +07:00
Pun Butrach d10bf536d7 fix: Skip initialising QuickstepProtoLog for Android 11
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-02-07 19:52:38 +07:00
Pun Butrach 1d7c6e98d6 feat: Reimplement app drawer suggested app toggle
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-02-04 00:42:30 +07:00
Pun Butrach d18d2c41b2 fix: Disable all Android desktop features
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-02-04 00:15:53 +07:00
Pun Butrach 7a660928c8 fix: Reimplement Pull to trigger notifications
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-13 20:27:54 +07:00
Pun Butrach 160d2d2d61 fix: Get display context from private reference instead for Android 12.0 and above
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-12 21:22:42 +07:00
Pun Butrach 270030e5b1 fix(post-clean): Cleanup mixed branch status
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 22:36:39 +07:00