1006 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 1e49441967 Add self-update from a public release repository
The app is distributed privately, outside any store. Every version is published as a
release with the APK attached in https://git.mariosem.es/msemes/Flexera-Launcher-Releases,
and installed copies update themselves from there.

Versioning
- flexera/version.properties holds the version name (now 0.1.0); build.gradle derives the
  version code from it. This replaces Lawnchair's 16_00_02_01_00 / "16.Dev.(hash)".
- Debug builds always use the debug key, so the release key signs releases only.

Updater (app.flexera.update.FlexeraUpdater)
- Asks the release repository for the latest release at most once a day, when the home
  screen or settings come to the front, and on demand from Settings > About > Updates.
- Downloads the APK into the cache, checks that it is a newer build of this app, and
  hands it to Android's installer. Android enforces the signature.
- Posts a notification when an automatic check finds a newer version.
- Off in debug builds, whose app ID differs from the released one.

Network policy (reverses PRD SI-5, at the owner's request for in-app updates)
- The INTERNET permission is back, plus REQUEST_INSTALL_PACKAGES.
- The update check is the only network use. Lawnchair's online features stay off through
  FlexeraNetwork.onlineFeaturesAllowed: web suggestions, the announcement feed, and the
  crash-report upload button.
- The About screen's privacy text says what the app now does online.

Releasing
- flexera/release.ps1 raises the version, builds the signed APK, checks its signature,
  creates the release and uploads the APK.

Also carries the strings for the next commit (alphabet side and drawer settings).

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 22:44:42 +01:00
TMCandClaude Fable 5.2 25df1a89e6 Remove the INTERNET permission and guard the network call sites
PRD SI-5: nothing leaves the device.

- flexera/AndroidManifest.xml removes android.permission.INTERNET; it is attached to the
  debug and release build types so it outranks flavor and library manifests
- FlexeraNetwork (new, flexera/src): isAvailable() plus a crash guard, because OkHttp
  rethrows Android's SecurityException on its dispatcher thread and that killed the launcher
- Drawer search skips web suggestions when the permission is missing
- LawnchairApp installs the guard; the bug reporter ignores the same exception

Tested on the Android 17 emulator: typing in the drawer search and opening the About
screen no longer crash; the guard logged and absorbed six refused requests.

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 20:48:43 +01:00
TMCandClaude Fable 5.2 feb18adacc Rebrand Lawnchair fork as Flexera Launcher
- App ID com.sema.flexeralauncher (debug builds add .debug)
- App name Flexera Launcher and an adaptive icon built from the artwork in flexera/branding
- New overlay folder flexera/res, wired into the lawnWithQuickstepGithub source set,
  so branding and defaults override Lawnchair's without editing its files
- Defaults switched off: At a Glance, Lawnchair's announcement feed, nightly updater
- English strings that named Lawnchair now say Flexera Launcher

Co-Authored-By: Claude Fable 5.2 <noreply@anthropic.com>
2026-11-11 20:31:34 +01:00
Pun Butrach f8164291da chore: Prepare for eventual release (#7262) 2026-09-15 17:41:55 +07:00
Pun Butrach 202682ffde build: Compile against 37.2 (#7251) 2026-09-06 13:55:21 +00: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
Pun Butrach 6670756dba build: Compile against 37.1 (#7081)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-07-28 18:11:48 +00:00
Pun Butrach ff9ee84f43 feat: Night Lawnchair for Nightly (#6972)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-07-09 23:56:43 +07:00
Pun Butrachandcoderabbitai[bot] 6efdeffe42 ci: Disallow publishing off non-release branch (#6879)
Co-authored-by: coderabbitai[bot] <136622811+coderabbitai[bot]@users.noreply.github.com>
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-06-23 21:32:18 +07:00
Pun ButrachandZongle Wang 4606c1c890 perf: Aggressive proguard configuration (#6787)
Co-authored-by: Zongle Wang <wangzongler@gmail.com>
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-06-03 19:35:39 +07:00
renovate[bot]andGoooler b6fc8dc636 Fully migrate to AGP 9 (#6277)
* chore(deps): update agp to v9

* fix(deps): update dagger to v2.59

* Remove default flags

* Disable android.newDsl

* Update androidx-baselineprofile version to 1.5.0-alpha06

* Migrate applicationVariants blocks

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: Goooler <wangzongler@gmail.com>
2026-05-25 10:26:27 +00:00
Pun Butrach 6f8cc02968 feat: Target SDK 37 (#6760)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-05-19 06:56:08 +07:00
Pun Butrach 0d14c8eadd build: Android Studio LeakCanary integrations (#6753)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-05-16 08:24:45 +00:00
Pun Butrach 3a6e43a744 fix: Show preview on certain image type at correct orientation
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-04-03 17:36:10 +07:00
Pun Butrach babe53bf2d build: Ignore AOSP code in compatlib
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-03-25 01:19:44 +07:00
renovate[bot]andSuperDragonXD 4754e8903e fix(deps): update dependency io.nlopez.compose.rules:ktlint to v0.5.6 (#6293)
* fix(deps): update dependency io.nlopez.compose.rules:ktlint to v0.5.6

* fix: Suppress `State<T>` parameter check

---------

Co-authored-by: renovate[bot] <29139614+renovate[bot]@users.noreply.github.com>
Co-authored-by: SuperDragonXD <70206496+SuperDragonXD@users.noreply.github.com>
2026-02-21 11:55:41 +00:00
Pun Butrach 4753081469 build: Make baselineprofile compile all variants into one
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-02-08 03:50:54 +07:00
Goooler e4483eb3fe Track Ktlint updates 2026-02-02 10:56:58 +08:00
Goooler ff88c755c2 Revert "Fix duplicate class kotlinx.android.parcel.* found"
This reverts commit 199ee3a77e.
2026-02-02 10:36:24 +08:00
Goooler 97f69b58db Remove unnecessary removal for protobuf configuration 2026-02-02 10:10:52 +08:00
Pun Butrach ca0fe79dfd build: Avoid srcDirs deprecations
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-02-02 00:48:27 +07:00
Pun Butrach d38af14038 chore: Collapse Release 1 to .1 format as per discussion on Discord
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-28 01:23:10 +07:00
Pun Butrach 1d964a2e06 chore: Reminder to collapse versioning scheme
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-23 19:25:30 +07:00
Pun Butrach d9429e5b2b build: Ready for BD5.2001
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-20 23:30:56 +07:00
Pun Butrach 8c489023f6 build: Add Kotlin to source
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-17 20:04:14 +07:00
Pun Butrach d038b9d8bd build: Use built in Kotlin dependency
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-16 18:18:23 +07:00
Pun Butrach 9fc31ea8ce build: Migrate build to DSL-ready (1/2)
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-13 19:11:37 +07:00
Pun Butrach ec7802ddd1 fix merge from 16-dev to qpr1 problem 2026-01-10 20:51:19 +07:00
Pun Butrach 436b59f0d4 Milestone D3R3, continue to D4R1 2026-01-10 20:51:17 +07: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 9898749619 chore: Cleanup 2026-01-10 20:50:54 +07:00
Pun Butrach a9fc32fd9b build: Initial upgrade to AGP 9.0.0-beta04 2026-01-10 20:50:49 +07:00
Pun Butrach 16ae722d79 build: Remove outdated todos 2026-01-10 20:50:43 +07:00
Pun Butrach 9ce473f615 refactor: Replace Solar Hijri library with native Android format 2026-01-10 20:50:42 +07:00
Pun Butrach 2d1b8dfae3 chore: Update all dependencies 2026-01-10 20:50:38 +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 837d8ab791 chore: Update dependencies 2026-01-10 20:49:40 +07:00
Pun Butrach 2e76c99dad fix: Conflict incoming changes from 15-dev 2026-01-10 20:49:12 +07:00
Pun Butrach e5ed73f42f Copybara! Merge 16-dev from forgejo instance into 16-dev github 2026-01-10 20:48:53 +07:00
Pun Butrach 847702f26a fix: Correct build config implementation of WM-Shell
This also temporarily disable building the release variant of Lawnchair due to conflicting issues with prebuilt WM-Shell and local WM-Shell
2026-01-10 20:48:51 +07:00
Pun Butrach ca51c94a17 build: Adapt LC15 upstream change to Bubble Tea
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:45 +07:00
Pun Butrach 3b9f9da575 fix: Lawnchair release mode compilation
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:43 +07:00
Pun Butrach d5c883e0c6 feat: Update Google Fonts listing to 25102025
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:41 +07:00
Pun Butrach 2cfd40de75 build: Bump upgradable dependencies to 17102025
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:39 +07:00
Pun Butrach 24cc9a2e31 build: Make QuickSwitch field final and hardcode the maximum value to 100000 directly
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:39 +07:00
Pun Butrach 63db7f3218 revert: Don't update dependency to avoid cache invalidation and dagger (in)invalidation for now
Signed-off-by: Pun Butrach <pun.butrach@gmail.com>
2026-01-10 20:48:37 +07:00