Skip to content

v0.7.0 - Per-App Scaling (DPI)

Choose a tag to compare

@eqbirvin eqbirvin released this 16 Oct 03:23
· 2 commits to master since this release

What's New in v0.7.0

  • Per-App Scaling (DPI): Dynamically overrides screen density (DPI / smallest width) on a per-app basis via Shizuku window manager commands.
    • Solves vertical squishing and content cutoff on the Unihertz Titan 2 Elite's unique square screen (1080x1200, physical ~576 dp phone layout) by triggering Android's native tablet layout (>= 600 dp) for apps like Instagram, Spotify, and Slack.
    • Intelligent Layout Range Legend: Dynamically computes and displays layout ranges for the active screen resolution (Stock 1080px, Calibrated 1076px, or 864px Display Fix):
      • Phone Layout: < 600 dp (>= 289 DPI at stock 1080px)
      • Tablet Layout (Recommended): 600 – 719 dp (241 – 288 DPI at stock 1080px)
      • Desktop Layout: >= 720 dp (<= 240 DPI at stock 1080px)
    • Custom Scaling Modes: Presets for Tablet (600 dp), Desktop (720 dp), Custom Smallest Width (dp), and Custom Density (DPI) with real-time in-dialog calculation previews.
    • Automatic Base Density Restoration: Intelligently captures base density configured in Settings, Developer Options, or ADB, and restores it immediately upon entering Home launcher, Recents screen, or switching to untargeted apps.
    • Debounced Window Tracking: Low 180ms settle debounce provides rapid, responsive switching without animation jitter during fast app switching.
    • Lockscreen & Pedometer Safety: Reverts to base density immediately upon screen-off (ACTION_SCREEN_OFF) to prevent Unihertz lockscreen distortion.
    • Searchable App Picker: Filter through all installed launcher applications with high-res app icons and labels.
    • Hosted directly within the existing UnifiedPullDownAccessibilityService for window state observation without additional background services.