Skip to content

Redesign the app UI with Compose and miuix - #162

Open
zjw2017 wants to merge 2 commits into
LSPosed:mainfrom
zjw2017:main
Open

zjw2017 wants to merge 2 commits into
LSPosed:mainfrom
zjw2017:main

Conversation

@zjw2017

@zjw2017 zjw2017 commented Nov 12, 2026 •

Copy link
Copy Markdown

Summary

This PR replaces the hand-rolled ListView UI with a Compose + miuix interface in HyperOS style, migrates the module to libxposed API 102, and polishes the settings experience. Covers two commits: Adapted Miuix and Group feature switches, fix dark status card and sign release builds.

What's changed

UI (Adapted Miuix)

  • Four-tab layout (Home / Features / Settings / About) with a floating navigation bar; supports attached bar, floating bar and a liquid-glass bar, plus optional background blur — all user-selectable
  • Home: module status card (KernelSU-style) with device info (name, model, HyperOS version, Android version)
  • Features: Features page groups the switches into Install and Signature sections, classified by what each hook actually checks (e.g. minSdk gating is an install check; package manager signature verification is a signature check)
  • Settings: theme sub-screen (color scheme: system/light/dark + Monet dynamic colors, navigation bar style, blur), hide-launcher-icon toggle, language picker (13 options), export/import settings as JSON
  • About: animated gradient background (runtime-shader based, graceful fallback), app logo, project links
  • New adaptive launcher icon (the app previously shipped without one)

Module / build

  • libxposed API 101 → 102 (module.prop targetApiVersion=102
  • Toolchain: AGP 9.4.1, Gradle 9.8.1, and Kotlin Gradle plugin 2.4.20 pinned via the root buildscript classpath (AGP's built-in Kotlin 2.2 cannot read miuix's Kotlin 2.4 metadata; see comment in build.gradle.kts)
  • All 11 switches, their warnings, and the new UI strings are translated for the 12 existing locales

Attribution

UI components adapted from HyperMusicCover (itself adapted from HyperNavBar, Apache-2.0) and miuix's example components (Apache-2.0); file headers preserve the full attribution chain.

Testing

  • Built and running on Xiaomi 15 Ultra / HyperOS 4 / Android 17 (SDK 37)
  • Verified: all 11 switches still read/write the remote preferences; warning dialog on "use previous signatures" (with the extra MIUI warning); theme/language switching; settings export/import; hidden launcher icon toggle
  • Debug and release (R8) builds both pass

- Split the 11 switches on the Features page into "Install" and
  "Signature" groups, following what each hook actually checks
  (e.g. minSdk gating is an install check, package manager signature
  verification is a signature check)
- Use the dark variants of the status card colors on the Home page in
  dark theme
- Add release signing configuration
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant