No results found

Punch-hole Download Progress - Xposed Module Repository

Punch-hole Download Progress

Xposed module that displays download progress as an animated ring around the camera cutout.

Android CI Kotlin Android

Download progress animation

Features

  • Progress ring rendered around the camera cutout using the native DisplayCutout API
  • Customizable appearance: colors per state (active/completed/failed), arc thickness, opacity, and direction
  • Completion animations and optional haptic feedback
  • Active download counter badge
  • Battery saver-aware rendering
  • Built-in test mode for simulating states
  • Material 3 Expressive settings UI with Jetpack Compose

Requirements

  • Android 12 (API 31) or higher
  • LSPosed (JingMatrix fork recommended)
  • Pixel or AOSP-based ROM
  • Root access (optional, for Restart SystemUI in settings)
  • A phone with a punch-hole display

Installation

  1. Download the APK:

    Get it on IzzyOnDroid Get it on GitHub Get it on Obtainium

  2. Install and enable the module in LSPosed.

  3. Scope to com.android.systemui

  4. Restart SystemUI or reboot the device

The app includes a built-in Restart SystemUI option in the overflow menu. Magisk will prompt for permission; KernelSU/APatch require adding the app manually.

Build

git clone --recurse-submodules https://github.com/hxreborn/punch-hole-download-progress.git
cd punch-hole-download-progress
./gradlew buildLibxposed
./gradlew assembleRelease

Requires JDK 21 and Android SDK. Configure local.properties:

sdk.dir=/path/to/android/sdk

# Optional signing
RELEASE_STORE_FILE=<path/to/keystore.jks>
RELEASE_STORE_PASSWORD=<store_password>
RELEASE_KEY_ALIAS=<key_alias>
RELEASE_KEY_PASSWORD=<key_password>

Contributing

Pull requests welcome. Open an issue for bugs or feature requests.

License

GPLv3

This project is licensed under the GNU General Public License v3.0 – see the LICENSE file for details.

Package

eu.hxreborn.phdp

Authors

rafareborn

Releases

v1.7.0

Release Type: Stable

2/11/2026, 6:22:33 PM

View all releases

Releases

v1.7.0

Release Type: Stable

2/11/2026, 6:22:33 PM

What's Changed

Added

  • da5f8e2 - (ui) Add About section to System tab by @hxreborn

  • cf78266 - (ui) Add text styling options for percentage, filename and badge labels by @hxreborn

    Add granular typography controls to calibration screens:

    • Font size sliders all three label types
    • Bold and italic toggles for percentage and filename text
    • Character-based truncation with configurable max length
    • Ellipsize position options: start, middle, or end
    • Custom preview text for filename calibration
  • b5ab13a - (ui) Add calibration screens for text overlays by @hxreborn

    • Percentage, filename, and badge labels can now be repositioned with X/Y sliders
    • Badge calibration accessible from Behavior tab when queue counter is enabled

Fixed

  • d3e1cf6 - (ui) Prevent calibration transition flicker by @hxreborn

    refactor how LargeTopAppBar is handled when navigation state changed to avoid flickering while going to calibration screen

  • 7f53f5b - (view) Make ring calibration rotation aware by @hxreborn

    • Ring alignment should stay correct when device rotates from portrait to landscape
    • Offset vector transformed using standard 2D rotation matrix

Changed

  • 1cee8ce - (ui) Replace pref callbacks with ViewModel injection by @hxreborn

    • Drop untyped save(key, value) chain in favor of savePref(PrefSpec, T)
    • Remove dead code and unused symbols

Other

Show older versions

© 2021 - 2026 New Xposed Module Repository