Repository navigation
Releases: denson9874/ExpressiveLauncher
Release list
Expressive Launcher 5.0.0 — Butter, Brains, and Edge Beats
Welcome to Expressive Launcher 5.0.0 (Build 62)! Our biggest release yet: Cover folders, Smart category tabs, a sturdier At a Glance, snappier settings, and Pro licenses that survive resets.
✨ What's New & Improved
1. 🧈 Butter-Smooth 120Hz Settings & Instant Toggles
-
Zero-Disk-I/O Architecture: Settings scrolling and switches are now completely decoupled from disk bottlenecks. We eliminated synchronous DataStore disk reads (
firstBlocking()) and Room SQLite stalls on the Android UI looper, routing lookups through an instantaneous$O(1)$ in-memory cache. - Instant Switch Feedback: Toggle switches now use optimistic UI dispatch—flipping instantaneously on touch with zero jank, while background disk persistence commits quietly on an asynchronous coroutine.
- Suspended Background Recreation: Toggling settings options no longer forces the background Home workspace to rebuild itself while you're still in the preferences menu.
2. 📁 Cover Folders & Folder Widget Polish
- App-Dominant Cover Mode: Turn any folder into an undercover app. A Cover folder displays the full-size icon of its primary app with an elegant bottom-right badge.
- Single tap: Launches the primary app instantly.
- Swipe up: Triggers a tactile haptic tick (
GESTURE_START) and smoothly expands the folder grid.
- Dynamic Auto-Promotion: Drag an app out or uninstall it? Position 0 dynamically promotes the next app in line to become the cover star without manual reconfiguration.
- Widget Conversion Guard: Converting a Cover folder to a Folder widget safely detaches cover flags, and the deliberate ⋮ menu ensures conversions always require a conscious second tap.
3. 🧠 Smart Drawer Auto-Categorization
- Effortless App Organization: Say goodbye to manual filing. Your app drawer can now automatically organize installed apps into categorized tabs (Social, Media, Games, Work & Productivity, Utilities) driven by Android's native
ApplicationInfo.categorymetadata. - Asynchronous Category Indexing: Category resolution runs entirely on the background
MODEL_EXECUTOR. Opening and flinging through the drawer remains silky smooth at a locked 120Hz. - Profile Parity: Fully supports both Personal and Work profile tabs in your app drawer. Toggle it anytime via Settings → App drawer → Smart categories.
4. 🌤️ Smartspace 2.0 & At a Glance Resilience
- Zero-Blank Warm Start: Smartspace no longer greets you with an awkward empty void while external IPC services boot up. Local date, time, and weather cards render immediately on attach, gracefully transitioning when Smartspacer targets arrive.
- Flow Crash Isolation: Every external data feed (Bluetooth telemetry, Battery, Torch, Media) is individually isolated with defensive exception barriers. If an accessory provider hiccups, your weather and calendar remain rock solid.
- Connected Bluetooth Battery Telemetry: Live battery percentage indicators for connected Bluetooth headsets and audio devices, automatically surfacing battery alerts when power dips below 20%.
- Active Card Retention: Navigating multi-card glanceables now binds dynamically to unique target IDs rather than volatile numeric indices, preventing cards from jumping unexpectedly during background refreshes.
5. 🔑 Pro Licenses That Survive Resets
- Moves after a reset: A device-bound Pro key used to stop working after a factory reset, reinstall or cleared data. Now the launcher asks the activation service to move it to your device automatically (up to 3 new devices every 30 days).
- Restore by receipt: Lost your key? Enter the Transaction ID from your PayPal receipt and the license is re-issued for this device.
- Stable Device ID: Reinstalling or clearing app data keeps the same Device ID, so your key just keeps working.
- Still offline-first: Keys are checked on your device. You only need a connection when a license moves to a new device.
😄 Launcher Humor
⚡ Our settings switches no longer stop to think things over. Tap, flip, done.
📁 Cover Folders: Because sometimes you want your folder to dress up as Spotify in front of its friends, until you swipe it up and reveal the secret folder society inside.
🌐 Our new Cloudflare worker lives on the edge, runs in milliseconds, and never sleeps. Just remember to give it a little Wi-Fi handshake during activation—it's serverless, not psychic!
💬 Community Notes
- After a factory reset: Paste your Pro key (or your PayPal Transaction ID) while online, and the license moves to your reset device.
- Bluetooth Permissions: Showing accessory battery levels on Android 12+ requires standard Nearby Devices permission (
BLUETOOTH_CONNECT). Expressive Launcher never collects or transmits telemetry off your device. - Feedback & Bug Triage: Thank you to everyone in @ExpressiveLauncherFeedback for reporting switch delays and Smartspace blanking during beta testing!
🧩 Release Riddle
I look like a single app on your screen, but a gentle flick upward reveals an entire team. Tap me once and my leader charges ahead; swipe me up and my hidden squad spreads instead. What am I?
Tap to reveal answer
A Cover Folder! Tap launches app #1, swipe-up reveals the whole folder crew. 🎩📱
🛡️ Verification & Technical Details
- Version:
5.0.0(Build62), Stable channel · Packagedev.launcher.expressive.l3 - Validated by Jenkins: 550 Android unit tests, 339 CI contract tests and 33 activation-worker tests passed; an isolated Android 17 QPR2 emulator (API 37.2) installed 4.1.2, upgraded in place to this exact APK with settings retained, and passed launch, drawer, search, At a Glance and clean-log checks. Emulator only, not a physical device.
- Source revision:
999c803100db313d93de35c6b7e839b894fd9346 - APK SHA-256:
639acdde5fea558d47790f01380f207caa9ec0809d557dd0392845eb5f27df49 - Release certificate SHA-256:
C1:41:60:30:6D:5C:05:9B:3D:11:9F:15:FB:74:E0:8C:57:CC:27:23:16:E8:0B:36:E1:92:C7:1D:C9:E4:D0:D2 - Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
🔗 Links & Downloads:
- 1-Click Add to Obtainium: Add to Obtainium
- GitHub Repository: https://github.com/denson9874/ExpressiveLauncher
- Community & Feedback: @ExpressiveLauncherFeedback
- Announcements Channel: @ExpressiveLauncher
Expressive Launcher 5.0.0 Core QA — Butter, Brains, and Edge Beats
Expressive Core is the same launcher without the accessibility service and notification listener, so Play Protect's enhanced fraud protection lets it install from a browser. Core leaves out features that need those services (notification dots, accessibility gestures, At a Glance Now Playing).
Welcome to Expressive Launcher 5.0.0 (Build 62)! Our biggest release yet: Cover folders, Smart category tabs, a sturdier At a Glance, snappier settings, and Pro licenses that survive resets.
✨ What's New & Improved
1. 🧈 Butter-Smooth 120Hz Settings & Instant Toggles
-
Zero-Disk-I/O Architecture: Settings scrolling and switches are now completely decoupled from disk bottlenecks. We eliminated synchronous DataStore disk reads (
firstBlocking()) and Room SQLite stalls on the Android UI looper, routing lookups through an instantaneous$O(1)$ in-memory cache. - Instant Switch Feedback: Toggle switches now use optimistic UI dispatch—flipping instantaneously on touch with zero jank, while background disk persistence commits quietly on an asynchronous coroutine.
- Suspended Background Recreation: Toggling settings options no longer forces the background Home workspace to rebuild itself while you're still in the preferences menu.
2. 📁 Cover Folders & Folder Widget Polish
- App-Dominant Cover Mode: Turn any folder into an undercover app. A Cover folder displays the full-size icon of its primary app with an elegant bottom-right badge.
- Single tap: Launches the primary app instantly.
- Swipe up: Triggers a tactile haptic tick (
GESTURE_START) and smoothly expands the folder grid.
- Dynamic Auto-Promotion: Drag an app out or uninstall it? Position 0 dynamically promotes the next app in line to become the cover star without manual reconfiguration.
- Widget Conversion Guard: Converting a Cover folder to a Folder widget safely detaches cover flags, and the deliberate ⋮ menu ensures conversions always require a conscious second tap.
3. 🧠 Smart Drawer Auto-Categorization
- Effortless App Organization: Say goodbye to manual filing. Your app drawer can now automatically organize installed apps into categorized tabs (Social, Media, Games, Work & Productivity, Utilities) driven by Android's native
ApplicationInfo.categorymetadata. - Asynchronous Category Indexing: Category resolution runs entirely on the background
MODEL_EXECUTOR. Opening and flinging through the drawer remains silky smooth at a locked 120Hz. - Profile Parity: Fully supports both Personal and Work profile tabs in your app drawer. Toggle it anytime via Settings → App drawer → Smart categories.
4. 🌤️ Smartspace 2.0 & At a Glance Resilience
- Zero-Blank Warm Start: Smartspace no longer greets you with an awkward empty void while external IPC services boot up. Local date, time, and weather cards render immediately on attach, gracefully transitioning when Smartspacer targets arrive.
- Flow Crash Isolation: Every external data feed (Bluetooth telemetry, Battery, Torch, Media) is individually isolated with defensive exception barriers. If an accessory provider hiccups, your weather and calendar remain rock solid.
- Connected Bluetooth Battery Telemetry: Live battery percentage indicators for connected Bluetooth headsets and audio devices, automatically surfacing battery alerts when power dips below 20%.
- Active Card Retention: Navigating multi-card glanceables now binds dynamically to unique target IDs rather than volatile numeric indices, preventing cards from jumping unexpectedly during background refreshes.
5. 🔑 Pro Licenses That Survive Resets
- Moves after a reset: A device-bound Pro key used to stop working after a factory reset, reinstall or cleared data. Now the launcher asks the activation service to move it to your device automatically (up to 3 new devices every 30 days).
- Restore by receipt: Lost your key? Enter the Transaction ID from your PayPal receipt and the license is re-issued for this device.
- Stable Device ID: Reinstalling or clearing app data keeps the same Device ID, so your key just keeps working.
- Still offline-first: Keys are checked on your device. You only need a connection when a license moves to a new device.
😄 Launcher Humor
⚡ Our settings switches no longer stop to think things over. Tap, flip, done.
📁 Cover Folders: Because sometimes you want your folder to dress up as Spotify in front of its friends, until you swipe it up and reveal the secret folder society inside.
🌐 Our new Cloudflare worker lives on the edge, runs in milliseconds, and never sleeps. Just remember to give it a little Wi-Fi handshake during activation—it's serverless, not psychic!
💬 Community Notes
- After a factory reset: Paste your Pro key (or your PayPal Transaction ID) while online, and the license moves to your reset device.
- Bluetooth Permissions: Showing accessory battery levels on Android 12+ requires standard Nearby Devices permission (
BLUETOOTH_CONNECT). Expressive Launcher never collects or transmits telemetry off your device. - Feedback & Bug Triage: Thank you to everyone in @ExpressiveLauncherFeedback for reporting switch delays and Smartspace blanking during beta testing!
🧩 Release Riddle
I look like a single app on your screen, but a gentle flick upward reveals an entire team. Tap me once and my leader charges ahead; swipe me up and my hidden squad spreads instead. What am I?
Tap to reveal answer
A Cover Folder! Tap launches app #1, swipe-up reveals the whole folder crew. 🎩📱
🛡️ Verification & Technical Details
- Version:
5.0.0(Build62), Core QA channel · Packagedev.launcher.expressive.l3 - Validated by Jenkins: 550 Android unit tests, 339 CI contract tests and 33 activation-worker tests passed; an isolated Android 17 QPR2 emulator (API 37.2) installed 4.1.2, upgraded in place to this exact APK with settings retained, and passed launch, drawer, search, At a Glance and clean-log checks. Emulator only, not a physical device.
- Source revision:
e98e7ed97526fd2e971580744a2dcf04204dac2f - APK SHA-256:
cfa7353f82f7c7fcbf5c62d73f78991a8eab97a3435c243a4c5d119754f65fe0 - Release certificate SHA-256:
C1:41:60:30:6D:5C:05:9B:3D:11:9F:15:FB:74:E0:8C:57:CC:27:23:16:E8:0B:36:E1:92:C7:1D:C9:E4:D0:D2 - Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
🔗 Links & Downloads:
- 1-Click Add to Obtainium: Add to Obtainium
- GitHub Repository: https://github.com/denson9874/ExpressiveLauncher
- Community & Feedback: @ExpressiveLauncherFeedback
- Announcements Channel: @ExpressiveLauncher
Expressive Launcher 5.0.0 QA — Butter, Brains, and Edge Beats
Welcome to Expressive Launcher 5.0.0 (Build 62)! Our biggest release yet: Cover folders, Smart category tabs, a sturdier At a Glance, snappier settings, and Pro licenses that survive resets.
✨ What's New & Improved
1. 🧈 Butter-Smooth 120Hz Settings & Instant Toggles
-
Zero-Disk-I/O Architecture: Settings scrolling and switches are now completely decoupled from disk bottlenecks. We eliminated synchronous DataStore disk reads (
firstBlocking()) and Room SQLite stalls on the Android UI looper, routing lookups through an instantaneous$O(1)$ in-memory cache. - Instant Switch Feedback: Toggle switches now use optimistic UI dispatch—flipping instantaneously on touch with zero jank, while background disk persistence commits quietly on an asynchronous coroutine.
- Suspended Background Recreation: Toggling settings options no longer forces the background Home workspace to rebuild itself while you're still in the preferences menu.
2. 📁 Cover Folders & Folder Widget Polish
- App-Dominant Cover Mode: Turn any folder into an undercover app. A Cover folder displays the full-size icon of its primary app with an elegant bottom-right badge.
- Single tap: Launches the primary app instantly.
- Swipe up: Triggers a tactile haptic tick (
GESTURE_START) and smoothly expands the folder grid.
- Dynamic Auto-Promotion: Drag an app out or uninstall it? Position 0 dynamically promotes the next app in line to become the cover star without manual reconfiguration.
- Widget Conversion Guard: Converting a Cover folder to a Folder widget safely detaches cover flags, and the deliberate ⋮ menu ensures conversions always require a conscious second tap.
3. 🧠 Smart Drawer Auto-Categorization
- Effortless App Organization: Say goodbye to manual filing. Your app drawer can now automatically organize installed apps into categorized tabs (Social, Media, Games, Work & Productivity, Utilities) driven by Android's native
ApplicationInfo.categorymetadata. - Asynchronous Category Indexing: Category resolution runs entirely on the background
MODEL_EXECUTOR. Opening and flinging through the drawer remains silky smooth at a locked 120Hz. - Profile Parity: Fully supports both Personal and Work profile tabs in your app drawer. Toggle it anytime via Settings → App drawer → Smart categories.
4. 🌤️ Smartspace 2.0 & At a Glance Resilience
- Zero-Blank Warm Start: Smartspace no longer greets you with an awkward empty void while external IPC services boot up. Local date, time, and weather cards render immediately on attach, gracefully transitioning when Smartspacer targets arrive.
- Flow Crash Isolation: Every external data feed (Bluetooth telemetry, Battery, Torch, Media) is individually isolated with defensive exception barriers. If an accessory provider hiccups, your weather and calendar remain rock solid.
- Connected Bluetooth Battery Telemetry: Live battery percentage indicators for connected Bluetooth headsets and audio devices, automatically surfacing battery alerts when power dips below 20%.
- Active Card Retention: Navigating multi-card glanceables now binds dynamically to unique target IDs rather than volatile numeric indices, preventing cards from jumping unexpectedly during background refreshes.
5. 🔑 Pro Licenses That Survive Resets
- Moves after a reset: A device-bound Pro key used to stop working after a factory reset, reinstall or cleared data. Now the launcher asks the activation service to move it to your device automatically (up to 3 new devices every 30 days).
- Restore by receipt: Lost your key? Enter the Transaction ID from your PayPal receipt and the license is re-issued for this device.
- Stable Device ID: Reinstalling or clearing app data keeps the same Device ID, so your key just keeps working.
- Still offline-first: Keys are checked on your device. You only need a connection when a license moves to a new device.
😄 Launcher Humor
⚡ Our settings switches no longer stop to think things over. Tap, flip, done.
📁 Cover Folders: Because sometimes you want your folder to dress up as Spotify in front of its friends, until you swipe it up and reveal the secret folder society inside.
🌐 Our new Cloudflare worker lives on the edge, runs in milliseconds, and never sleeps. Just remember to give it a little Wi-Fi handshake during activation—it's serverless, not psychic!
💬 Community Notes
- After a factory reset: Paste your Pro key (or your PayPal Transaction ID) while online, and the license moves to your reset device.
- Bluetooth Permissions: Showing accessory battery levels on Android 12+ requires standard Nearby Devices permission (
BLUETOOTH_CONNECT). Expressive Launcher never collects or transmits telemetry off your device. - Feedback & Bug Triage: Thank you to everyone in @ExpressiveLauncherFeedback for reporting switch delays and Smartspace blanking during beta testing!
🧩 Release Riddle
I look like a single app on your screen, but a gentle flick upward reveals an entire team. Tap me once and my leader charges ahead; swipe me up and my hidden squad spreads instead. What am I?
Tap to reveal answer
A Cover Folder! Tap launches app #1, swipe-up reveals the whole folder crew. 🎩📱
🛡️ Verification & Technical Details
- Version:
5.0.0(Build62), QA channel · Packagedev.launcher.expressive.l3 - Validated by Jenkins: 550 Android unit tests, 339 CI contract tests and 33 activation-worker tests passed; an isolated Android 17 QPR2 emulator (API 37.2) installed 4.1.2, upgraded in place to this exact APK with settings retained, and passed launch, drawer, search, At a Glance and clean-log checks. Emulator only, not a physical device.
- Source revision:
e98e7ed97526fd2e971580744a2dcf04204dac2f - APK SHA-256:
a9cc9e7d621096d3d61895df19d396f19fc72f9bae89bf53227692807653ff32 - Release certificate SHA-256:
C1:41:60:30:6D:5C:05:9B:3D:11:9F:15:FB:74:E0:8C:57:CC:27:23:16:E8:0B:36:E1:92:C7:1D:C9:E4:D0:D2 - Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
🔗 Links & Downloads:
- 1-Click Add to Obtainium: Add to Obtainium
- GitHub Repository: https://github.com/denson9874/ExpressiveLauncher
- Community & Feedback: @ExpressiveLauncherFeedback
- Announcements Channel: @ExpressiveLauncher
Expressive Launcher 4.1.2 QA — Sizing Up the Core
Two major milestones in this release: introducing Expressive Core for frictionless browser installs on Android 15/16/17, and stabilizing app drawer icon sizing when exiting search. Thank you to our community contributors for reporting edge cases and testing!
✨ What's New & Improved
-
Expressive Core Edition (XDA-021):
- New lightweight build without Accessibility or Notification Listener services, specifically avoiding Google Play Protect's "Enhanced Fraud Protection" warning when sideloading from browsers.
- Built with the identical package name (
dev.launcher.expressive.l3) and signing certificate, ensuring seamless upgrades between Full and Core builds. - Core provides standard home launcher features with device-admin or root screen lock fallbacks.
-
Stable Drawer Icon Sizing on Search Exit (TG-011):
- Fixed an issue where app drawer icons remained enlarged after backing out of drawer search and only reverted to proper proportions upon closing and reopening the drawer.
- In
BubbleTextView,applyFromWorkspaceItem()now synchronizes icon dimensions with the activeAllAppsProfileacross drawer displays (prediction rows and search shortcuts). - In
ActivityAllAppsContainerView, completing search dismissal explicitly notifies active drawer adapters to refresh visible views against active device profile dimensions.
-
Dual-Variant QA Automation & CI Pipeline (XDA-021):
- Jenkins pipeline now automatically compiles, verifies, seals, and distributes Expressive Core (
-PexpressiveCore=true) alongside Full QA builds. - Manifest scanner strictly validates that Core APKs contain no flagged permissions, and smoke tests verify upgrade compatibility between Full and Core releases.
- Jenkins pipeline now automatically compiles, verifies, seals, and distributes Expressive Core (
🔍 App icons were getting camera-shy in drawer search—blowing up big when exiting, then shrinking back down on reopening. They're now properly proportioned at all times!
🛡️ Expressive Core skips the heavy listeners so Play Protect waves it right through with a red carpet.
💬 Community Notes
- App Drawer Search Sizing: Special thanks to Pratik for flagging the icon sizing discrepancy when navigating between search and the drawer!
- Play Protect Warnings: Thanks to our XDA community members for reporting sideload blocks under enhanced fraud protection rules!
- Developer Support: Expressive Pro is available as a one-time $4.99 activation. Every dollar directly funds our ongoing tooling and infrastructure expenses—including automated CI/CD servers, dedicated Android 17 testing devices/emulators, signing pipelines, and active continuous development—keeping Expressive fast, independent, and completely ad-free.
🧩 Release Riddle
I carry the heart of the launcher with pride, yet leave the heavy listeners outside. Play Protect smiles and lets me slide right in. What edition am I?
Click to reveal the answer
Expressive Core! 🛡️⚡
🛡️ Verification & Technical Details
- Launcher Version:
4.1.2(Build61) - Package ID:
dev.launcher.expressive.l3 - Release Certificate SHA-256:
C1:41:60:30:6D:5C:05:9B:3D:11:9F:15:FB:74:E0:8C:57:CC:27:23:16:E8:0B:36:E1:92:C7:1D:C9:E4:D0:D2 - Validated: 328 CI contract tests and full app unit suite passing; drawer icon sizing and upgrade flow validated on Android 17 QPR2 Beta 5 emulator.
🔗 Links & Downloads:
- 1-Click Add to Obtainium: Add to Obtainium
- GitHub Repository: https://github.com/denson9874/ExpressiveLauncher
- Community & Feedback: @ExpressiveLauncherFeedback
Source revision: 7972412d986042482c06d2bd70bae4ffe7a2e10e
APK SHA-256: 510bd9b1c75da92ffd5ef153c8f66e67f6b7ddc1b3586c4615e8f999977eb9e4
Release-signed, minified QA package. Automated tests and isolated Android upgrade checks passed for the exact attached APK.
Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
Expressive Launcher 4.1.1 QA (60)
Expressive Launcher 4.1.1 QA
Source revision: b49e918ffa5ad4cfa709a86583211419bbc2d0db
APK SHA-256: 50e7ac56adfc6fb4768244e8c32f61770fed0613dbca5a8938f624f7f49ea83d
Release-signed, minified QA package. Automated tests and isolated Android upgrade checks passed for the exact attached APK.
Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
Expressive Launcher 4.1.0 QA — Now You See It, Now You Don't
Three improvements straight from community feedback in our Telegram group. Thank you for the detailed list!
✨ What's New & Improved
-
One-tap Hide in the app drawer:
- Long-press any app in the app drawer (or its suggestions row) and choose Hide. It disappears from the drawer immediately.
- Changed your mind? Tap Undo on the bar that appears at the bottom of the screen.
- Before, hiding took three taps through Customize. Hide only appears for apps opened from the drawer, and never while the Home screen is locked.
-
No more accidental folder-to-widget conversions:
- Inside an open Home folder, the button next to the folder name is now a ⋮ menu. Make widget (or Make normal folder for a Folder widget) lives inside it, so converting always takes a deliberate second tap.
-
Transparent search bar while scrolling (new option):
- New switch in Settings → App list → Transparent search bar while scrolling.
- When it's on, the area behind the app drawer search bar stays see-through as you scroll, instead of filling in with a solid band. The search field keeps its own background so it stays easy to read. Off by default.
😄 Your apps can now play hide-and-seek. Unlike real hide-and-seek, there's an Undo button for when nobody can find them.
📁 Folders were getting promoted to widgets without asking. They now need a ⋮ second opinion.
💬 Community Notes
- Folder icon size: we couldn't reproduce folder icons ignoring the icon-size setting on the default grid (folder icons scaled with Home at 1.4×). If you still see it, please share your device, grid and whether the folder is on Home or in the app drawer in @ExpressiveLauncherFeedback.
- Free trial for Pro: great suggestion. We're designing a time-limited trial for an upcoming 4.1.x release.
🧩 Release Riddle
I vanish with one tap and return with another; I'm in your drawer, then I'm not, but never truly gone. What am I?
Click to reveal the answer
A hidden app — one tap on Hide, one tap on Undo! 🙈
🛡️ Verification & Technical Details
- Launcher Version:
4.1.0(Build59) - Package ID:
dev.launcher.expressive.l3 - Release Certificate SHA-256:
C1:41:60:30:6D:5C:05:9B:3D:11:9F:15:FB:74:E0:8C:57:CC:27:23:16:E8:0B:36:E1:92:C7:1D:C9:E4:D0:D2 - Validated: 518 unit tests and 300 CI contract tests passing; Hide/Undo, the folder ⋮ menu (both directions) and the transparent search bar checked on an Android 17 QPR2 Beta 5 emulator.
🔗 Links & Downloads:
- 1-Click Add to Obtainium: Add to Obtainium
- GitHub Repository: https://github.com/denson9874/ExpressiveLauncher
- Community & Feedback: @ExpressiveLauncherFeedback
Source revision: f8280f89b36077905252485a45120b900e014e4c
APK SHA-256: 4b6129a748bf0fd23bc67173ef6f391bd4324e91081d7def3b59ef93e6d891fe
Release-signed, minified QA package. Automated tests and isolated Android upgrade checks passed for the exact attached APK.
Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
Expressive Launcher 4.0.9 QA (58)
Expressive Launcher 4.0.9 QA
Source revision: 18a00ad611c786d1feab156c46ddf0f26ff88fed
APK SHA-256: d88e718c0de2905144d0a13072a4cd0ac0dbd8ab559b3ad75331a77c124e419d
Release-signed, minified QA package. Automated tests and isolated Android upgrade checks passed for the exact attached APK.
Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
Expressive Launcher 4.0.8 QA (57)
Expressive Launcher 4.0.8 QA
Source revision: 5c820fd3e05300988844ebfbecac48c6d315a75e
APK SHA-256: 324033f5c44f4c9bf5bb947c96ffb4d3becee65b58ff075db23927a549b479b5
Release-signed, minified QA package. Automated tests and isolated Android upgrade checks passed for the exact attached APK.
Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
Expressive Launcher 4.0.7 QA (56)
Expressive Launcher 4.0.7 QA
Source revision: 3d21f495aadda4fbc9e3b2147d615bf45d80b2c0
APK SHA-256: e8fba39fed80ce559438e24765d01d0f477122a2ee093818e0c0bd0ab9974c35
Release-signed, minified QA package. Automated tests and isolated Android upgrade checks passed for the exact attached APK.
Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.
Expressive Launcher 4.0.6 QA (55)
Expressive Launcher 4.0.6 QA
Source revision: 4e06cd8a5dfa0f88cf4dd1bcc282c21da96a9b44
APK SHA-256: 008da448effcbd0d4ae8b45cc1d413f0d151e1b56f8c6dce9b273cfb2dcca101
Release-signed, minified QA package. Automated tests and isolated Android upgrade checks passed for the exact attached APK.
Derived from Lawnchair and AOSP Launcher3; see the repository's license and upstream notices.